goertzel写到
2次歌策尔アルゴリズムを使用した離散フ,リエ変換
説明
例
入力引数
出力引数
アルゴリズム
Goertzelアルゴリズムは,次の▪▪▪▪ンパルス応答をも▪▪N点の入力x (n),n = 0,1,…,n - 1の畳み込みとして離散フ,リエ変換X (k)を実装します。
ここで,単位ステップのシ,ケンスu (n)は,N≥0の場合は1であり,それ以外の場合は0となります。Kは整数である必要はありません。周波数F = kf年代/ Nのとき(f年代はサンプルレ,ト),変換は次の値をも,ます。
ここで,
かつx(N) = 0です。ンパルス応答のz変換は次のようになります。
これを使用して直接型iiを次のように実装します。
goertzel写到
の出力と歌策尔アルゴリズムの直接実装による結果を比較します。入力信号には50 Hzで10秒間サンプリングされ,ホワイトガウスノイズに組み込まれたチャープを使用します。測定中,チャ,プの周波数は15 Hzから20 Hzに線形で増加します。f年代/ Nの整数倍ではない周波数で離散フ,リエ変換を計算します。goertzel写到
を呼び出す場合,matlab®のベクトルは0からN - 1ではなく1からnで実行されることに注意してください。高精度の結果が得られます。
Fs = 50;T = 0:1/fs:10-1/fs;N =长度(t);xn = chirp(t,15,t(end),20)+randn(1,N)/100;F0 = 17.36;k = N*f0/fs;ykn =过滤器([1 exp (2 j *π* k / N)], [1 2 * cos(2 *π* k / N) 1], [xn 0]);Xk = exp(-2j*pi*k)*ykn(end);DFT = goertzel(xn,k+1);df = abs(Xk-dft)
Df = 4.3634e-12
代替方法
次の方法でDFTを計算することもできます。
参照
[1] Burrus, C. Sidney, Thomas W. Parks。DFT/FFT和卷积算法:理论与实现。纽约:John Wiley & Sons出版社,1985年。
[2]普罗基斯,约翰G.和迪米特里斯G.马诺拉基斯。数字信号处理:原理,算法和应用。第3版。上马鞍河,新泽西州:普伦蒂斯大厅,1996年。
[3]西塞尔,彼得和帕维尔·拉吉麦克。推广到基频非整数倍数的格策尔算法。信号处理进展杂志。2012卷,第1期,2012年12月,第56-1-56-8页。https://doi.org/10.1186/1687-6180-2012-56.
拡張機能
バ,ジョン履歴
R2006aより前に導入