信号处理综合设计设计说明书设计项目:语音信号的数字滤波处理项目完成人:姓名:潘雅莉学号:2014221012专业班级:电子信息工程二班指导教师:刘淑玉,赵亚凤,王建卫,朱自民提交日期:2017.1.7机电工程学院电子信息工程东北林业大学课程设计1.设计基本原理1.1课题研究的背景1)熟悉离散信号和系统的时域特性。2)掌握数字信号处理的基本概念,基本理论和基本方法。3)掌握序列快速傅里叶变换方法。4)练习对MATLAB的使用,掌握MATLAB的程序设计方法。5)学习利用MATLAB对语音信号进行频谱分析。6)学习设计巴特沃斯滤波器以及采用hamming窗设计FIR数字低通,高通和带通滤波器的方法。1.2课题研究意义通过本次课程设计,综合运用数字信号处理技术课程和其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,学习设计的一般方法。通过课程设计树立正确的设计思想,提高学生分析问题、解决问题的能力。进行设计基本技能的训练,如查阅设计资料和手册、程序的设计、调试,了解语音信号的产生、采集、能绘制语音信号的频率响应曲线及频谱图,学会用MATLAB对语音信号进行分析和处理,学习设计滤波器的一般方法,通过课程设计树立正确的设计思想,提高分析问题、解决问题的能力,掌握用滤波器去除语音信号噪声的方法,观察去噪前后的语音信号,进行设计基本技能的训练,如查阅设计资料和手册、程序的设计、调试等。设计任务2.1课题设计的任务(1)东北林业大学课程设计(2)熟悉离散信号和离散系统的时域特性。(3)掌握序列快速傅里叶变换(FFT)方法。(4)掌握滤波器的几种网络结构。(5)学会使用软件MATLAB,掌握其程序设计方法。(6)掌握利用MATLAB对语音信号进行频谱分析的方法。2.2课题研究的内容预习题部分1、设计卷积运算的演示程序:①可输入任意两个序列x1(n)、x2(n),指定x1(n)为自己的学号,例如x1(n)={2,0,1,0,5,7,0,5,0,2,0,1}。x2(n)的内容和长度自选。例如x2(n)={0.5,2.43,6.17,12.93,22.17,32.25,40.88,45.87,45.87,40.88,32.25,22.17,12.93,6.17,2.43,1.007}。②分别动态演示两个序列进行线性卷积x1(n)*x2(n)和圆周卷积x1(n)⊙x2(n)的过程;要求分别动态演示翻转、移位、乘积、求和的过程;③圆周卷积默认使用两个序列中的最大长度,但卷积前可以指定卷积长度N用以进行混叠分析;④改变圆周卷积长度N,根据实验结果分析两类卷积的关系;⑤在计算机操作系统中选一段声音文件(XP系统在“C:\WINDOWS\Media”),读取文件取10ms的声音数据产生时域序列x1(n),序列内容自定义。利用x2(n)={0.5,2.43,6.17,12.93,22.17,32.25,40.88,45.87,45.87,40.88,32.25,22.17,12.93,6.17,2.43,1.007}。利用FFT实现快速卷积,验证时域卷积定理,并与直接卷积进行效率对比(验证时采用Matlab子函数)。2、编写程序演示采样定理(时域采样、频谱周期延拓),同时演示采样频率小于2fc时,产生的混叠效应:①对下面连续信号进行采样:00()sin()(),2ataxtAetutAnann,,学号,A为幅度因子,a为衰减因子,0为模拟角频率,其中n为学号(例如,贺娜同学n=201);东北林业大学课程设计②要求输入采样频率fs(根据程序处理需要指定范围)后,在时域演示信号波形、采样脉冲及采样后信号;在频域演示不同采样频率下对应信号的频谱。设计题部分数字滤波器设计及其应用①利用Windows下的录音机或其他软件,进行语音信号的采集(*.wav);②语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图;③产生噪声信号并加到语音信号中,得到被污染的语音信号,并回放语音信号;④污染信号的频谱分析,画出被污染的语音信号时域波形和频谱;⑤根据有关的频谱特性,采用间接法设计IIR数字滤波器,并画出相应滤波器的幅频、相频图(设计3个IIR滤波器)a.模拟滤波器类型:巴特沃斯滤波器(低通、带通、高通)b.总体要求:Matlab原程序+仿真波形+技术指标⑥根据有关的频谱特性,采用直接法设计FIR数字滤波器,并画出相应滤波器的幅频、相频图(设计3个FIR滤波器)a.滤波器类型:汉宁(Hanning)窗(低通、带通、高通)b.总体要求:Matlab原程序+仿真波形+技术指标+窗函数⑦用自己设计的这些滤波器分别对被不同噪声污染的信号进行滤波;⑧分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。设计提示1.语音信号的采集要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000Hz,8位,单声道)录制一段自己的话音,或者采用Windows自带的声音文件(默认为22050Hz),时间控制在几秒左右。然后在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=3000Hz,As=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。4.回放语音信号在Matlab中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bits);可以感觉滤波前后的声音有变化。5.语音的反转将女生的一段声音反转成男生,或者将男生的声音反转成女生。2.3课题研究的指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。东北林业大学课程设计预习部分练习1.线性卷积n1=1:40;n2=1:40;x1=[zeros(1,12),2,0,1,4,2,2,1,0,1,2,0,0,zeros(1,16)];x2=[zeros(1,12),2,4,5,6,2,7,4,8,9,6,4,8,3,5,7,8,zeros(1,12)];x11=zeros(size(x1));subplot(3,1,1)stem(n1,x1)subplot(3,1,2)stem(n2,x2)pause(1);fori=1:24x11(i)=x1(25-i);endfori=25:40x11(i)=0;endsubplot(3,1,1)stem(n1,x11);pause(1)x3=zeros(size(x11));fori=1:28x11=[zeros(1,1),x11(1:(40-1))];x3(i)=sum(x11.*x2);subplot(3,1,1)stem(n1,x11)subplot(3,1,3)x4=[zeros(1,12),x3(1:i),zeros(1,28-i)];stem(n1,x4)pause(1)end东北林业大学课程设计圆周卷积x=[2,0,1,4,2,2,1,0,1,2,0,0];y=[5,4,3,6,1,7,4,8,4,5,4,8,3,8,7,8];subplot(2,1,1)stem([x,zeros(1,28)]);N1=length(x);N2=length(y);N=N1;ifN2N1N=N2;endM=input('请输入圆周卷积长度\n');ifM=NN=M;endifN==N1x=x;elsex=[x,zeros(1,N-N1)];endX=zeros(N,N);x1=zeros(1,N);pause(2)forn=1:Nifn==1x1(n)=x(n);elsex1(n)=x(N-n+2);end东北林业大学课程设计endX(1,1:N)=x1;fori=2:Npause(1)forn=1:Nifn==1X(i,n)=X(i-1,N);elseX(i,n)=X(i-1,n-1);endendsubplot(2,1,1)stem(X(i,1:N));endifN2Ny=[y,zeros(1,N-N2)];endY=y';W=X*Y;W=W';n=1:N;subplot(2,1,2)stem(n,W)分析总结:由以上分析可知,当循环卷积区间长度大于28时,不会出现混叠显现;当循环卷积长度小于28时,会出现混叠现象从而失真。利用FFT实现快速卷积x1=wavread('Alarm01.wav',2000);x1=x1';x1=x1(1,:);x2=[12.436.1712.9322.1732.2540.8845.8745.8740.8832.2522.1712.936.172.431];subplot(7,1,1);stem(x1);ylabel('x1(n)');title('x1(n)');subplot(7,1,2);stem(x2);ylabel('x2(n)');title('x2(n)');y=conv(x1,x2);subplot(7,1,3);stem(y);ylabel('y');title('x1(n)与x2(n)的卷积');N1=length(x1);N2=length(x2);N=N1+N2-1;X1=fft(x1,N);X2=fft(x2,N);subplot(7,1,4);stem(X1);ylabel('X1');title('x1(n)的N点DFT');subplot(7,1,5);stem(X2);东北林业大学课程设计ylabel('X2');title('x2(n)的N点DFT');Y1=X1.*X2;subplot(7,1,6);stem(Y1);ylabel('Y1');title('X1与X2相乘的结果');Y2=ifft(Y1);subplot(7,1,7);stem(Y2);ylabel('Y2');title('Y1的IDFT结果');fs=input('请输入采样频率:');n=input('请输入4位学号:');t=0:1/fs:1;t1=0:0.0005:1;A=n;a=sqrt(2)*n*pi