matlab iir高通滤波器,用matlab设计的IIR滤波器源程序-IIR一阶低通/高通

用matlab设计的IIR滤波器源程序

(1)IIR一阶低通滤波器 P576

clear;

fi=1;fs=10;Gc2=0.9;

wc=2*pi*fi/fs;

omegac=tan(wc/2);

alpha=(sqrt(Gc2)/sqrt(1-Gc2))*omegac;

a=(1-alpha)/(1+alpha);

b=(1-a)/2;

w=0:pi/300:pi;

Hw2=alpha^2./(alpha^2+(tan(w/2)).^2);

plot(w/pi,Hw2);

grid;

hold on;

(2)一阶高通滤波器 P581

clear;

fi=1;fs=10;Gc2=0.5;

wc=2*pi*fi/fs;

omegac=tan(wc/2);

alpha=(sqrt(1-Gc2)/(sqrt(Gc2)))*omegac;

a=(1-alpha)/(1+alpha);

b=(1+a)/2;

w=0:pi/300:pi;

Hw2=(tan(w/2).^2)./(alpha^2+(tan(w/2)).^2);

plot(w/pi,Hw2);

grid;

hold on;

(3)Notch 嵌波滤波器

clear;

Gb2=0.5;

w0=0.35*pi;

deltaw=0.1*pi;

b=1/(1+tan(deltaw/2)*(sqrt(1-Gb2)/sqrt(Gb2)));

B=[1 -2*cos(w0) 1].*b;

A=[1 -2*b*cos(w0) (2*b-1)];

w=0:pi/500:pi;

H=freqz(B,A,w);

plot(w/pi,abs(H));

grid;

(4)Peak 滤波器

clear;

Ac=3;

Gb2=10^(-Ac/10);

w0=0.35*pi;

deltaw=0.1*pi;

b=1/(1+tan(deltaw/2)*(sqrt(Gb2)/sqrt(1-Gb2)));

B=[1 0 -1].*(1-b);

A=[1 -2*b*cos(w0) (2*b-1)];

w=0:pi/500:pi;

H=freqz(B,A,w);

plot(w/pi,abs(H));

grid;

(5)IIR低通滤波(Butterworth)

% IIR Lowpass Use Butterworth

% copyright by Etual

clear;

fs=20;fpass=4;fstop=5;

Ap=0.5;As=10;

wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;

omegap=tan(wp/2);omegas=tan(ws/2);

ep=sqrt(10^(Ap/10)-1);

es=sqrt(10^(As/10)-1);

N=ceil(log(es/ep)/log(omegas/omegap));

omega0=omegap/ep^(1/N);

K=floor(N/2);

for i=1:K

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值