IIR数字滤波器设计实验

一、实验目的:

通过上机试验,掌握用滤波器滤除噪音信号的方法。

二、实验设备和实验环境

操作系统:Windows

软    件:Matlab

三、实验内容及要求

1.利用设计的数字滤波器对含噪的语音信号进行滤波;

2.对比滤波器前后语音信号的频谱,观察设计的滤波器能否有效抑制语音信号中的噪声。

四、实验步骤与结果分析

4.1实验过程描述

(1)采集语音信号

利用计算机Windows下的录音机设备,录制一段语音,时间在10秒左右。然后再Matlab软件平台下,利用函数audioread对语音信号进行采样,得到声音数据变量x和采样频率fs。下面构造干扰信号:

c1=10*sin(2*pi*2000*t);

把声音数据变量x和干扰信号变量c1相加得含噪声的语音信号x1并播放,通过扬声器可以明显听到语音信号伴随较尖锐的干扰啸叫声。

(2)设计数字滤波器

      根据待处理语音信号x1的特点,应该设计数字带阻滤波器进行滤波处理,实验三设计的是FIR带阻滤波器对含噪语音信号进行滤波,本实验设计的是IIR带阻滤波器,对实验三所设计的滤波器进行了改进。给出所设计数字带阻滤波器归一化的性能指标:

     f0=2000/4000;fc=100/4000;

     ws=[f0-0.5*fc f0+0.5*fc];wp=[f0-fc f0+fc];

     rp=1;rs=30;

      利用Matlab软件,采用IIR数字滤波器设计方法,实现带阻滤波器的设计,设计的代码如下:

      [N,wc]=buttord(wp,ws,rp,rs);%求出巴特沃斯数字滤波器的阶数频率参数

      [b,a]=butter(N,wc,'stop');       %设计带阻滤波器的系数

      [h,w]=freqz(b,a,fs);

    (3)用滤波器对含噪语音信号进行滤波

      利用设计的带阻滤波器对采集的语音信号x1进行滤波并进行FFT变换:

      x2=filter(b,a,x1);

     X2=fft(x2,fs);

     sound(x2,fs);

      通过扬声器重播经过滤波的语音信号,可以听到不含噪声的语音信号。

4.2 Matlab源程序

clear 
speech='D:\yinpin\luyin1.wav';
[x,fs]=audioread(speech);
x=downsample(x(:,1),8);
N=length(x);
t=(0:N-1)/fs;

X=fft(x,fs);%原始语音信号频谱
X=abs(X);
f=0:length(X)-1;
subplot(221)
plot(f,X);grid on;
title('原始语音信号频谱');
axis([0,8000,0,500]);

c1=sin(2*pi*2000*t);%干扰信号
x1=x'+c1;%加噪语音信号
sound(x1,fs);
% figure(3)
% plot(time,x1);grid on;
% title('含噪语音信号');
X1=fft(x1,fs);%加噪语音信号频谱
X1=abs(X1);
f=0:length(X1)-1;
subplot(222)
plot(f,X1);grid on;
title('加噪语音信号频谱');
axis([0,8000,0,500]);

%设计数字滤波器
%带阻滤波器归一化的性能指标
f0=2000/4000;fc=100/4000;
ws=[f0-0.5*fc f0+0.5*fc];wp=[f0-fc f0+fc];
rp=1;rs=30;
%采样IIR数字滤波器设计方法,实现带阻滤波器的设计
[N,wc]=buttord(wp,ws,rp,rs);%求出巴特沃斯数字滤波器的阶数频率参数
[b,a]=butter(N,wc,'stop');%设计带阻滤波器的系数
[h,w]=freqz(b,a,fs);
subplot(223)
plot(w/pi,abs(h));grid on;
axis([0,1,0,1.5]);
title('带阻滤波器幅频特性')

%用滤波器对含噪对含噪语音信号进行滤波
x2=filter(b,a,x1);
X2=fft(x2,fs);
sound(x2,fs);
subplot(224)
plot(f,abs(X2));grid on;
title('滤波后的语音信号频谱');
axis([0,8000,0,500]);

4.3实验结果分析

      实验中得到的原始语音信号频谱图、含噪语音信号频谱图、滤波后的语音信号频谱图和带阻滤波器幅频特性图如下:

      从实验结果可知,加入噪声后的语音信号频谱在2000Hz和6000Hz处有一高峰,这正是加入干扰信号所造成的。对比滤波前后的频谱图可以看出,滤波器成功地抑制了语音信号中噪声的干扰,达到了去除噪声的目的。

五、心得体会

    通过对本实验中语音信号的采集,滤波器的设计及滤波前后频谱的变化和滤波效果等问题的思考,我对信号的采集、处理、传输、显示和存储等也有了一个较系统的掌握和理解,加深了对课堂抽象知识的理解,巩固了数字信号处理的理论知识。

猜你喜欢

转载自blog.csdn.net/qq_46035929/article/details/131008735