Main Content

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

czt

説明

y = czt(x,m,w,a)z = a*w.^-(0:m-1) により wa で定義される z 平面上の螺旋等高線に沿った x の長さ m のチャープ Z 変換 (CZT) を返します。

既定値 mw、および a を使用すると、czt では、単位円周上で等間隔に配置された m 点での x の Z 変換が返されます。結果は fft(x) によって与えられる x の離散フーリエ変換 (DFT) と等価です。

すべて折りたたむ

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

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

czt を使用して、フィルターの周波数応答の狭帯域にズームインします。

ウィンドウ法を使用して 30 次のローパス FIR フィルターを設計します。1 kHz のサンプルレートおよび 125 Hz のカットオフ周波数を指定します。箱型ウィンドウを使用します。フィルターの伝達関数を求めます。

fs = 1000;
d = designfilt('lowpassfir','FilterOrder',30,'CutoffFrequency',125, ...
    'DesignMethod','window','Window',@rectwin,'SampleRate',fs);
h = tf(d);

フィルターの DFT および CZT を計算します。CZT の周波数範囲を 75 ~ 175 Hz の帯域に制限します。それぞれのケースで 1024 サンプルを作成します。

m = 1024;
y = fft(h,m);

f1 = 75;
f2 = 175;
w = exp(-j*2*pi*(f2-f1)/(m*fs));
a = exp(j*2*pi*f1/fs);
z = czt(h,m,w,a);

変換をプロットします。対象領域を拡大します。

fn = (0:m-1)'/m;
fy = fs*fn;
fz = (f2-f1)*fn + f1;

plot(fy,abs(y),fz,abs(z))
xlim([50 200])
legend('FFT','CZT')
xlabel('Frequency (Hz)')

入力引数

すべて折りたたむ

ベクトルまたは行列として指定される入力信号。x が行列の場合、この関数で x の各列が変換されます。

例: sin(pi./[4;2]*(0:159))' は、2 チャネルの正弦波を指定します。

データ型: single | double
複素数のサポート: あり

変換の長さ。正の整数スカラーで指定します。

データ型: single | double

スパイラルの輪郭点間の比。複素数スカラーとして指定します。

データ型: single | double
複素数のサポート: あり

スパイラルの輪郭の初期点。複素数スカラーとして指定します。

例: exp(1j*pi/4)z 平面上の単位円に沿って存在し、実軸と 45 度の角度をなします。

データ型: single | double
複素数のサポート: あり

出力引数

すべて折りたたむ

チャープ Z 変換。ベクトルまたは行列として返されます。

アルゴリズム

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

参照

[1] Rabiner, Lawrence R., and Bernard Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975.

拡張機能

参考

|

R2006a より前に導入