📄 shiyan32.m
字号:
%先设计模拟滤波器,再转化数字滤波器
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
Rs=15;
Ts=0.02*pi;
Fs=1/Ts;
wp1=2/Ts*tan(wp/2);%将模拟指标转变成数字指标
ws1=2/Ts*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数
[Z,P,K]=buttap(N);%创建butterworth模拟滤波器
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换
[H,W]=freqz(bz,az,50);%绘制频率响应曲线
L=length(W)/2+1;
figure(1),plot(W(1:L)/pi,abs(H(1:L))),grid,xlabel('角频率(\pi)'),ylabel('频率响应幅度');
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,...
-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,...
-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
y=filter(bz,az,x); %滤波
figure(2),
subplot(2,1,1),plot(x),title('原始信号');
subplot(2,1,2),plot(y),title('滤波后信号');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -