このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ウェルチ スペクトル推定
200 kHz で 0.1 秒間サンプリングされた、ノイズを含む 3 つの正弦波とチャープで構成される信号を作成します。正弦波の周波数は 1 kHz、10 kHz および 20 kHz です。正弦波の振幅とノイズ レベルはさまざまです。ノイズのないチャープの周波数は 20 kHz で始まり、サンプリング中に 30 kHz まで線形に増加します。
Fs = 200e3; Fc = [1 10 20]'*1e3; Ns = 0.1*Fs; t = (0:Ns-1)/Fs; x = [1 1/10 10]*sin(2*pi*Fc*t)+[1/200 1/2000 1/20]*randn(3,Ns); x = x+chirp(t,20e3,t(end),30e3);
信号のウェルチ PSD 推定と最大ホールドおよび最小ホールド スペクトルを計算します。結果をプロットします。
[pxx,f] = pwelch(x,[],[],[],Fs); pmax = pwelch(x,[],[],[],Fs,'maxhold'); pmin = pwelch(x,[],[],[],Fs,'minhold'); plot(f/1000,pow2db(pxx)) hold on plot(f/1000,pow2db([pmax pmin]),':') hold off xlabel('Frequency (kHz)') ylabel('PSD (dB/Hz)') legend('pwelch','maxhold','minhold') grid
この手順を繰り返し、今度はパワー スペクトル推定が中心になるように計算します。
[pxx,f] = pwelch(x,[],[],[],Fs,'centered','power'); pmax = pwelch(x,[],[],[],Fs,'maxhold','centered','power'); pmin = pwelch(x,[],[],[],Fs,'minhold','centered','power'); plot(f/1000,pow2db(pxx)) hold on plot(f/1000,pow2db([pmax pmin]),':') hold off xlabel('Frequency (kHz)') ylabel('Power (dB)') legend('pwelch','maxhold','minhold') title('Centered Power Spectrum Estimates') grid