📄 iir_l.m
字号:
%设计Butterworth低通滤波器
%数字滤波器指标w=Omega.*T=Omega/fs:
[x1]=wavread('音乐.wav')
wp=2*pi*1000/22050; %数字通带频率(弧度)
ws=2*pi*1200/22050; %数字阻带频率(弧度)
Rp=1;
Rs=100;
%预畸变:
fs=22050;T=1/fs;
OmegaP=2*tan(wp/2)/T; %预修正原型通带频率
OmegaS=2*tan(ws/2)/T; %预修正原型阻带频率
%计算模拟Butterworth滤波器:
[n,Wn]=buttord(OmegaP,OmegaS,Rp,15,'s');
[b,a]=butter(n,Wn,'s');
[bz,az]=bilinear(b,a,fs);%双线性变换
[H,W]=freqz(bz,az,512); %频率响应
%画图
figure(1)
title('FIR高通滤波器');
plot(W*fs/(2*pi),abs(H))
grid;
f2=filter(bz,az,x1);%将信号入滤波器
figure(2)
subplot(2,1,1)
plot(x1)
title('FIR低通滤波器滤波前的时域波形');
subplot(2,1,2)
plot(f2);
title('FIR低通滤波器滤波后的时域波形');
F0=fft(f2,1024);
f=fs*(0:511)/1024;
figure(3)
y2=fft(x1,1024);
subplot(2,1,1);
plot(f,abs(y2(1:512)));
title('FIR低通滤波器滤波前的频谱')
xlabel('频率/Hz');
ylabel('幅值');
subplot(2,1,2)
F2=plot(f,abs(F0(1:512)));
title('FIR低通滤波器滤波后的频谱')
xlabel('频率/Hz');
ylabel('幅值');
sound(f2,44100); %滤波后的语音信号
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -