数字信号处理课程设计Word文档下载推荐.docx
《数字信号处理课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
结论·
14
致谢·
15
参考文献·
16
摘要
此次数字信号处理课程设计是利用MATLAB对语音信号进行分析和处理,首先采集语音信号后,在MATLAB软件平台进行频谱分析;
并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号,并对其中的信号进行绘图和分析。
其中涉及采样频率、采样位数的概念,采样定理;
时域信号的FFT分析;
数字滤波器设计原理和方法,各种不同类型滤波器的性能比较等设计原理。
关键词:
MATLAB;
语音信号;
噪声;
数字信号处理;
滤波器;
频谱分析
1设计目的和要求
1.1设计目的
(1)会利用MATLAB对语音信号进行分析和处理,设计滤波器;
(2)理解、掌握一般信号处理过程;
(3)复习、巩固所学理论和实验。
1.2设计要求
(1)利用MATLAB对语音信号进行分析和处理;
(2)采集语音信号后,在MATLAB软件平台进行频谱分析;
(3)对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析;
(4)设计合适的滤波器滤除噪声,恢复原信号。
2设计原理
2.1采样的相关概念
2.1.1采样频率
采样频率fs:
是指录音设备对模拟信号进行A/D采样时,在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
比如,对1秒时间段上的模拟连续信号采样,采样频率为1M,就是在时间轴上每隔1us采样一个点,那么就是一共采样1M个点。
采样点数就是上面所说的,根据采样时间和采样频率就能确定采样点数。
2.1.2采样位数
采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。
声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。
声卡的主要的作用之一是对声音信息进行录制与回放,在这个过程中采样的位数和采样的频率决定了声音采集的质量。
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就越高,录制和回放的声音就越真实。
采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。
无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。
2.1.3采样定理
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:
fs.max>
=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般取2.56-4倍的信号最大频率;
采样定理又称奈奎斯特定理。
2.2时域信号的FFT分析
FFT算法中的时域抽取法FFT,简称DIT—FFT。
在matlab中用y=fft(x,N)实现,x为要进行fft分析的信号,N为采样点数。
FFT在实际应用中是很重要的,它可以计算信号的频谱、功率普和线性卷积等。
它提高了DFT的速度。
2.3数字滤波器设计原理和方法
数字滤波器是数字信号处理的重要基础。
在对信号的过滤、检测与参数的估计等处理中,数字滤波器是使用最广泛的线性系统。
数字滤波器是对数字信号实现滤波的线性时不变系统。
它将输入的数字序列通过特定运算转变为输出的数字序列。
因此,数字滤波器本质上是一台完成特定运算的数字计算机。
2.3.1利用模拟滤波器来设计数字滤波器
原理:
h(n)=ha(nT)
利用模拟滤波器来设计数字滤波器也就是使数字滤波器能模仿模拟滤波器的特性,这种模仿可以从不同的角度出发。
脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),即将ha(t)进行等间隔采样,使h(n)正好等于ha(t)的采样值,满足
式中,T是采样周期。
(2.3.1)
如果令Ha(s)是ha(t)的拉普拉斯变换,H(z)为h(n)的Z变换,利用采样序列的Z变换与模拟信号的拉普拉斯变换的关系得
(2.3.2)
可看出,脉冲响应不变法将模拟滤波器的S平面变换成数字滤波器的Z平面,这个从s到z的变换z=esT是从S平面变换到Z平面的标准变换关系式。
方法:
由于脉冲响应不变法要由模拟系统函数Ha(s)求拉普拉斯反变换得到模拟的冲激响应ha(t),然后采样后得到h(n)=ha(nT),再取Z变换得H(z),过程较复杂。
下面我们讨论如何由脉冲响应不变法的变换原理将Ha(s)直接转换为数字滤波器H(z)。
设模拟滤波器的系统函数Ha(s)只有单阶极点,且假定分母的阶次大于分子的阶次(一般都满足这一要求,因为只有这样才相当于一个因果稳定的模拟系统),因此可将
(2.3.3)
其相应的冲激响应ha(t)是Ha(s)的拉普拉斯反变换,即
(2.3.4)
式中,u(t)是单位阶跃函数。
在脉冲响应不变法中,要求数字滤波器的单位脉冲响应等于对ha(t)的采样,即
(2.3.5)
对h(n)求Z变换,即得数字滤波器的系统函数
(2.3.6)
将式(2.3.4)的Ha(s)和式(2.3.6)的H(z)加以比较,可以看出:
(1)S平面的每一个单极点s=sk变换到Z平面上z=eskT处的单极点。
(2)Ha(s)与H(z)的部分分式的系数是相同的,都是Ak。
(3)如果模拟滤波器是因果稳定的,则所有极点sk位于S平面的左半平面,即Re[sk]<
0,则变换后的数字滤波器的全部极点在单位圆内,即|eskT|=eRe[sk]T<
1,因此数字滤波器也是因果稳定的。
(4)虽然脉冲响应不变法能保证S平面极点与Z平面极点有这种代数对应关系,但是并不等于整个S平面与Z平面有这种代数对应关系,特别是数字滤波器的零点位置就与模拟滤波器零点位置没有这种代数对应关系,而是随Ha(s)的极点sk以及系数Ak两者而变化。
从式(2.3.5)看出,数字滤波器频率响应幅度还与采样间隔T成反比:
(2.3.7)
如果采样频率很高,即T很小,数字滤波器可能具有太高的增益,这是不希望的。
为了使数字滤波器增益不随采样频率而变化,可以作以下简单的修正,令
h(n)=Tha(nT)
(2.3.8)
则有:
(2.3.9)
2.3.2利用双线性变换法来设计数字滤波器
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。
这是因为从S平面到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;
第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。
2.3.3利用窗函数法来设计数字滤波器
设计FIR数字滤波器最简单的方法是窗函数法。
这种方法一般是先给定所要求的理想滤波器的频率响应Hd(ejω),要求设计一个FIR滤波器频率响应0≤n≤N-1,去逼近理想的频率响应Hd(ejω)。
然而,窗函数法设计FIR数字滤波器是在时域进行的,因此,必须首先由理想频率响应Hd(ejω)的傅里叶反变换推导出对应的单位脉冲响应hd(n)
(2.3.10)
由于许多理想化的系统均用分段恒定的或分段函数表示的频率响应来定义,因此这种系统具有非因果的和无限长的脉冲响应,即hd(n)一定是无限长的序列,且是非因果的。
而我们要设计的是FIR滤波器,其h(n)必定是有限长的,所以要用有限长的h(n)来逼近无限长的hd(n),最简单且最有效的方法是截断hd(n)
0≤n≤N-1
其他
(2.3.11)
通常,我们可以把h(n)表示为所需单位脉冲响应与一个有限长的窗口函数序列w(n)的乘积,即
h(n)=hd(n)w(n)
(2.3.12)
式中,如果采用如式(7-52)的简单截取,则窗函数为矩形窗。
幅频特性和相频特性为
(2.3.13)
(1)给定希望逼近的频率响应函数Hd(ejω)。
(2)求单位脉冲响应hd(n)。
(2.3.14)
如果Hd(ejω)很复杂或不能直接计算积分,则必须用求和代替积分,以便在计算机上计算,也就是要计算离散傅里叶反变换,一般都采用FFT来计算。
将积分限分成M段,也就是令采样频率为ωk=2πk/M,k=0,1,2,…,M-1,则有
(2.3.15)
频域的采样,造成时域序列的周期延拓,延拓周期是M,即
(2.3.16)
由于hd(n)有可能是无限长的序列,因此严格说,必须当M→∞时,hM(n)才能等于hd(n)而不产生混叠现象。
实际上,由于hd(n)随n的增加衰减很快,一般只要M足够大,即M>
>
N,近似就足够了。
(3)由过渡带宽及阻带最小衰减的要求,可选定窗形状,并估计窗口长度N。
设待求滤波器的过渡带用Δω表示,它近似等于窗函数主瓣宽度。
因过渡带Δω近似与窗口长度成反比,N≈A/Δω,A决定于窗口形式。
例如,矩形窗A=4π,海明窗A=8π等,A参数选择参考表6-3。
按照过渡带及阻带衰减情况,选择窗函数形式。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。
(4)最后,计算所设计的FIR滤波器的单位脉冲响应。
(5)由h(n)求FIR滤波器的系统函数H(z)
(2.3.17)
2.4各滤波器的性能比较
从性能上说,IIR滤波器可以用较少的阶数获得很高的选择特性,这样一来,所用存储单元少,运算次数少,较为经济而且效率高。
但是这个高效率的代价是以相位的非线性得来的。
选择性越好,非线性越严重。
相反,FIR滤波器可以得到严格的线性相位。
但是,如果需要获得一定的选择性,则要用较多的存储器和较多的运算,成本比较高,信号延时也较大。
然而,FIR滤波器的这些缺点是相对于非线性相位的IIR滤波器比较而言的。
如果按相同的选择性和相同的相位线性要求的话,那么,IIR滤波器就必须加全通网络来进行相位校正,因此同样要大大增加滤波器的节数和复杂性。
所以如果相位要求严格一点,那么采用FIR滤波器不仅在性能上而且在经济上都将优于IIR。
3设计内容
2.1程序源代码
程序1:
用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱
x1=wavread('
3.wav'
);
%读取语音信号的数据,赋给变量x1
subplot(211);
plot(x1);
title('
原始语音信号'
%做原始语音信号的时域图形
xlabel('
timen'
ylabel('
fuzhin'
y=fft(x1,8000);
subplot(212);
plot(abs(y));
%做原始语音信号的FFT频谱图
原始语音频率'
Hz'
fuzhi'
程序2:
给原始的语音信号加上一个正弦噪声,频率为500Hz。
画出加噪后的语音信号时域和频谱图。
fs=8000;
f=fs*(0:
511)/1024;
t=0:
1/8000:
(size(x1)-1)/8000;
%将所加噪声信号的点数调整到与原始信号相同
noise=[0.1*sin(2*pi*500*t)]'
;
%噪声为500Hz的正弦信号
X=x1+noise;
sound(X,8000);
%播放加噪声后的语音信号
plot(X);
加噪声的语音信号'
Y=fft(X,8000);
plot(abs(Y));
FFT变换'
程序3:
窗函数法设计滤波器:
N=35;
wc=pi/4;
n=0:
N-1;
r=(N-1)/2;
hdn=-sin(wc*(n-r))/pi./(n-r);
ifrem(N,2)~=0
hdn(r+1)=1-(wc/pi);
end
hn1=fir1(N-1,wc/pi,'
high'
boxcar(N));
subplot(211)
stem(n,hn1,'
.'
)
矩形窗设计的h(n)相频特性'
n'
h(n)'
hn1f=fft(hn1,8000);
w=2*[0:
7999]/8000;
subplot(212)
plot(w,20*log10(abs(hn1f)))
grid;
axis([1,2,-80,5]);
矩形窗设计的h(n)幅频特性'
w/(2*pi)'
幅度(dB)'
程序4:
滤波器滤波比较:
滤波前的语音信号'
s0=filter(hn1,1,X);
plot(s0);
滤波后的语音信号'
y=fft(X,8000);
滤波前的频谱'
S=fft(s0,8000);
plot(abs(S));
滤波后的频谱'
2.2调试分析过程描述
设计最后采用矩形窗函数滤波器,所得结论见结果分析。
中间曾采用汉宁窗函数法,双线性变换法进行滤波。
其滤波效果如下:
双线性变换法滤波前后波形:
汉宁窗函数法滤波前后波形:
在程序编写过程中,出现过波形混叠,此为采样点数选取不合理,变换点数得出结论图。
还有一些程序上的错误,经过逐步进行来调试,寻找错误、解决错误。
在产生噪声信号时要注意将所加噪声信号的点数调整到与原始信号相同,否则出错。
在采集声音时,注意要选择单声道,时间控制在1秒左右。
2.3结果分析
用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱
窗函数法设计滤波器,及其幅频、相频特性
滤波器滤波比较
程序1为对声音信号的采集,生成其时域及频谱图形。
在程序2中加入了500hz的正弦噪声,此时原始信号的时域及频谱因干扰产生变化,使其时域波形幅值变化增加,频谱波形幅值变化变小。
设置采样点为8000。
在此基础上,在程序3中设计矩形窗函数,得其幅频及相频特性。
在程序4中,用所设计滤波器进行滤波,恢复原是波形。
其滤波前后的波形有明显的变化恢复,但其与原始值仍存在差距区别,恢复不完整。
总结
在此次数字信号处理课程设计中利用MATLAB对语音信号进行分析和处理,首先采集语音信号后,在MATLAB软件平台进行频谱分析;
通过设计,我掌握了数字滤波器设计原理和方法,理解了各种不同类型滤波器的性能,理解、掌握了一般信号处理过程。
通过本次课程设计我复习、巩固了所学理论和实验。
更好的掌握了课本中的相关理论知识,理解了设计步骤、方法、理论等。
能使用matlab进行基本的程序设计及调整。
经过本次设计我了解到自己对专业知识还存在很多不足,还需努力学习掌握,以期更好的理解与设计今后的应用。
致谢
本文是在指导老师的悉心指导下,和魏老师的教导帮助下完成的,从程序的编程、理论的研究、本文的编写,无不倾注了老师的心血和汗水。
向所有曾经关心和帮助过我的老师、同学和朋友致以诚挚的谢意!
参考文献
[1]丁玉美编.数字信号处理[M].西安:
西安电子科技大学出版社,2001.
[2]丁玉美、高西全编著.数字信号处理学习指导[M].西安:
[3]郑君里等编.信号与系统[M].北京:
高等教育出版社,2000.
[4]刘树棠译.数字信号处理——使用MATLAB[M].西安:
西安交通大学出版社,2002.
[5]导向科技编著.MATLAB程序设计与实例应用[M].北京:
中国铁道出版社,2001.
[6]罗军辉等编著.MATLAB7.0在数字信号处理中的应用[M].北京:
机械工业出版社,2005.
[7]陈怀琛等编著.MATLAB及在电子信息课中的应用[M].北京:
电子工业出版社,2002.
[8]胡广书编著.数字信号处理――理论、算法与实现[M].北京:
清华大学出版社,2002.
[9]梁虹等编.信号与线性系统分析――基于MATLAB的方法与实现[M].北京:
高等教育出版社,2006.
[10]刘卫国主编.MATLAB程序设计与应用(第二版)[M].北京: