当前位置:文档之家› 信号系统处理 语音信号滤波处理

信号系统处理 语音信号滤波处理

数字信号处理实验报告
实验名称:基于MATLAB对语音信号
进行分析及滤波处理
院系:物联网工程学院
班级:电子信息工程1101
姓名:
一、实验目的
综合计算运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,培养发现问题、分析问题和解决问题的能力。

并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

此外,还系统的学习和实现对语音信号处理的整体过程,从语音信号的采集到分析、处理、频谱分析、显示和储存。

二、实验要求
1.分析原始语音信号的时域特性和频谱特性。

2.设计一个IIR滤波器,用该滤波器对语音信号进行滤波处理,分析滤波后信号的时域特性和频谱特性。

3.设计一个FIR滤波器,用该滤波器对语音信号进行滤波处理,分析滤波后信号的时域特性和频谱特性。

三、实验原理
1.采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。

采样频率越高,即采样的时间间隔越短,对声音波形的表示越精确。

2.时域信号的FFT分析:信号的频谱分析就是计算机信号的傅里叶变换。

连续信号与系统的傅里叶分析显然不便于用计算机进行计算,使其应用受到限制。

而FFT是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。

对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。

3.IIR数字滤波器设计原理利用双线性变换设计IIR滤波器(巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。

如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率Wp和Ws的转换,对ap和as指标不作变化。

边界频率的转换关系为∩=2/T tan(w/2)。

接着,按照模拟低通滤波器的技术指标根据相应设计公式
求出滤波器的阶数N 和3dB 截止频率 ∩c ;根据阶数N 查巴特沃斯归一化低通滤波器参数表,得到归一化传输函数Ha(p);最后,将p=s/ ∩c 代入Ha(p)去归一,得到实际的模拟滤波器传输函数Ha(s)。

之后,通过双线性变换法转换公式s=2/T((1-1/z)/(1+1/z))得到所要设计的IIR 滤波器的系统函数H(z)。

4.FIR 数字滤波器设计原理基于窗函数的FIR 数字滤波器的设计方法是用一定宽度窗函数截取无限脉冲响应序列,获得有限长的脉冲响应序列,从而得到FIR 滤波器。

它是在时域进行的,由理想滤波器的频率响应)(ωj d e H 推导出其单位冲激响应hd (n),再设计一个FIR 数字滤波器的单位冲激响应h(n)去逼近
hd (n),表示)(n h d =
π21
ωωωππd e e H j j d )(⎰-由此得到的离散滤波器的系统传递函数Hd (z) 为 )(ωj d e H =∑-=-10)(N n j e n h ω,该hd (n) 为无限长序列,因此Hd (z)
是物理不可实现的。

为了使系统变为物理可实现的,且使实际的FIR 滤波器频率响应尽可能逼近理想滤波器的频率响应,采用窗函数将无限脉冲响应hd (n)截取一段h(n)来近似表示hd (n),可得:h (n) = hd (n)w(n) ,从而有:式中N 表示窗口长度,这样H(z)就是物理可实现的系统。

并且从线性相位FIR 滤波器的充要条件可知,为了获得线性相位FIR 数字滤波器的冲激响应h(n) ,那么序列h(n) 应有τ = (N −1) / 2的延迟。

由于窗函数的选择对结果起着重要的作用,针对不同的信号和不同的处理目的来确定窗函数的选择才能收到良好的效果。

四、 实验过程
1.原始信号的时域特性及频域特性的分析
在MATLAB 平台下对语音信号采样:
[y,fs,bits]=wavread('C:\WINDOWS\Media\liuwei.wav');
sound(y,fs,bits);%该语句播放语音信号%
首先使用FFT 对语音信号进行快速傅立叶变换,得到信号的频谱特性,然后画出原始信号的波形和频谱图。

程序如下:
figure(1)
plot(y);title('原始信号波形'); xlabel('time n');
ylabel('A');
figure(2)
freqz(y)
title('信号采样后频率响应图'); x1=fft(y,1024);
f=fs*(0:511)/1024;
结果如下图:
采样信号经FFT变换:
figure(3)
plot(211)
plot(f,abs(x1(1:512)));title('原信号频谱');
xlabel('频率/Hz');
ylabel('幅值');
plot(212)
plot(abs(x1(1:1024)));
title('原信号FFT频谱');
xlabel('点数 N');
ylabel('幅值');
结果如图:
2.用双线性变换法设计IIR低通滤波器:
fp=1000;fc=1200;As=100;Ap=1;ffs=44100;
wc=2*fc/ffs;wp=2*fp/ffs;
[n,wn]=ellipord(wp,wc,Ap,As);[num,den]=ellip(n,Ap,As,wn);freqz(num,den,
256,ffs);
x=filter(num,den,y);
X=fft(x,4096);
plot(211),plot(x);
title('双线性滤波后信号波形');
plot(212),plot(abs(X));
title('双线性滤波后信号频谱');
结果如图:
3.用凯泽窗设计FIR低通滤波器:
fp=1000;fc=1200;As=100;Ap=1;fs=44100;
wc=2*fc/fs;wp=2*fp/fs;
N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1;beta=0.1102*(As-8.7); Win=Kaiser(N+1,beta);b=fir1(N,wc,Win);
freqz(b,1,512,fs);
x=fftfilt(b,y);X=fft(x,4096);
sound(x,fs,bits);
plot(211),plot(x);
title('FIR滤波后信号波形');
plot(212),plot(abs(X));
title('FIR滤波后信号频谱');
结果如图:
五、总结
本文对语音信号处理系统的设计作了详细的介绍,采用一系列图像分析和处
理技术,实现了语音信号的基本处理的功能,经过测试运行,本设计圆满的完成
了对语音信号的读取和打开;较好的完成了对语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一块,课题主要是从数字滤波器入手来
设计滤波器,基本实现了滤波,完成了各种滤波器效果比较与课题的要求十分相符。

通过这次课程设计,使我对语音信号有了全面的认识,对数字信号处理的知
识又有了深刻的理解,在之前数字信号与处理的学习以及完成课后的作业的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。

通过这次练习是我进一步了解了信号的产生、采样及频谱分析的方法。

以及
其中产生信号和绘制信号的基本命令和一些基础编程语言。

让我感受到只有在了
解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以
很好的加深我对课程的理解,方便我的思维。

这次设计使我了解了MATLAB的使用
方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。

同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。

相关主题