主要内容

離散フ,リエ変換

離散フリエ変換(dft)は,デジタル信号処理の基本となるルです。製品の基礎をなしているのは高速フーリエ変換 (FFT) で、短い実行時間で DFT を計算します。多くのツールボックス関数 (Z領域周波数応答,スペクトル解析とケプストラム解析,および一部のフィルター設計関数やフィルター実装関数を含む)には,FFTが組み込まれています。

Matlab®環境には,関数fft传输线があり,それぞれ離散フ,リエ変換と逆離散フ,リエ変換の計算に使用できます。入力シ,ケンスxとこのシ,ケンスから変換したX(単位円周上における等間隔の周波数での離散時間フーリエ変換)に対し,この2つの関数によって次の関係が実装されます。

X k + 1 n 0 N - 1 x n + 1 W N k n

x n + 1 1 N k 0 N - 1 X k + 1 W N - k n

これらの方程式では,MATLABのベクトルインデックス方式のため,級数の添字は0ではなく1から始まります。また,次の関係があります。

W N e - j 2 π / N

メモ:Matlabでは,慣例により,関数fftに負のjが使用されます。これは工学上の慣例であり,物理学や純粋数学では一般に正符号のjが使用されます。

関数fftでは,単一の入力引数xを使用して,入力ベクトルまたは入力行列のDFTが計算されます。xがベクトルの場合,関数fftではベクトルのDFTが計算されます。xが方形配列の場合は,関数fftでは配列の各列のDFTが計算されます。

例として,次のような時間ベクトルと信号を作成しましょう。

T = 0:1/100:10-1/100;%时间向量X = sin(2* *15*t) + sin(2* *40*t);%的信号

信号のDFTおよび変換後のシ,ケンスの振幅と位相を計算します。小さい振幅の変換の値をゼロに設定して位相を計算する際の丸め誤差を減らします。

Y = fft(x);计算x的DFTM = abs(y);%级Y (m<1e-6) = 0;P =打开(角度(y));%的阶段

この振幅と位相を角度でプロットするには,次のコマンドを入力します。

F =(0:长度(y)-1)*100/长度(y);频率向量Subplot (2,1,1) plot(f,m)标题(“级”) ax = gca;斧子。XTick = [15 40 60 85]; subplot(2,1,2) plot(f,p*180/pi) title(“阶段”) ax = gca;斧子。XTick = [15 40 60 85];

图中包含2个轴对象。标题为Magnitude的Axes对象1包含一个类型为line的对象。标题为Phase的Axes对象2包含一个类型为line的对象。

関数fftの2番目の引数は,変換する点の数nを指定し,dftの長さを表しています。

N = 512;Y = fft(x,n);M = abs(y);P =打开(角度(y));F =(0:长度(y)-1)*100/长度(y);Subplot (2,1,1) plot(f,m)标题(“级”) ax = gca;斧子。XTick = [15 40 60 85]; subplot(2,1,2) plot(f,p*180/pi) title(“阶段”) ax = gca;斧子。XTick = [15 40 60 85];

图中包含2个轴对象。标题为Magnitude的Axes对象1包含一个类型为line的对象。标题为Phase的Axes对象2包含一个类型为line的对象。

この場合,関数fftによって入力シ,ケンスの長さがnより短い場合にはゼロが付加され,nより長い場合にはシ,ケンスが切り取られます。nが指定されていない場合は,入力シ,ケンスの長さが既定値として使用されます。関数fftの実行時間は,実行するDFTの長さnに左右されます。このアルゴリズムの詳細は,fftのリファレンスペ,ジを参照してください。

メモ:結果として返されるFFT振幅は* n / 2で,一个は元の振幅,nはFFTデ,タ点数です。これは,fftデ,タ点の数がデ,タサンプルの数以上である場合にのみ真になります。FFTデ,タ点の数が少ない場合は,FFT振幅は元の振幅より上記の分だけ小さくなります。

逆離散フ,リエ変換関数传输线も入力シ,ケンスを受け入れることができ,オプションで変換する点の数も指定できます。次の例を見てください。元のシ,ケンスxと,再構成されたシ,ケンスは丸め誤差の範囲内で一致しています。

T = 0:1/255:1;X = sin(2*pi*120*t);Y = real(ifft(fft(x)));图绘制(t, x - y)

图中包含一个轴对象。axis对象包含一个line类型的对象。

また,このルボックスには,2次元FFTとその逆変換に使用する関数のfft2およびifft2が含まれています。これらの関数は,2次元の信号やメジ処理に便利です。Goertzel写到関数はDFTを計算するもう1つのアルゴリズムで,ツールボックスに含まれています。この関数は,長い信号の部分に対するDFTの計算に有効です。

場合によっては,関数fftまたは関数fft2の出力を再配列して,ゼロ周波数成分がシ,ケンスの中央になるようにすると便利なことがあります。関数fftshiftにより,ゼロ周波数成分をベクトルまたは行列の中央に移動することができます。

参考

|||||