Matlab 实现CZT

全通滤波器

b = [1 -1/0.9]; a=[1 -0.9];
[Fh,w] = freqz(b,a);
[Gd,w] = grpdelay(b,a);
subplot(311)
plot(w/pi,abs(Fh));ylabel('|H(w)|');grid on;
axis([0 max(w/pi) 0 1.5]);
subplot(312)
plot(w/pi,angle(Fh));
ylabel('ang[H(w)]');grid on;
subplot(313)
plot(w/pi,Gd);ylabel('grd[H(w)]');grid on;

H(z)=110.9z110.9z1

Matlab 实现CZT

h = firl(40,0.3); %h(n)为截止频率为0.3pi的40阶低通滤波器
fs = 1000;f1 = 100; f2 = 200;%fs = 1000Hz, fc = 150Hz
m = 1024;
w = exp(-j*2*pi*(f2-f1)/(m*fs));
a = exp(j*2*pi*f1/fs);

H = fft(h,1000);
H1 = czt(h,m,w,a);
%CZT长度:M=1024,希望通过CZT看清楚过渡带
fH = (0:length(H)-1)'*1000/length(H);
fH1 = (0:length(H1)-1)'*(f2-f1)/length(H1)+f1;

W=W0ejϕ0W0=1  ϕ0=(ω2ω1)/Mω=2πffsW=ej2πMfs(f2f1)A=A0ejθ0=ejj2πfs(f1)

img

img

所以CZT能让我们更好的观察100-200HZ这个频段

模拟低通滤波器

img

数字滤波器:

img

所以观察的范围在[0,Π]空间范围

posted @   lycheezhang  阅读(351)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示