《数字信号处理》课程设计报告数字信号处理在语音信号分析中的应用专业班级:姓名:学号:目录摘要 (3)1、绪论 (3)2、课程设计的具体容 (4)2.1.1、读取语音信号的任务 (4)2.1.2、任务分析和解决方案 (5)2.1.4、运行结果和相应的分析 (5)2.2、IIR滤波器设计和滤波处理 (6)2.2.1、设计任务 (6)2.2.2、任务分析和解决方案 (7)2.2.3、编程得到的MATLAB代码 (7)2.2.4、运行结果和相应的分析 (7)2.3、FIR滤波器设计和滤波处理 (9)2.3.1、设计任务 (9)2.3.2、任务分析和解决方案 (9)2.3.3、编程得到的MATLAB代码 (9)2.3.4、运行结果和相应的分析 (11)3、总结 (13)4、存在的不足及建议 (13)5、参考文献 (13)数字信号处理设计任务书摘要语音信号滤波处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。
信号处理是Matlab重要应用的领域之一。
本设计通过录制一段语音,对其进行了时域分析,频谱分析,分析语音信号的特性。
并应用matlab平台对语音信号进行加噪然后再除去噪声,进一步设计两种种滤波器即高通滤波器、带通滤波器,基于这两种滤波器设计原理,对含加噪的语音信号进行滤波处理。
最后对比滤波前后的语音信号的时域和频域特性,回放含噪语音信号和去噪语音信号。
论文从理论和实践上比较了不同数字滤波器的滤波效果。
1.绪论通过语音传递倍息是人类最重要、最有效、最常用和最方便的交换信息的形式。
语言是人类持有的功能,声音是人类常用的工具,是相互传递信息的最主要的手段。
因此,语音信号是人们构成思想疏通和感情交流的最主要的途径。
并且,由于语言和语音与人的智力活动密切相关,与社会文化和进步紧密相连,所以它具有最大的信息容量和最高的智能水平。
现在,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。
让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。
随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输人这样便于使用的、自然的、人性化的输人方式。
作为高科鼓应用领域的研究热点,语音信号采集与分析从理论的研究到产品的开发已经走过了几十个春秋并且取得了长足的进步。
它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理.工业生产部门的语声控制,、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。
可见,语音信号采集与分析的研究将是一项极具市场价值和挑战性的工作。
我们今天进行这一领域的研究与开拓就是要让语音信号处理技术走人人们的日常生活当中,并不断朝更高目标而努力。
数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测和参数估计等处理。
IIR数字滤波器最大的优点是给定一组指标时,它的阶数要比相同组的FIR滤波器的低的多。
信号处理中和频谱分析最为密切的理论基础是傅立叶变换(FT)。
离散傅立叶变换(DFT)和数字滤波是数字信号处理的最基本容通过数字信号处理的课程设计,使学生对信号的采集,处理,传输,显示,存储和分析等有一个系统的掌握和理解。
巩固和运用数字信号处理课程中的理论知识和实验技能,掌握最基本的数字信号处理的理论和方法,培养学生发现问题,分析问题和解决问题的能力。
2、课程设计的具体容用MATLAB对语音信号进行分析与处理,采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
对一段语音信号进行采样;画出采样后语音信号的时域波形和频谱图;用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。
设计容:采样一段语音信号;画出语音信号的时域波形和频谱图;给定滤波器的性能指标,设计数字滤波器,并画出滤波器的频率响应;然后用设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱。
关键技术:频谱图的理解;设计数字滤波器;数字滤波的方法;解决思路:对语音号进行快速傅里叶变换,得到信号的频谱特性;在MATLAB环境中可以利用函数fir设计FIR滤波器,可以利用函数butter设计IIR滤波器;利用MATLAB中的函数freqz画出各滤波器的频率响应。
2.1.1、读取语音信号的任务自制一段语音信号(要求:我叫***,学号****,是理工学院电子信息工程学院2012级电子卓越班的学生)。
2.1.2、任务分析和解决方案在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
通过wavread函数的使用,要求理解掌握采样频率、采样位数等概念。
2.1.3、编程得到的MATLAB代码[z1,Fs]=audioread('F:\cjl\chenjunlin.wma');sound(z1,Fs);%播放语音信号figure(1) plot(z1);figure(1);plot(z1);title('时域图');xlabel('时间(n)');ylabel('幅值(n)');频域程序:[z2,Fs]=audioread('F:\cjl\chenjunlin.wma');y1=fft(z2);y1=fftshift(y1);sound(z2,Fs); %播放语音信号figure(2);derta_Fs = Fs/length(z2);plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(y1)); title('频谱图');xlabel('时间(n)');ylabel('幅值(n)');2.1.4、运行结果和相应的分析由图可知人的声音分布在低频。
而声音比较底和深沉。
2.2、IIR滤波器设计和滤波处理2.2.1、设计任务要求用自己设计的各种滤波器(高通、低通)分别对采集的信号进行滤波。
2.2.2、任务分析和解决方案在MATLAB中,利用函数filter对信号进行滤波。
利用MATLAB中的函数freqz画出各滤波器的频率响应。
2.2.3、编程得到的MATLAB代码IIR数字低通滤波器fs=22050;[z3,Fs]=audioread('F:\cjl\chenjunlin.wma');Ts=1/fs;R1=10;wp=2*pi*1000/fs;%通带截止频率?ws=2*pi*1200/fs;%阻带截止频率Rp=1;%通带衰减?Rl=100;%阻带衰减?wp1=2/Ts*tan(wp/2);%将模拟指标转换成数字指标?ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,R1,'s');%选择滤波器的最小阶数[Z,P,K]=buttap(N);%创建butterworth模拟低通滤波器?[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);%将模拟原型低通滤波器转换为低通滤波器[bz,az]=bilinear(b,a,fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换? [H,W]=freqz(bz,az);%绘制频率响应曲线?figure(1)plot(W*fs/(2*pi),abs(H))gridxlabel('频率/Hz')ylabel('频率响应幅度')title('IIR低通滤波器')f1=filter(bz,az,z3);figure(2)subplot(2,1,1)plot(z3)%画出滤波前的时域图?title('IIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f1);%画出滤波后的时域图?title('IIR低通滤波器滤波后的时域波形');sound(f1,44100);%播放滤波后的信号?F0=fft(f1);f=fs*(0:511)/1024;figure(3)y2=fft(z3);subplot(2,1,1);derta_Fs = Fs/length(z3);plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(y2));%画出滤波前的频谱图? title('IIR低通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)derta_Fs = Fs/length(z2);plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(F0));%画出滤波后的频谱图? title('IIR低通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');IIR数字高通滤波器fc1=4000;[z2,Fs]=audioread('F:\cjl\chenjunlin.wma');N2=2*pi*3.1/(0.1*pi)wc2=2*pi*fc1/fs;N2=N2+mod(N2,2);Window=hanning(N2+1);b2=fir1(N2,wc2/pi,'high',Window);x1_high = filter(b2,1,x1);%对信号进行高通滤波figure(1);plot(x1_high);title('信号经过高通滤波器(时域)');figure(2);derta_fs = fs/length(z2);plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fft(x1_high)))); title('信号经过高通滤波器(频域)')2.2.4、运行结果和相应的分析语音高频成分音质非常尖锐,齿音中,声音有些暗淡。