最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。
オーバーラップ加算法を使用したFFTベースの冷杉フィルター処理
はy
= fftfilt (d
,x
)digitalFilter
オブジェクトd
を使用してベクトルx
ののデータをフィルターフィルターフィルターフィルターフィルターしし
fftfilt
では、冷杉フィルターに対してのみ機能する周波数領域のフィルター処理手法である,効率的なFFTベースの”オーバーラップ加算”法[1]を使用して,連続的な周波数領域のフィルター処理された入力シーケンスのブロックを組み合わせることで,データをフィルター処理します。fftfilt
で実行される演算は,差分方程式により时间领域内で,以下のように表されます。
これと等価な表現は,Z変換,すなわち”周波数領域”表現で,以下のように表されます。
fftfilt
はFFT.
を使用してオーバーラップ加算法を実装します。fftfilt
は,入力シーケンスx
を長さLのデータブロックに分割します。このときLはフィルター長Nよりも長くなければなりません。
さらに,以下の操作により,フィルターb
で各ブロックを畳み込みます。
Y = IFFT(FFT(x(i:i + l-1),nfft)。* fft(b,nfft));
ここで,nfft
はFFTの长さです。fftfilt
は,連続的な出力セクションをn - 1
点ずつオーバーラップさせ,その和を計算します。ここで,n
はフィルターの长さです。
fftfilt
では,フィルターと信号のFFT長n
を指定するかどうかによって,さまざまな方法で主要パラメーターのl
とnfft
が選択されます。FFTの長さを決定するn
の値を指定しない場合は,fftfilt
によってはこれらの主要パラメーターが自动的に选択されます。
长度(x)
が长度(b)
より大きい場合,fftfilt
では,ブロック数とFFTごとのフロップ数を乗算した結果が最小になる値が選択されます。
长度(b)
が长度(x)
に等しいまたは大厦综合,fftfilt
では,以下の長さの単一FFTが使用されます。
2^nextpow2(length(b) + length(x) - 1)
これは以下を計算します。
y =传输线(fft (B, nfft)。* fft (X, nfft))
n
に値を指定すると,fftfilt
ではFFTのの长nfft
に2 ^ nextpow2 (n)
,データブロック長にnfft
-长度(b)
+1
が選択されます。n
が长度(b)
未満未満场合,fftfilt
ではn
に长度(b)
が设定されます。
Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck。离散时间信号处理。第二版。上鞍河:Prentice Hall, 1999。