ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

czt

チャープ z 変換

構文

y = czt(x,m,w,a)
y = czt(x)

説明

y = czt(x,m,w,a) では、信号 x のチャープ z 変換が返されます。チャープ z 変換は、wa で定義される螺旋等高線に沿った xz 変換です。m は変換の長さを設定するスカラーで、w は対象となる z 平面の螺旋等高線に沿った点の間の比率で、スカラー a はこの等高線上の出発点を与える複素数です。z 平面上の等高線、螺旋、または "チャープ" は、以下の式によって与えられます。

z = a*(w.^-(0:m-1))

y = czt(x) では、以下の既定値が使用されます。

  • m = length(x)

  • w = exp(-j*2*pi/m)

  • a = 1

これらの既定値を使用すると、czt では、単位円周上で等間隔に配置された m 点での xz 変換が返されます。これは、x  の離散型フーリエ変換、すなわち fft(x) と等価です。空行列 [] では、入力引数に既定値が設定されます。

x が行列の場合、czt(x,m,w,a)x の各列が変換されます。

長さ 1013 のランダム ベクトル x を作成し、czt を使用して、このベクトルの DFT を計算します。

rng default;
x = randn(1013,1);
y = czt(x);

czt を使用して、フィルターの周波数応答の狭帯域 (100 ~150 Hz) にズームインします。まず、次のようにしてフィルターを設計します。

h = fir1(30,125/500,rectwin(31));  % filter
fs = 1000; f1 = 100; f2 = 150;     % in hertz
m = 1024;
w = exp(-j*2*pi*(f2-f1)/(m*fs));
a = exp(j*2*pi*f1/fs);

周波数と CZT のパラメーターを設定します。

fftczt を使用して、フィルターの周波数応答を計算します。

y = fft(h,1000);
z = czt(h,m,w,a);
fy = (0:length(y)-1)'*1000/length(y); 
fz = ((0:length(z)-1)'*(f2-f1)/length(z)) + f1;
subplot(211);
plot(fy(1:500),abs(y(1:500))); axis([1 500 0 1.2])
xlabel('Hz'); ylabel('Magnitude');
title('Magnitude Response using FFT')
subplot(212);
plot(fz,abs(z)); axis([f1 f2 0 1.2])
xlabel('Hz'); ylabel('Magnitude');
title('Magnitude Response using CZT ')

診断

mw、または a がスカラーでない場合は、czt では以下のエラー メッセージが表示されます。

入力 M, W, A はスカラーでなければなりません。

詳細

すべて展開する

アルゴリズム

czt では、指定したチャープ等高線上で z 変換を計算する際に、高速たたみ込みを実行するために、次に大きい 2 のべき乗の長さの FFT が使用されます (参考文献 [1])。

参考文献

[1] Rabiner, L.R., and B. Gold. Theory and Application of Digital Signal Processing, Englewood Cliffs, NJ: Prentice-Hall, 1975. Pgs. 393-399.

参考

|

この情報は役に立ちましたか?