一、前言。
Chirp Z变换也叫czt变换或者线性调频变换。
二、CZT原理。
三、CZT的算法步骤:
四、CZT的特点(与FFT比较):
五、CZT的Matlab实现。
function [] = chirpz() clear;close all;clc;x = [1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0];A0 = 1; % 起始取样点的半径,A0<=1phi0 = 0; % 起始取样点Z0的相角psi0 = pi*0.1; % 相邻两点间的等分角W0 = 1; % 螺旋线的伸展率,W0<1外伸,W0>1内缩,W0=1为半径A0的一段弧,若A0=1为单位圆的一部分A = A0 * exp(j*phi0);W = W0 * exp(-j*psi0);M = 8;z = A*(W.^(-(0:M-1)));zplane([],z.'); % z平面分布figurey1 = czt(x,M,W,A); % 利用自定义参数的cztsubplot(311);plot(abs(y1),'r');y2 = fft(x); % 等间隔采样的fftsubplot(312);plot(abs(y2),'b');A = 1;M = length(x);W = exp(j*2*pi/M);y3 = czt(x,M,W,A); % 特殊情况下的czt=fftsubplot(313);plot(abs(y3),'b');function [] = chirpz() clear;close all;clc;x = [1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0];A0 = 1; % 起始取样点的半径,A0<=1phi0 = 0; % 起始取样点Z0的相角psi0 = pi*0.1; % 相邻两点间的等分角W0 = 1; % 螺旋线的伸展率,W0<1外伸,W0>1内缩,W0=1为半径A0的一段弧,若A0=1为单位圆的一部分A = A0 * exp(j*phi0);W = W0 * exp(-j*psi0);M = 8;z = A*(W.^(-(0:M-1)));zplane([],z.'); % z平面分布figurey1 = czt(x,M,W,A); % 利用自定义参数的cztsubplot(311);plot(abs(y1),'r');y2 = fft(x); % 等间隔采样的fftsubplot(312);plot(abs(y2),'b');A = 1;M = length(x);W = exp(j*2*pi/M);y3 = czt(x,M,W,A); % 特殊情况下的czt=fftsubplot(313);plot(abs(y3),'b');
结果如下:
从上图可以看出,第一张子图为第二张子图的细节。
如果觉得《数字信号处理——Chirp Z变换》对你有帮助,请点赞、收藏,并留下你的观点哦!