Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ノイズで歪んだ信号の検出

ノイズがあると、信号のスペクトル成分を特定することがしばしば困難になります。このような場合には、周波数解析が有効です。

たとえば、3 次の歪みを生じる非線形増幅器のシミュレートされた出力について考えてみます。

入力信号は 3.6 kHz でサンプリングされた 180 Hz の単位振幅の正弦波です。10,000 個のサンプルを生成します。

N = 1e4;
n = 0:N-1;
fs = 3600;
f0 = 180;
t = n/fs;
y = sin(2*pi*f0*t);

入力に単位分散ホワイト ノイズを付加します。3 次の多項式を使用して増幅器をモデル化します。polyval を使用して入力信号を増幅器に通します。出力の一部をプロットします。比較のため、純粋な正弦波の出力をプロットします。

rng default
noise = randn(size(y));

dispol = [0.5 0.75 1 0];
out = polyval(dispol,y+noise);

ns = 300:500; 

plot(t(ns),[out(ns);polyval(dispol,y(ns))])
xlabel('Time (s)')
ylabel('Signals')
axis tight
legend('With white noise','No white noise')

Figure contains an axes object. The axes object with xlabel Time (s), ylabel Signals contains 2 objects of type line. These objects represent With white noise, No white noise.

pwelch を使用して、出力のパワー スペクトル密度を計算し、プロットします。

[pxx,f] = pwelch(out,[],[],[],fs);

pwelch(out,[],[],[],fs)

Figure contains an axes object. The axes object with title Welch Power Spectral Density Estimate, xlabel Frequency (kHz), ylabel Power/frequency (dB/Hz) contains an object of type line.

増幅器は 3 次の歪みを生じるため、出力信号は以下をもつことが予想されます。

  • DC (ゼロ周波数) 成分

  • 入力と同じ 180 Hz の周波数をもつ "基本波" 成分

  • 2 つの "高調波" -- 入力の 2 倍および 3 倍の 360 Hz および 540 Hz の周波数をもつ周波数成分。

3 次非線形性について出力が予想どおりであることを確認します。

[pks,lox] = findpeaks(pxx,'NPeaks',4,'SortStr','descend');

hold on
plot(f(lox)/1000,10*log10(pks),'or')
hold off

legend('PSD','Frequency Components')

Figure contains an axes object. The axes object with title Welch Power Spectral Density Estimate, xlabel Frequency (kHz), ylabel Power/frequency (dB/Hz) contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent PSD, Frequency Components.

components = sort([f(lox) f0*(0:3)'])'
components = 2×4

    0.8789  180.1758  360.3516  540.5273
         0  180.0000  360.0000  540.0000

pwelch は、信号をオーバーラップ セグメントごとに分割し、各セグメントについてピリオドグラムを計算して平均を計算します。既定では、50% のオーバーラップのある 8 つのセグメントを使用します。サンプルが 10,000 個ある場合、これはセグメントあたり 2,222 個のサンプルに相当します。

信号を複数の短いセグメントに分割すると、平均の計算量が増加します。ピリオドグラムは滑らかになりますが、分解能が低くなります。高い高調波は識別できなくなります。

pwelch(out,222,[],[],fs)

Figure contains an axes object. The axes object with title Welch Power Spectral Density Estimate, xlabel Frequency (kHz), ylabel Power/frequency (dB/Hz) contains an object of type line.

信号を複数の長いセグメントに分割すると、分解能は高くなりますが、ランダム性も高くなります。信号と高調波は予想されたとおりの位置に出現します。ただし、高い高調波より大きなパワーをもつスプリアス高周波ピークが少なくとも 1 つ存在します。

pwelch(out,4444,[],[],fs)

Figure contains an axes object. The axes object with title Welch Power Spectral Density Estimate, xlabel Frequency (kHz), ylabel Power/frequency (dB/Hz) contains an object of type line.

参考

|

関連するトピック