声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2292|回复: 11

[FFT] 有关czt

[复制链接]
发表于 2006-8-25 19:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用czt求出来的序列,画出来怎么是对称得阿
有人能解释一下吗?
回复
分享到:

使用道具 举报

发表于 2006-8-25 20:32 | 显示全部楼层
G = CZT(X, M, W, A)

当W = exp(-j*2*pi/M)时,求得的就是细化了的双边谱,当然就是对称的了.它的频率分辨率(即两条谱线间的间隔就是fs/M,fs为采样频率).
当设W = exp(-j*2*pi/(2*M))时,求得的就是细化了的单边谱,这时频率分辨率变成fs/(2*M).

评分

1

查看全部评分

 楼主| 发表于 2006-8-26 10:28 | 显示全部楼层
Thanks a lot!
 楼主| 发表于 2006-8-26 11:37 | 显示全部楼层
原帖由 yangzj 于 2006-8-25 20:32 发表
G = CZT(X, M, W, A)

当W = exp(-j*2*pi/M)时,求得的就是细化了的双边谱,当然就是对称的了.它的频率分辨率(即两条谱线间的间隔就是fs/M,fs为采样频率).
当设W = exp(-j*2*pi/(2*M))时,求得的就是细化了的单边 ...



请问yangzj,W有没有可能即不等于 exp(-j*2*pi/M)也不等于exp(-j*2*pi/(2*M))呢,这个时候应该得到什么谱线
发表于 2006-8-26 11:46 | 显示全部楼层
CZT  Chirp z-transform.
    G = CZT(X, M, W, A) is the M-element z-transform of sequence X,
    where M, W and A are scalars which specify the contour in the z-plane
    on which the z-transform is computed.  M is the length of the transform,
    W is the complex ratio between points on the contour, and A is the
    complex starting point.  More explicitly, the contour in the z-plane
    (a spiral or "chirp" contour) is described by
        z = A * W.^(-(0:M-1))

    The parameters M, W, and A are optional; their default values are
    M = length(X), W = exp(-j*2*pi/M), and A = 1.  These defaults
    cause CZT to return the z-transform of X at equally spaced points
    around the unit circle, equivalent to FFT(X).

仔细看一下help.
其实w可以随便设,只是设置不同时,得到的是不同的变化,其物理意义也就不同.
它的墨认值 W = exp(-j*2*pi/M),其实质就是是求其DFT(不同于普通的DFT).
发表于 2006-8-28 15:34 | 显示全部楼层
原帖由 yangzj 于 2006-8-25 20:32 发表
G = CZT(X, M, W, A)

当W = exp(-j*2*pi/M)时,求得的就是细化了的双边谱,当然就是对称的了.它的频率分辨率(即两条谱线间的间隔就是fs/M,fs为采样频率).

不完全同意yangzj的观点。
1,利用CZT往往是求局部谱线,如果原信号中有单频信号的话,原谱线图中是一个sinc函数,使用CZT后,把sinc函数的谱图细化了,即两条谱线间的间隔变小了,sinc函数原本是一个对称函数,细化后即可看到它的对称性。如果原信号中两信号很接近差一条谱线,在原FFT图中很难区分,到CZT图中便能区分开,同时也不是对称的图,如下图所示。下图是采样频率还是5120,数据长度为4096,f1=431.7和f2=433,上半张图是FFT的结果,下半张图是CZT的结果。
p3a.jpg

评分

1

查看全部评分

发表于 2006-8-28 15:46 | 显示全部楼层
原帖由 songzy41 于 2006-8-28 15:34 发表

不完全同意yangzj的观点。
1,利用CZT往往是求局部谱线,如果原信号中有单频信号的话,原谱线图中是一个sinc函数,使用CZT后,把sinc函数的谱图细化了,即两条谱线间的间隔变小了,sinc函数原本是一个对称函数 ...



多谢指点。
以前没用过这个CZT,以为它求的就是整个频谱图,所以我说对于实数信号来说,它肯定是正负频率对称的。
仔细看了这个函数的帮助后,发现通过参数的设置是可以求得局部谱图的,这时,当然是不会对称的了。

但说CZT图能区分两相近频率成分,我觉得不太恰当,因为它并不能把这两个频率拉开,要拉开的话就得用zoom fft了。
发表于 2006-8-28 15:52 | 显示全部楼层
2,我还不完全同意yangzj关有CZT后的分辨率(两条谱线之间的间隔)为fs/M。尽管在help说明中是这样说的,实际上并不完全如此。
在CZT调用时:
G = CZT(X, M, W, A)
W = exp(-j*2*pi/M1),M1和CZT中的M可能是两个不同的值。因此在CZT中两条谱线间的间隔并不为fs/M(fs为采样频率)。因为CZT往往是求局部谱,常常会M<N,如果按上式计算分辨率不是CZT比FFT还差,但一样可得到比原 FFT更高的分辨率,只要M1>N便可以了。以下给出胡广书《数字信号处理-理讹算法和实现》光盘程序Exa040802:
%-----------------------------------------------------------------
%  exa040802_czt.m,   for example 4.8.2
%  to test czt.m     
%-----------------------------------------------------------------
% ex040802
clear all;

% 构造三个不同频率的正弦信号的叠加作为试验信号
N=128;
f1=8;f2=8.22;f3=9;fs=40;
stepf=fs/N;
n=0:N-1;
t=2*pi*n/fs;
n1=0:stepf:fs/2-stepf;
x=sin(f1*t)+sin(f2*t)+sin(f3*t);
M=N;
W=exp(-j*2*pi/M);

% A=1时的czt变换
A=1;
Y1=czt(x,M,W,A);
subplot(311)
plot(n1,abs(Y1(1:N/2)));grid on;

% DTFT
Y2=abs(fft(x));
subplot(312)
plot(n1,abs(Y2(1:N/2)));grid on;

% 详细构造A后的czt
M=60;
f0=7.2;
DELf=0.05;
A=exp(j*2*pi*f0/fs);
W=exp(-j*2*pi*DELf/fs);
Y3=czt(x,M,W,A);
n2=f0:DELf:f0+(M-1)*DELf;
subplot(313);plot(n2,abs(Y3));grid on;

在画笫3张图时,czt中M=60,而M1=fs/DELf=800。尽管M<N,但一样得到更高分辨率。

评分

1

查看全部评分

发表于 2006-8-28 15:57 | 显示全部楼层
原帖由 songzy41 于 2006-8-28 15:52 发表
2,我还不完全同意yangzj关有CZT后的分辨率(两条谱线之间的间隔)为fs/M。尽管在help说明中是这样说的,实际上并不完全如此。
在CZT调用时:
G = CZT(X, M, W, A)
W = exp(-j*2*pi/M1),M1和CZT中的M可能是两 ...



呵呵,多谢。是我看help没看仔细。
CZT的分辨率是根据参数W = exp(-j*2*pi/M1)来定的,此时的分辨率是fs/M1。
发表于 2007-7-19 08:19 | 显示全部楼层
请问czt可以做时频分析吗,
通过变换能获得时频图吗?
发表于 2010-5-19 22:20 | 显示全部楼层
我用CZT分别细化一个信号的不同起始点,但长度一样的频谱,为什么出来结果时间靠后的幅度比前面的还大?
高手帮帮忙

clear all
clc ;
   
fs=4096;
N=1024;
M=1024;
f1=200;
f2=204;
n=0:1:N-1+280;
e=fs/N;
n1=0:e:(fs/2)-e;
x=70*exp(-2*pi*202.4*0.01*n/fs).*cos(2*pi*202.4*sqrt(1-0.01^2)*n/fs+30*2*pi/180)

figure;
plot(n,x);
xlabel('时间t');
ylabel('value');
title('信号的时域波形');
x1=beltfilter(x,fs,100,0,2048);
a=length(x1)
XK=abs(fft(x1))*2/N;%(80:N+80)
figure;
plot(XK);
%stem(n1,XK(1:(N/2)));
%axis([200,220,0,200]);
title('直接利用FFT变换后的频谱');
w=exp(-j*2*pi*(f2-f1)/(fs*M));
a=exp(j*2*pi*f1/fs);
xk=czt(x1,M,w,a); %(80:N+80)
h=0:1:M-1;
f0=4/M*h+200;
figure;
stem(f0,abs(xk));
axis([200,204,0,15000]);
xlabel('频率__f');
ylabel('value');
title('利用CZT变换后的细化频谱');
头像被屏蔽
发表于 2014-7-28 17:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 23:58 , Processed in 0.081102 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表