📄 iir_filter.m
字号:
%按照给定指标采用模拟巴特沃斯低通滤波器去逼近理想模拟低通滤波器 ,然后通过双线性变换法对模拟滤波器进行数字化,得到数字滤波器
%function IIR_filter()
%给定滤波器指标
%fp=100; fs=300; ap=3;as=20;Fs=1000;
fp=input('输入通带截止频率fp=');
fs=input('输入阻带截止频率fs=');
ap=input('输入通带最大衰减ap=');
as=input('输入阻带最小衰减as=');
Fs=input('输入采样频率Fs=');
%计算数字低通滤波器的角频率
wp=2*pi*fp/Fs;
ws=2*pi*fs/Fs;
%计算模拟低通滤波器的技术指标
up=tan(wp/2);
us=tan(ws/2);
%设计低通滤波器
%频率归一化
rp=up/up; rs=us/up;
%计算C和N
C=sqrt(10^(ap/10)-1);
N=sqrt((10^(as/10)-1)/(10^(ap/10)-1));
N=log10(N)/log10(rs);
N=ceil(N);
%计算极点J(k)及转移函数Hz
syms f;
Hz=1;
for k=1:N
J(k)=exp(i*pi*(2*k+N-1)/(2*N));
p=(exp(i*2*pi*f/Fs)-1)/(exp(i*2*pi*f/Fs)+1)/up;
Hz=Hz*(p-J(k));
end
Hz=1/Hz;
Hz=abs(Hz);
%HH=10*log10(Hz^2);
ezplot(Hz,[0,500]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -