数字信号处理课程设计报告课设题目:语音信号的采集与处理学院:专业:班级:姓名:学号:指导教师:2011 年7月1日课程设计报告撰写要求1、页面设置纸张大小设置为纵向A4,页边距设置为:上3.8厘米,下 3.5厘米,左3厘米,右3厘米,页眉设置为3厘米,页脚设置为2.7厘米,文档网络设置为指定行和字符网格,每行34字,每页34行。
2、段落及字体设置除各级标题外,首行缩进2字符;图、表及图题、表题首行不缩进,居中放置;图表不应超出版心范围;行距采用单倍行距。
正文中文采用小四号宋体,英文采用新罗马字体(Times New Roman),段前0磅,断后0磅;一级标题采用小二号黑体,段前12磅,段后12磅二级标题采用小三号黑体,段前6磅,段后6磅三级标题采用四号黑体,段前6磅,段后0磅3、装订要求采用左侧装订,订两钉。
目录一. 课程设计任务 (1)二. 课程设计原理及设计方案 (2)三. 课程设计的步骤和结果 (6)四. 课程设计总结 (39)五. 设计体会 (40)六. 参考文献 (41)哈尔滨工业大学(威海)课程设计报告一. 课程设计任务1、语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1s内,然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
2、语音信号的频谱分析在Matlab中,可以利用函数fft对信号进行快速傅立叶变换,得到信号的频谱特性,要求学生首先画出语音信号的时域波形,然后对语音信号进行频谱分析。
3、设计数字滤波器和画出其频率响应给出各滤波器的性能指标;给定滤波器的性能指标如下:(1)低通滤波器的性能指标:fb=1000Hz,fc=1200Hz,As=100dB,Ap=1dB.(2)高通滤波器的性能指标:fc=4800Hz,fb=5000Hz,As=100dB,Ap=1dB.(3)带通滤波器的性能指标:fb1=1200Hz, fb2=3000Hz,fc1=1000Hz, fc2=3200Hz,As=100dB,Ap=1dB.采用窗函数法和双线性变换法设计上面要求的3种滤波器,并画出滤波器的频率响应;4、用滤波器对信号进行滤波然后用自己设计的滤波器对采集到的信号进行滤波,画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化;5、回放语音信号,分析滤波前后的语音变化;6、设计系统界面为了使编制的程序操作方便,设计处理系统的用户界面,在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数、显示滤波器的频率响应,选择信号等。
- 1 -哈尔滨工业大学(威海)课程设计报告- 2 -二. 课程设计原理及设计方案1.用窗函数法设计FIR 滤波器根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N (或阶数M=N-1),窗函数类型可根据最小阻带衰减As 独立选择,因为窗口长度N 对最小阻带衰减As 没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N ,设待求滤波器的过渡带宽为Δw ,它与窗口长度N 近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N ,在N 和窗函数类型确定后,即可调用MATLAB 中的窗函数求出窗函数wd (n )。
根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd ,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2π采样N 点,采用离散傅里叶反变换(IDFT )即可求出。
用窗函数wd(n)将hd(n)截断,并进行加权处理,得到如果要求线性相位特性, 则h(n)还必须满足:根据上式中的正、 负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。
要根据所设计的滤波特性正确选择其中一类。
例如, 要设计线性相位低通特性可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。
验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz 子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。
2.用双线性变换法设计IIR 数字滤波器 1()()2j j n d d h n H e e d πωωπωπ-=⎰()()()d h n h n n ω=()(1)h n h N n =±--哈尔滨工业大学(威海)课程设计报告脉冲响应不变法的主要缺点是产生频率响应的混叠失真。
这是因为从S平面到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT 转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。
图1双线性变换的映射关系为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现(1)式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。
将式(1)写成将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得再将S1平面通过以下标准变换关系映射到Z平面z=es1T从而得到S平面和Z平面的单值映射关系为:(2)- 3 -哈尔滨工业大学(威海)课程设计报告(3)式(2)与式(3)是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换式(1)与式(2)的双线性变换符合映射变换应满足的两点要求。
首先,把z=ejω,可得(4)即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入式(4),得因此由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
双线性变换法优缺点双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。
这是因为S平面与Z平面是单值的一一对应关系。
S平面整个jΩ轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。
这个关系如式(4)所示,重写如下:- 4 -哈尔滨工业大学(威海)课程设计报告上式表明,S平面上Ω与Z平面的ω成非线性的正切关系,如图2所示。
由图2看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
图2双线性变换法的频率变换关系但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式(4)及图2所示。
由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图3所示。
图3双线性变换法幅度和相位特性的非线性映射对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
- 5 -哈尔滨工业大学(威海)课程设计报告三. 课程设计的步骤和结果1、语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1s内,然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
程序:[y,fs,nbits]=wavread(' E:\matlab_yuyin\my voice.wav ')得到:fs =22050nbits =16由此可知,采样频率为22050Hz,采样点数为16bit2、语音信号的频谱分析在Matlab中,利用函数fft对信号进行快速傅立叶变换,得到信号的频谱特性,首先画出语音信号的时域波形,然后对语音信号进行频谱分析。
程序:[y,fs,nbits]=wavread('E:\matlab_yuyin\my voice.wav');sound(y,fs,nbits);y = y - mean(y); %去直流成分Y = fftshift(abs(fft(y)));w = linspace(-fs/2,fs/2,length(Y));subplot(2,1,1),plot(y);title('原始信号波形');subplot(2,1,2),plot(w,Y);title('原始信号频谱');axis([0,2000,-inf,inf]);- 6 -哈尔滨工业大学(威海)课程设计报告3、设计数字滤波器和画出其频率响应给出各滤波器的性能指标;给定滤波器的性能指标如下:(1)低通滤波器的性能指标:fb=1000Hz,fc=1200Hz,As=100dB,Ap=1dB.(2)高通滤波器的性能指标:fc=4800Hz,fb=5000Hz,As=100dB,Ap=1dB.(3)带通滤波器的性能指标:fb1=1200Hz, fb2=3000Hz,fc1=1000Hz, fc2=3200Hz,As=100dB,Ap=1dB.采用窗函数法和双线性变换法设计上面要求的3种滤波器,并画出滤波器的频率响应;4、用滤波器对信号进行滤波用自己设计的滤波器对采集到的信号进行滤波,画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化;窗函数法设计FIR滤波器:(1)低通滤波器clear all;Ft=22050;Fp=1000;Fs=1200;- 7 -哈尔滨工业大学(威海)课程设计报告[y,fs,nbits]=wavread('my voice.wav');%sound(y,fs,nbits);y=y-mean(y);wp=2*Fp/Ft;ws=2*Fs/Ft;As=100;wdel = ws - wp; %过渡带宽N= ceil( 8*pi/wdel );%取整Wn = (wp + ws)/2 %截止频率即Wc% N取奇数if mod(N,2)==0N= N + 1; %若为偶数则加1endfcuts=[1000*2/Ft 1200*2/Ft]; %归一化频率mags=[1 0];devs=[1-10^(1/-20) 10^(40/-20)];[N,Wn,beta,ftype]=kaiserord(fcuts,mags,devs); %计算出凯塞窗N,beta的值b= fir1(N,Wn,ftype,kaiser(N+1,beta),'noscale');freq_axis = [0:pi/512:pi-pi/512];freq_norm = [0:511]/512; %归一化的频率轴H= freqz( b);%变成频率响应%b为h[n]系数,1表示无极点(因为是FIR),512表示点数)subplot(2,1,1);plot( freq_norm,20*log10(abs(H)) ); %画对数幅度谱hold on;xlabel( '归一化频率w/pi' ); ylabel( '幅度(dB)' );title( 'FIR-幅度响应');subplot(2,1,2);plot( freq_norm,angle(H) ); hold on;xlabel( '归一化频率w/pi' ); ylabel( '相位' );title( 'FIR-相位响应');- 8 -哈尔滨工业大学(威海)课程设计报告f2=filter(b,1,y); %滤波figure(2)subplot(2,1,1)plot(y)title('FIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title('FIR低通滤波器滤波后的时域波形');sound(f2); %播放滤波后的语音信号F0=fftshift(abs(fft(f2)));figure(3)y2 = fftshift(abs(fft(y)));w = linspace(-Ft/2,Ft/2,length(y2));subplot(2,1,1);plot(w,y2);title('FIR低通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');w = linspace(-Ft/2,Ft/2,length(F0));subplot(2,1,2)plot(w,F0);title('FIR低通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');- 9 -哈尔滨工业大学(威海)课程设计报告- 10 -哈尔滨工业大学(威海)课程设计报告分析:由频率响应可看出为低通,与题目要求的fp1=1000,fs1=1200基本吻合,阻带衰减近似为100,且为线性相位。