滤波器级联 matlab,IIR滤波器直接型与级联型的设计Matlab代码.doc

IIR滤波器直接型与级联型的设计Matlab代码

clear;clc;

%%

[y,fs]=wavread('music1-2');

qq=16;

%% 设置滤波器参数

Wp=2*900;Ws=2*1500;Rp=0.1;Rs=60;Fs=32000;

wp=Wp/Fs;ws=Ws/Fs;

%% 选择滤波器类型

%[N,Wpo]=cheb2ord(wp,ws,Rp,Rs);%求切比雪夫2型归一化模拟低通滤波器的阶数

%[b,a]=cheby2(N,Rs,Wpo);%设计滤波器

[N,Wpo]=cheb1ord(wp,ws,Rp,Rs);%求切比雪夫1型归一化模拟低通滤波器的阶数

[b,a]=cheby1(N,Rp,Wpo);%设计滤波器

%[N,Wpo]=buttord(wp,ws,Rp,Rs);%求巴特沃斯型归一化模拟低通滤波器的阶数

%[b,a]=butter(N,Wpo);%设计滤波器

%[N,Wpo]=ellipord(wp,ws,Rp,Rs);%求椭圆型归一化模拟低通滤波器的阶数

%[b,a]=ellip(N,Rp,Rs,Wpo);%设计椭圆滤波器

%% 滤波器频响

[h,w]=freqz(b,a,1024);%求滤波器的幅频响应

h=20*log10(abs(h)/max(abs(h)));%幅度归一

figure;plot(w/2/pi*Fs,h);

title('滤波器的幅频响应');grid on;

bqr=intbR(b,qq);aqr=intbR(a,qq);

[hr,wr]=freqz(bqr,aqr,1024);

hr=20*log10(abs(hr)/max(abs(hr)));

%figure;plot((0:1023)/1024,hr);

figure;plot(w/2/pi*Fs,hr);

title('滤波器的量化后的幅频响应');grid on;

%% 级联处理

[sos,g]=tf2sos(b,a);

b1=sos(1,1:3);a1=sos(1,4:6);

b2=sos(2,1:3);a2=sos(2,4:6);

b3=sos(3,1:3);a3=sos(3,4:6);

b4=sos(4,1:3);a4=sos(4,4:6);

b5=sos(5,1:3);a5=sos(5,4:6);

% b6=sos(6,1:3);a6=sos(6,4:6);

% b7=sos(7,1:3);a7=sos(7,4:6);

% b8=sos(8,1:3);a8=sos(8,4:6);

% b9=sos(9,1:3);a9=sos(9,4:6);

%% 级联量化

bqr1=intbR(b1,qq); aqr1=intbR(a1,qq);

[h1,w1]=freqz(bqr1,aqr1,1024);

bqr2=intbR(b2,qq); aqr2=intbR(a2,qq);

[h2,w1]=freqz(bqr2,aqr2,1024);

bqr3=intbR(b3,qq); aqr3=intbR(a3,qq);

[h3,w1]=freqz(bqr3,aqr3,1024);

bqr4=intbR(b4,qq); aqr4=intbR(a4,qq);

[h4,w1]=freqz(bqr4,aqr4,1024);

bqr5=intbR(b5,qq); aqr5=intbR(a5,qq);

[h5,w1]=freqz(bqr5,aqr5,1024);

% bqr6=intbR(b6,qq); aqr6=intbR(a6,qq);

% [h6,w1]=freqz(bqr6,aqr6,1024);

% bqr7=intbR(b7,qq); aqr7=intbR(a7,qq);

% [h7,w1]=freqz(bqr7,aqr7,1024);

% bqr8=intbR(b3,qq); aqr8=intbR(a8,qq);

% [h8,w1]=freqz(bqr8,aqr8,1024);

% bqr9=intbR(b3,qq); aqr9=intbR(a9,qq);

%[h9,w1]=freqz(bqr9,aqr9,1024);

hh=h1.*h2.*h3;%.*h4;%.*h5.*h6.*h7;%.*h8.*h9;

hh=20*log10(abs(hh)/max(abs(hh)));

sos1=intbR(sos,qq);

%% 信号过系统

%yy=filter(bqr,aqr,y);

yy=filter(b,a,y);

Y=sosfilt(sos1,y);

%% 画图

figure;

%specgram(Y);

%sound(yy,fs);

%plot(20

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值