Maltab设计IIR滤波器

clear clc

[audio,Fs]=audioread('D:\yinpin~1.mp3');%声音读取

audio = audio(:,1); %双通道变单通道

n=length(audio);

T = 1/Fs;%采样间隔

t = (0:n-1)*T;%时间轴

f = (0:n-1)/n*Fs;%频率轴

%Fs=8000;%T=1/Fs;

%绘出原始音频时域波

figure(5)

subplot(2,2,1);

plot(t,audio);

xlabel('时间/s');

ylabel('幅度');

title('初始信号波形');

grid;

%绘出原始音频频域频谱

audio_fft=fft(audio,n)*T;

subplot(2,2,2);

audiof = abs(audio_fft);

plot(f(1:(n-1)/2),audiof(1:(n-1)/2));

title('初始信号频谱');

xlabel('频率/Hz');ylabel('幅度');grid;

%=================================低通滤波器软件实现==========================

fp=1000;fs=1200;

wp=2*fp/Fs;ws=2*fs/Fs;rp=1;rs=50;

[N,wp]=ellipord(wp,ws,rp,rs);

[B,A]=ellip(N,rp,rs,wp);

z=filter(B,A,audio);

z_fft=fft(z); %滤波后的信号频谱

%=================================低通滤波器软件绘图==========================

figure(2);subplot(2,2,1);

myplot(B,A);

subplot(2,2,2);plot(t,z);

title('低通滤波后的信号时域波形');

xlabel('时间/s');

ylabel('幅度');grid;

subplot(2,2,3);

zf = abs(z_fft);

plot(f(1:(n-1)/2),zf(1:(n-1)/2));

title('低通滤波后信号的频谱');

xlabel('频率/Hz');

ylabel('幅度');

grid;

%================================带通滤波器软件实现===============================

fp1=1200;fpu=3000;fs1=1000;fsu=3200;

wp=[2*fp1/Fs,2*fpu/Fs];ws=[2*fs1/Fs,2*fsu/Fs];rp=1;rs=50;

[N,wp]=ellipord(wp,ws,rp,rs);

[B2,A2]=ellip(N,rp,rs,wp);

z2=filter(B2,A2,audio);

z2_fft=fft(z2); %滤波后的信号频谱

figure(3);subplot(2,2,1);

myplot(B2,A2);

subplot(2,2,2);plot(t,z2);

title('高通滤波后的信号时域波形');

xlabel('时间/s');

ylabel('幅度');grid;

subplot(2,2,3);

zf2 = abs(z2_fft);

plot(f(1:(n-1)/2),zf2(1:(n-1)/2));

title('高通滤波后信号的频谱');

xlabel('频率/Hz');

ylabel('幅度');

grid;

%===============================高通滤波器实现=============================

fp=3000;fs=2800;

wp=2*fp/Fs;ws=2*fs/Fs;rp=1;rs=50;

[N,wp]=ellipord(wp,ws,rp,rs);

[B1,A1]=ellip(N,rp,rs,wp,'high');

%y3t=filter(B,A,st);

z1=filter(B,A,audio);

z1_fft=fft(z1); %滤波后的信号频谱

figure(4);subplot(2,2,1);

myplot(B1,A1);

subplot(2,2,2);plot(t,z1);

title('高通滤波后的信号时域波形');

xlabel('时间/s');

ylabel('幅度');grid;

subplot(2,2,3);

zf1 = abs(z1_fft);

plot(f(1:(n-1)/2),zf1(1:(n-1)/2));

title('高通滤波后信号的频谱');

xlabel('频率/Hz');

ylabel('幅度');

grid;

audio_final = [audio;z;z1;z2];

sound(audio_final,Fs);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兴-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值