基于MATLAB的语音信号滤波处理要点

本文详细介绍了如何使用MATLAB进行语音信号的滤波处理,包括设计要求、步骤和内容,如巴特沃斯滤波器、椭圆滤波器、带阻滤波器的设计与应用,以及加窗函数的滤波效果。通过滤波器的幅度和相位响应分析,以及滤波前后的频谱对比,展示了滤波器在去除噪声和保留人声方面的作用。
摘要由CSDN通过智能技术生成

摘要

一、引言

二、正文

       1.设计要求

      2.设计步骤

   3.设计内容

      4.简易GUI设计

三、结论

四、收获与心得

五、附录


一、引言

随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。

二、正文

2.1   设计要求

在有噪音的环境中录制语音,并设计滤波器去除噪声。

2.2  设计步骤

  1. 分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标 ;
  2. 按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求;
  3. 用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图;
  4. 对滤波前的信号进行分析比对,评估所设计滤波器性能。

2.3 设计内容

1.原始信号分析

  

 

   

分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。因此,可以设计低通滤波器对信号进行去噪处理。

2.IIR滤波器设计

  用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器:

①巴特沃斯滤波器

fp=800;fs=1300;rs=35;rp=0.5;

程序代码如下:

fp=800;fs=1300;rs=35;rp=0.5;Fs=44100;

wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));

[n,wn]=buttord(wp,ws,rp,rs,'s');

[b,a]=butter(n,wn,'s');

[num,den]=bilinear(b,a,Fs);

[h,w]=freqz(num,den,512,Fs);

②椭圆低通滤波器

fp=1300;fs=1600;rs=60;rp=0.5;

程序代码如下:

fp=1300;fs=1600;rs=60;rp=0.5;Fs=44100;

wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));

[n,wn]=ellipord(wp,ws,rp,rs,'s');

[b,a]=ellip(n,rp,rs,wn,'s');

[num,den]=bilinear(b,a,Fs);

[h,w]=freqz(num,den,512,Fs);

③带阻滤波器

fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6

fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6

程序代码如下:

fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6;Fs=44100;

fp=[fp1,fp2];fs=[fs1,fs2];

wp=2*Fs*tan(2*pi*fp/(2*Fs));

ws=2*Fs*tan(2*pi*fs/(2*Fs));

[n,wn]=buttord(wp,ws,rp,rs,'s');

[b,a]=butter(n,wn,'stop','s');

[num,den]=bilinear(b,a,Fs);

[h,w]=freqz(num,den,512,Fs);

fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6;Fs=44100;

fp1=[fp3,fp4];fs1=[fs3,fs4];

wp1=2*Fs*tan(2*pi*fp1/(2*Fs));

ws1=2*Fs*tan(2*pi*fs1/(2*Fs));

[n1,wn1]=buttord(wp1,ws1,rp,rs,'s');

[b1,a1]=butter(n1,wn1,'stop','s');

[num1,den1]=bilinear(b1,a1,Fs);

[h1,w1]=freqz(num1,den1,512,Fs);

  1. FIR滤波器

①加hamming窗

n=100;fp=1000;Fs=44100;

b=fir1(n,fp/(Fs/2),Hamming(n+1));

[h,w]=freqz(b,1,512,Fs);

②加hanning窗

n=;fp=1000;Fs=44100;

b=fir1(n,fp/(Fs/2),Hanning(n+1));

[h,w]=freqz(b,1,512,Fs);

③加blackman窗

n=100;fp=1000;Fs=44100;

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值