FFT処理ゲイン


8

高速フーリエ変換を介してノイズの多い信号を時間領域から周波数領域に変換する場合、FFTの「処理ゲイン」があり、ビンの数が増えると増加します。つまり、ビンが多いほど、周波数ドメインのノイズフロアが低減されます。

1.実際、私はこの利益がどこから来ているのか、完全には理解していません。これは、より多くのビンを使用するために、より高いサンプリングレートで信号をサンプリングするだけでよいので、より高いFFT処理ゲインが得られることを意味しますか?

2.逆FFTについてはどうですか?「処理が失われました」ですか?周波数領域で開始すると、これは、私が持っている周波数サンプルが多いほど、時間領域信号に現れるノイズが多くなることを意味しますか?ただし、これは時間領域内挿の目的で(周波数領域データの)パディングを適用するときに信号の大きな歪みを引き起こすため、直感に反します。


1
短い答え:DFTを見る1つの方法は、バンドパスフィルターの均一間隔のバンクです。DFTのビンの数を増やすと、各フィルターの帯域幅が狭くなります(つまり、通過するノイズが少なくなります)。狭帯域信号を検索する場合は、DFTビンの幅を対象の信号の帯域幅に近づけることが重要です。そうすれば、信号を変更せずに通過させると同時に、ノイズをできるだけ少なく通過させることができます。機会があれば、これを後で拡張するかもしれません。
Jason R

詳しい説明をお願いします。
フランク・


@フランク:セスが提供するリンクには、もう少し詳細な説明があります。FFTサイズを大きくして「ノイズフロアを押し下げる」ことは、スペクトラムアナライザーの分解能帯域幅を狭めることに似ています。
Jason R

1
ESCHEW OBFUSCATION FFT SNRは非常に定義されているため、FFT SNRはFFTポイントの数とともに増加します。FFT SNRは、周波数BINのサイズに等しいBWのSNRとして定義され、BINサイズはFFTポイントの数が増えると減少します。
アカウントユーザー

回答:


5

概念をラップする最も簡単な方法は、簡単な例を示すことだと思います。

% example of FFT of a very noisy sin wave
f0 = 1000;     % sinusoid frequency
Fs = 10000;    % sampling frequency 
n = 0:1/Fs:1; % one second worth of sample index
N = length(n);
SNR = -20;    % signal to noise ratio is -20dB
Pn  = 0.5*10^(-SNR/10); % signal power is 0.5 for sin wave
NFFT = round([N/8 N/4 N/2 N]); % FFT size to see how it effects the gain


%% signal and generation
sx = sin(2*pi*f0*n);
sn = sqrt(Pn)*randn(1, N);
%% adding noise
xn = sx + sn;
%% signal with and w/o noise in time
figure(1);
plot(n(1:100), xn(1:100)); hold on;
plot(n(1:100), x(1:100), 'r');
legend('noisy', 'clean');
%% FFT of different sizes
figure(2); 
Xf = fft(xn, NFFT(4));
plot(Fs*(0:NFFT(4)-1)/NFFT(4), abs(Xf)/N, '.-'); hold on;
Xf = fft(xn, NFFT(3));
plot(Fs*(0:NFFT(3)-1)/NFFT(3), abs(Xf)/N, 'r.-');
Xf = fft(xn, NFFT(2));
plot(Fs*(0:NFFT(2)-1)/NFFT(2), abs(Xf)/N, 'g.-'); 
Xf = fft(xn, NFFT(1));
plot(Fs*(0:NFFT(1)-1)/NFFT(1), abs(Xf)/N, 'k.-');
legend('FFT size = N', 'FFT size = N/2', 'FFT size = N/4', 'FFT size = N/8');

時間領域でのノイズの多いきれいな正弦波のプロットは次のようになります。 うるさいvsきれいな正弦波

周波数領域でのさまざまなサイズのFFTプロットは次のとおりです。 ここに画像の説明を入力してください

つまり、FFTサイズを大きくすることは、計算により多くの信号サンプルを追加することを意味します。したがって、信号情報が追加され、ノイズ情報は追加されないため、FFTが周波数を決定するのが容易になります。ここでは、「相対」ノイズフロアWRT信号が減少していることがわかります。

逆フーリエについては、それが損失であるとは言いませんが、元の場所に戻ったと言います。

hth。


2
必ずしも厳密ではありませんが、これはOPが求めていたタイプの回答です。多くのDFT実装に固有の一定の利益を説明する他の回答は間違っていませんが、尋ねられた質問に答えていません。上記の質問に関するセスのコメントにあるリンクも参照してください。
Jason R

「そもそもFFTを行わなかったとしたら、IFFTの意味はありません」という言葉に完全に同意することはできません。周波数領域の値を提供するベクトルネットワークアナライザーについて考えてみます。この場合、(フォワード)FFTは事前に適用されません。したがって、これらの元のデータに逆FFTを適用すると、時間領域への変換中に「処理が失われる」ことになります。
フランク

@フランクこれは、スペクトラム拡散で、送信機での処理損失を導入し、受信機で処理利得を適用することを意味します。最終的には何も得られませんでした。
学習者

@learner:受信機である程度のゲインを達成するために送信機で狭帯域信号が「人工」的に拡散されるため、スペクトル拡散は一種の人工的な例です。ただし、ベクトルネットワークアナライザーを使用する場合、周波数領域データを取得する前のステップはありません。したがって、処理チェーンの他のポイントでSNRを獲得するための、人工的な「縮退SNR」のソースはありません。
フランク

@Frank実際、ネットワークアナライザーを使用するときはいつでも、常にスペクトルスイープ(3 GHz〜11 GHz)のIFFTを実行しましたが、その場合、IFFT処理の損失を観測できませんでした。ただし、ポイントは有効です。そのため、FFTゲインとIFFT損失は、検討している信号の特性に関連していると思いました。時間のディラックデルタ関数を考えます。FFTを実行すると、ゲインの代わりに損失が生じます。同意しますか?
学習者

1

「FFTビンの数が増加するにつれて増加する『処理ゲイン』」は、単に定義の問題によるものです。FFTは、DFTを計算するための「高速」アルゴリズムです。通常、DFT(および逆DFT)は次のように定義されます。

X[k]n=0N1x[n]ej2πnk/N

そして

x[n]=1Nk=0N1X[k]e+j2πnk/N

しかし、それは

X[k]1Nn=0N1x[n]ej2πnk/N

そして

x[n]=k=0N1X[k]e+j2πnk/N

として定義することもできます

X[k]1Nn=0N1x[n]ej2πnk/N

そして

x[n]=1Nk=0N1X[k]e+j2πnk/N

後者の形式では、DFTとiDFTのどちらにも「処理ゲイン」はありません。


なぜこの回答が反対票を投じられるのか理解できません。質問のパート2については取り上げていませんが、間違いではありません。
フォノン、2014年

3
逆FFTのゲインの問題にも、順方向FFTのゲインの問題と同じように答えます。それが人生だ。
robert bristow-johnson 2014

1
他の答えが語る「処理利得」については、正規化が何であるかは問題ではありません。重要な部分は、信号に対してノイズフロアがどれだけ下にあるかです。
オイステイン

@oystein、「処理ゲイン」は信号対雑音比にのみ適用されますか?
ロバートブリストウジョンソン2017

@robert bristow-johnson、はい、少なくとも私の理解です。DFT結果をスケーリングするかどうかは問題ではありませんNN または 1、「信号」と「ノイズ」の両方をスケーリングするため。
オイスタイン

1

FFT処理ゲインは、DFT(FFTは単純に高速な実装です)が正規化されていない線形変換であることから生じます。これは一口なので、これが何を意味するのか見てみましょう。

私はあなたが線形変換が何であるか知っていると仮定します。つまり、与えられたベクトルx そして y と行列 A 我々は持っています

y=Ax.

DFTはまさにそのような変革です。実際、MATLAB dftmtxコマンドを使用して、ベクトルの長さに基づいてこの行列を生成できます。x。この場合、

y=DFT(x).

このマトリックス Aいくつかのプロパティがあります。まず第一に、それは正方行列です。つまり、それはおそらく反転可能です(そして実際には反転可能です!)。また、基本的にxのコンポーネントを取得し、次の列によって与えられる基底の変更を実行していることもわかります。ADFTを取得します。ここまでは順調ですね。

それでは、さらに重要なプロパティをいくつか見てみましょう。マトリックスA直交しています。これは、A 他のすべての列に垂直、またはより数学的には、 ATA対角行列です(これが真である理由について少し考える必要があるかもしれません)。マトリックスを転置するだけでその逆に非常に近いものが得られるため、これは非常に優れたプロパティです。

これを転置するには 厳密な逆関係、私たちは行列が欲しい Aまた、正常に。これは、すべての列ベクトルの長さが1の行列です。つまり、a の列です A、その後 aTa=1.行列が直交で正常な場合、それをorthonormalと呼びます。この場合、ATA=I、 そう AT 実際にはの逆です A。きちんと!

通常のDFT行列(または通常のDFT変換)は直交ですが、直交ではありません。実際、D はDFT行列です。 DTD=N どこ N の列(または行、正方形です)の数です。 D。正規直交にするためには、DN代わりに。十分に長く見てみると、順方向変換と逆方向変換の両方が1N、計算の実行に追加の作業を行っているため、通常は 1N 逆に。

両方ではなく片側でそれを行うには、より良い理論上の理由があります。詳細については、ここ私の回答を参照してください。


1

FFTの処理ゲインは、正弦波のSNRの増加を指します。DFTまたはFFTは、整合フィルターのバンクと考えることができます。整合フィルターは、出力でSNRを最大化します。処理ゲインを確認する別の方法として、特定のSNRで時間領域に正弦波ノイズがあり、FFTを取り、FFTビンの正弦波パワーとノイズパワーを調べます(周波数がFFT bin)の場合、SNRまたは処理ゲインが高くなります。FFTは帯域幅フィルターと考えることができ、各周波数ビンのノイズは、ノイズが信号全体に行き渡っている時間領域信号と比較して拡散されます。

正弦波のコンポーネントをコヒーレントに追加するため、処理ゲインが発生します。したがって、これがコヒーレントゲインと呼ばれることもわかります。このコヒーレントな加算は、より長い信号がある場合に、より多くの処理ゲイン、つまりより多くのサンプルがコヒーレントに加算される理由でもあります。コヒーレントとは、信号の位相(この場合は周波数)の知識があることを前提としていることを意味します。または、より長い整合フィルターを狭帯域幅と見なして、フィルターを通過するノイズを減らすこともできます。したがって、SNRまたは処理ゲインが向上します。

正弦波がFFTビンの周波数と正確に一致しない場合でも、FFTビンの近くにピークが存在しますが、隣接するFFTビンのいくつかにも有意な大きさが含まれることに注意してください。最も近いFFTビンにピークがありますが、処理ゲインよりも低くなります。この影響は、しばしばスペクトル漏れと呼ばれます。ウィンドウを使用してスペクトル漏れを減らすことができますが、処理ゲインも減少します。最悪の場合の損失は、信号が2つのFFTビン周波数の間に正確に存在する場合です。

WindowsでHarrisの論文を読むことをお勧めします。それは私が話している詳細の多くを説明します。

したがって、ホワイトノイズに正弦波がある場合、DFT / FFTを実行することで処理ゲインが得られます。IFFT / IDFTを使用すると、信号がノイズに拡散されるため、処理損失が発生します。


-1

「利益」は、望ましい(そして見やすい)知識の観点からです。周波数領域に変換する場合、特定の周波数帯域のより明確な/可視性(グラフィックプロットで見ることができる)の知識を得ることができますが、正確なタイミング情報の可視性(FFTプロットでそれを見ることができなくなります)の知識を失います。時間ドメインに変換し直すと、タイミング(インパルス時間や過渡変化など)のより明確な知識が得られますが、その時間の周波数帯域の可視情報(前のFFTプロットを破棄した場合)は失われます。ドメイン波形が刺激します。

時間ベクトルまたは周波数ベクトルのいずれかに存在する固有の情報には実際のゲインはありません。FFT内の数値精度により、わずかな損失が発生する可能性が高くなります。

既に帯域制限された信号のサンプリングレートを上げると(既に低いサンプルレートでナイキストより低い)、新しい情報は追加されません(サンプルデータをアンチエイリアスフィルターの歪みから遠ざけ、量子化ノイズを広げることを除く)。さらに「ゲイン」を追加する新しいものはありません。

ただし、合計サンプルベクトル時間を増やすと(ゼロパディングではなく、実際の関連データが増えるほど)、新しい情報が追加される可能性があります。これにより、特に定常信号の場合、処理 "ゲイン"によってノイズフロアを下げることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.