今回はたいした話ではありません。
前にノイズを印加した際、乱数でノイズを発生した後 LPF で 200Hz 以上をエイリアシング防止のために軽くカットした信号を生成するスクリプトを入れておきましたが、これが結構時間が掛かるので先に作っておいてセーブしておこうというだけの話です。
clear
N=2048
t=0:1/N:1-1/N
rand('seed',0) // 乱数のもと
randomdata=((rand(1,N,'uniform'))-0.5) // 乱数発生
s=poly(0,'s')
cutoffrate=10 // サンプリング周波数に対する LPF のカットオフ周波数比。
fc=N/cutoffrate // カットオフ周波数。ここでは 204.8Hz
LPF=fc/(fc+s/2/%pi) // LPF 伝達関数式
LPFsys=syslin('c',LPF);
// scf(1);clf;bode(LPFsys,10,1e4); // LPF ボーデ線図
// title('LPF bode','fontsize',4)
Noise_signal=csim(randomdata,t,LPFsys) // LPF を通したあとの信号
// scf(2);clf;plot(t,Noise_signal)
save('Noise_200Hz','Noise_signal')
表示関連はコメントアウトしてあります。青色のコメント「//」を削除すれば前の記事で表示した LPF のボード線図とノイズ信号が確認できます。
保存先パスですが、コンソールの左側(デフォルトで)に表示されているフォルダになります。
呼び出すときも、同じフォルダがコンソールの左側に表示されていれば、
load('Noise_200Hz')
で呼び出すことができます。
これからたびたび使うかも知れないので、一度作っておくと計算実行時間が短縮できます。
前にノイズを印加した際、乱数でノイズを発生した後 LPF で 200Hz 以上をエイリアシング防止のために軽くカットした信号を生成するスクリプトを入れておきましたが、これが結構時間が掛かるので先に作っておいてセーブしておこうというだけの話です。
clear
N=2048
t=0:1/N:1-1/N
rand('seed',0) // 乱数のもと
randomdata=((rand(1,N,'uniform'))-0.5) // 乱数発生
s=poly(0,'s')
cutoffrate=10 // サンプリング周波数に対する LPF のカットオフ周波数比。
fc=N/cutoffrate // カットオフ周波数。ここでは 204.8Hz
LPF=fc/(fc+s/2/%pi) // LPF 伝達関数式
LPFsys=syslin('c',LPF);
// scf(1);clf;bode(LPFsys,10,1e4); // LPF ボーデ線図
// title('LPF bode','fontsize',4)
Noise_signal=csim(randomdata,t,LPFsys) // LPF を通したあとの信号
// scf(2);clf;plot(t,Noise_signal)
save('Noise_200Hz','Noise_signal')
表示関連はコメントアウトしてあります。青色のコメント「//」を削除すれば前の記事で表示した LPF のボード線図とノイズ信号が確認できます。
保存先パスですが、コンソールの左側(デフォルトで)に表示されているフォルダになります。
呼び出すときも、同じフォルダがコンソールの左側に表示されていれば、
load('Noise_200Hz')
で呼び出すことができます。
これからたびたび使うかも知れないので、一度作っておくと計算実行時間が短縮できます。