数字信号处理课程设计报告.docx
《数字信号处理课程设计报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
数字信号处理课程设计报告
数字信号处理课程设计报告
一、课程设计目的
1.学会MATLAB的使用,掌握MATLAB的程序设计方法;
2.掌握在Windows环境下语音信号采集的方法;
3.掌握数字信号处理的基本概念、基本理论和基本方法;
4.掌握MATLAB设计FIR和IIR数字滤波器的方法;
5.学会用MATLAB对信号进行分析和处理;
二、课程设计内容
1.语音信号的采集
要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8KHz,8位,单声道)或其他软件,录制一段自己的话音,时间控制在2秒左右。
然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
通过wavread函数的使用,要求理解采样频率、采样位数等概念。
wavread函数调用格式:
y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。
y=wavread(file,N),读取前N点的采样值放在向量y中。
y=wavread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量y中。
2.语音信号的频谱分析
要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速傅立叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。
3.设计数字滤波器和画出频率响应
根据语音信号的特点给出有关滤波器的性能指标:
1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;
2)高通滤波器性能指标,fc=2800Hz,fp=3000HzAs=100dB,Ap=1dB;
As=100dB,Ap=1dB。
要求学生首先用窗函数法设计上面要求的两种滤波器,在MATLAB中,可以利用函数fir1设计FIR滤波器;之后再利用函数butter和cheby1设计上面要求的两种IIR滤波器。
最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。
4.用滤波器对信号进行滤波
比较FIR和IIR两种滤波器的性能,然后用性能好的各滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
5.比较滤波前后语音信号的波形及频谱,要求在一个窗口同时画出滤波前后的波形及频谱。
6.回放语音信号
在MATLAB中,函数sound可以对声音进行回放。
其调用格式:
sound(x,fs,bits);可以感觉滤波前后的声音有变化。
三、课程设计原理
1、 语音信号的采样
●语音信号的录制 :
语音信号的录制可通过MATLAB工具也可以通过windows自带的录音机录制一段自己的声音。
在MATLAB里面,用函数wavrecord录制一段时间自定的声音,用函数wavwrite存储原始语音信号。
其调用格式如下:
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样
位数。
● 语音信号的频谱分析
对语音信号进行频谱分析,是认识语音信号和处理语音信号的重要方法。
下面将采用频谱来分析语音信号。
对一个语音时域离散信号{x(n)},其频谱函数X(jw)是x(n)的傅里叶变换。
傅里叶变换定义为:
其中j为虚数单位,ω称为数字频率。
由于处理的信号是有限长的,即n<
,故实际采用的是离散傅里叶变换DFT 。
长度为N的序列x(n),其DFT定义为:
如果x(n)为一个周期序列,得到的X(k)为x(n)的周期频谱。
若x(n)不是周期序列,先对x(n)进行周期性扩展,把它看成某个周期性信号的一个周期,得到的X(k)是x(n) 频谱在一个周期的采样。
DFT有一种快速算法FFT,称为快速傅里叶变换。
MATLAB中采用的就是FFT算法。
2、滤波器设计
滤波器的设计一般可分为无限冲激响应数字滤波器(IIR)和有限冲激响应数字滤波器(FIR)。
● IIR数字滤波器
IIR数字滤波器的系统函数是Z的有理函数,可表示为系统函数的设计就是要确定系数或者零、极点,以使滤波器满足给定的性能要求。
这种设计方法如下:
(1)用模拟滤波器理论来设计数字滤波器。
在IIR数字滤波器的设计中较多采用这种方法。
(2)用计算机辅助设计,优化技术设计。
即要求所设计的数字滤波器的输入x(n)等于x(t)的抽样信号x(Tn)时,输出y(n)也恰好等于y(t)的抽样信号。
● FIR数字滤波器
(1)FIR数字滤波器的算法描述
FIR数字滤波器又称卷积滤波器,因为它在时域上的输入x(n)和输出信号y(n)的数学关系是卷积运算:
y(n)= h(n)*x(n)。
其中h(n)是FIR滤波器的单位冲激响应函数,其表达式是由理想滤波器频响的幅度函数H(w)进行傅里叶逆变换得到的,式中wc为滤波器的截止频率。
(2)FIR滤波器的窗函数设计法
窗函数法的基本思想是,由于滤波器的时间响应函数h(n)是无限长的,不能用FIR滤波的方法实现,所以要截取h(n)幅度较大的部分,舍弃h(n)幅度较小的部分来近似表示h(n)。
截取方法是用某一种窗函数和截取h(n)的一段进行卷积以得到实际滤波器的相应h(n)。
窗函数不同,窗口宽度不同,实际频响会有较大区别。
如加海明窗的频响曲线的通带和阻带特性比矩形窗好;窗口宽度N的阶数高,也能提高滤波器频响性能,但实时信号处理的时间会相应增加。
因此,应根据滤波参数要求确定选用窗函数的类型和阶数。
(3)逼近
确定了技术指标后,就可以建立一个目标数字滤波器模型。
通常采用理想的数字滤波器模型。
之后,利用数字滤波器的设计方法,设计一个实际滤波器模型来逼近给定的目标。
(4)性能分析和计算机仿真
上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。
根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求,或利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
(5)线性相位FIR滤波器具体的窗函数法设计方法
线性相位FIR滤波器通常采用窗函数法设计。
窗函数法设计FIR滤波器的基本思想是:
根据给定的滤波器技术指标,选择滤波器长度N和窗函数w(n),使其具有最窗宽度的主瓣和最小的旁瓣。
其核心是从给定的频率特性,通过加窗确定有限长单位脉冲响应序列h(n)。
工程中常用的窗函数共有6种,即矩形窗(boxcar)、三角(triang)窗、汉宁(hanning)窗、哈明(hamming)窗、布莱克曼(blackman)窗和凯塞(kaiser)窗。
四、课程设计步骤
1.语音信号的采集:
利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道),录制一段自己的话音“信号”,时间控制在2秒左右,然后将音频文件保存“qm.wav”
2..语音信号的频谱分析
对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速傅立叶变换,得到信号的频谱特性
3.设计数字滤波器及对信号进行滤波
五、实验设计结果与分析
1、图1为未经处理的语音信号采集波形
图1
2、图2为原音频谱,由于频谱是对称的,所以利用采集样点的限制得到一半的频谱。
程序如下:
>>[xn,fs,nbits]=wavread('qm.wav');
>>pinpu=abs(fft(xn));
>>plot(pinpu),xlim([0,5000])
运行程序结果:
图2原音频谱
3、以下为语音信号滤波前后的频谱图及波形。
●FIR低通滤波器
图3hamming低通滤波器滤波前后语音信号的频谱图及波形
分析:
有曲线可见,用哈明窗设计的结果能够满足设计指标要求。
有N值(由程序运行结果得N=133)可知,FIR数字低通滤波器的阶数一般比较高。
哈明窗又称改进的升余弦窗,其旁瓣宽度较小。
相位响应有严格的线性。
●FIR高通滤波器
图4triang高通滤波器前后语音信号的频谱图及波形
分析:
三角形窗的阻带最小衰减值为25db。
相位响应有严格的线性
●IIR低通滤波器
图5butter低通滤波器前后语音信号的频谱图及波形
图6cheby1低通滤波器前后语音信号的频谱图及波形
分析:
cheby1滤波器通带等波纹,相位响应非线性。
图7cheby2低通滤波器前后语音信号的频谱图及波形
分析:
cheby2滤波器阻带等波纹,相位响应非线性。
图8ellip低通滤波器前后语音信号的频谱图及波形
分析:
ellip函数可得到下降斜度更大的滤波器,但在通带和阻带均为等波动的。
椭圆滤波器能以最低的阶数实现指定的性能,非线性相位。
图9butter高通滤波器前后语音信号的频谱图及波形
图10cheby1高通滤波器前后语音信号的频谱图及波形
图11cheby2高通滤波器前后语音信号的频谱图及波形
图12ellip高通滤波器前后语音信号的频谱图及波形
总分析:
通过滤波前后两信号的比较,通过上面的振幅图可以很清晰地观察到经过滤波后与滤波前存在明显差别,滤波后的图振幅比较平稳,振幅较小,原始语音信号比滤波后的信号清晰,滤波后的声音显得比较低沉,因为原始信号经过低通滤波器后,低通滤波器已经把信号高频部分滤掉了,只剩下低频部分。
如果将滤波器频率逐渐改小,会发现声音音调相对于原信号越来越小,谈话内容越来越不清晰,观察频谱也可以发现,随着滤波器截止频率的减小,所滤掉的部分逐渐增多,导致信号发生了较大的改变。
如果是原始信号经过高通滤波器,通过频谱分析可以发现,声音的低频部分大部分都被滤除,所剩下的高频的部分幅度相对于低频部分小了太多,因此声音相当模糊。
随着截止频率的减小,声音会逐渐清晰。
通过比较FIR和IIR相位响应,我们可以看到,FIR滤波器的相位响应更为稳定,近乎是一种线性关系。
所以在对相位要求较严格的地方,FIR占据了统治地位。
总之,双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象。
但会产生频率混碟现象,使数字滤波器的频响偏移模拟滤波器的频响。
窗函数法:
相位响应有严格的线性,不存在稳定性问题,设计简单。
6、实验问题
1、双线性变换法中Ω和ω之间的关系是非线性的,在实验中你注意到这种非线性关系了吗?
从哪几种数字滤波器的幅频特性曲线中可以观察到这种非线性关系?
答:
在双线性变换法中,模拟频率与数字频率不再是线性关系,所以一个线性相位模拟器经过双线性变换后得到的数字滤波器不再保持原有的线性相位了。
如以上实验过程中,采用双线性变化法设计的butter和cheby1数字滤波器,从图中可以看到这种非线性关系。
2.能否利用公式完成脉冲响应不变法的数字滤波器设计?
为什么?
答:
IIR数字滤波器的设计实际上是求解滤波器的系数和阶数,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。
但是它的缺点是,存在频率混迭效应,故只适用于阻带的模拟滤波器。
七、实验总结
经过一个星期的课程设计,我们基本按质按量完成了课程设计的各项工作。
在设计过程中我们遇到了很多从未遇到过的问题,小到一些标点符号,大到程序的设计,但我们还是很努力的去完成我们是任务,经过多方面查资料和请教老师、同学,逐渐把一些不懂的问题解决,最终完成本次课程设计。
在本次设计过程中,使我对数字信号处理的设计和MATLAB软件的认识更进一层,更重要的是使我学会了如何面对困难。
●在设计中,总结了以下几点问题及解决方法:
1、在录音过程中,出现了这样一个现象:
录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象。
出现这种现象的原因主要是录音开始时,人的反应慢了半拍,导致出现了一些无效点。
要去掉这些无效点,可用函数wavread()来滤除。
2、在设计窗函数时,当衰减设为As设置为100dB时,频谱会出现一条直线,刚开始不知道为什么,后来经过请教老师和查阅资料才知道,窗函数的最小衰减为80db,没有一个窗函数最小衰减能够达到100dB的,所以会出现错误。
3、使用xlim([a,b])可以现在采样点,得到一半的频谱。
通过本次课程设计,使我加深了对数字信号处理这门课和MATLAB这个软件工具的认识。
语音信号处理是以MATLAB为工具平台、数字信号处理为基础而形成的一门综合性学科,处理的目的是要得到一些语音参数以便高效的传输或存储,或者通过处理的某种运算以达到某种用途的要求。
而MATLAB是一款多功能多特点的的软件,对于现代科学工程的计算和分析具有重要的意义。
语音信号处理与滤波的设计对于所学的数字信号处理课程的理论得到了综合的应用,并从实践上初步实现对数字信号的处理。
●结果分析:
1、双线性变换法分析:
双线性变换的主要优点:
双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象。
双线性变换法的缺点:
会产生频率混碟现象,使数字滤波器的频响偏移模拟滤波器的频响。
窗函数法分析:
2、窗函数法:
相位响应有严格的线性,不存在稳定性问题,设计简单。