简单语音处理系统设计_第1页
简单语音处理系统设计_第2页
简单语音处理系统设计_第3页
简单语音处理系统设计_第4页
简单语音处理系统设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山 东 轻 工 业 学 院课 程 设 计 任 务 书学院 电子信息与控制工程学院 专业 通信工程 姓名 王光龙 班级 通信09-1 学号200902041017题目 简单语音处理系统设计主要内容:在一个正常的听觉过程中,声波从外耳经由中耳到达耳蜗,在那里声信号被转换成电脉冲并传向大脑。大多数的严重听力损伤病例都有耳蜗声电转换功能损坏这一问题存在。人工耳蜗起到了模拟和替代从外耳到内耳的整体听觉功能的作用。语音信号处理器就是人工耳蜗的大脑。了解人工耳蜗中语音信号处理的原理,综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,模拟人工耳蜗中语音信号处理的过程对语音信号进行处理,从而加深对所学知识

2、的理解,建立概念。录制一段语音信号,确定采样频率;画出采样得到信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法(或等波纹最佳逼近法)、双线性变换法或其他设计方法设计一组滤波器,画出滤波器的频率响应;然后用设计的一组滤波器对采集的信号进行滤波,放大(放大倍数由增益确定),检测各路信号时域包络;然后将各路信号通过一定的方式叠加在一起,合成原信号,绘制时域波形,频谱,并进行回放。基本要求(1)掌握数字信号处理的基本概念、基本原理和基本方法;掌握DFT对模拟信号进行频谱分析的方法;确定系统的采样频率;掌握windows环境下进行语音信号采集数据的方法;(2)掌握设计FIR和IIR数字滤波器的

3、方法;FDATool工具的应用;(3)设计出系统模块图,记录仿真结果;(4)对结果进行分析,写出设计报告。主要参考资料1高西全,丁玉美. 数字信号处理(第三版). 西安电子科技大学出版社. 2009.012A.V.奥本海姆,R.W.谢弗. 离散时间数字信号处理.(第二版) . 3胡广书. 数字信号处理. 清华大学出版社.4语音信号处理方面、人工耳蜗方面的参考资料完成期限:自 2012 年 6 月 28 日至 2010 年 7 月 13 日指导教师: 张凯丽 教研室主任: 孙宝江摘 要数字信号处理是一门以算法为核心、理论和实践性较强的学科。是通信工程专业的一门重要的专业基础课。为了巩固所学的数字

4、信号处理理论知识, 理解信号的采集、处理、传输、显示和存储过程以及培养运用专业基础知识,解决实际工程技术问题的能力,本次课程设计要求设计一个基于MATLAB 的语音处理系统以实现对语音信号的滤波。滤波器按频率划分有低通、高通、带通、带阻、全通等类型。经过滤波器处理后,不仅滤除掉了原信号的部分频率分量,原信号的幅度也会有所衰减,通过对滤波前后各波形的比较,能更清楚的发现滤波器能滤除掉阻带内的频率分量而保留通带内的频率分量的作用。在这次设计中采用了双线性变换法和窗函数法两种方法设计滤波器,用这两种方法设计的滤波器又分别采用了高通、低通、带通三种频率特性实现,从横向上和纵向上都可以进行对比,表现出各

5、种滤波器的不同特性。关键词 数字信号处理 滤波器 双线性变换法 窗函数法21目 录1 绪论12 设计目的及要求12.1 课程设计目的12.2 课程设计基本要求13 课程设计的内容23.1 语音信号的采集23.2 语音信号的频谱分析23.3 设计数字滤波器和画出其频率响应23.4 用滤波器对信号进行滤波23.5 比较滤波前后语音信号的波形及频谱23.6 回放语音信号23.7 设计系统界面23.8 运行结果和分析9总 结21参 考 文 献23数字信号处理课程设计1 绪论数字信号处理(digital signal processing,DSP)是从20世纪60年代以来,随着信息学科和计算机学科的高速

6、发展而迅速发展起来的一门新兴学科。它的重要性日益在各个领域的应用中表现出来。简言之,数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用的目的。数字信号处理的应用包括滤波与变换、通信、语音、语言、图像、图形、消费电子、仪器、工业控制与自动化、医疗、军事等。其发展方向也是多方面的,包括数字汇聚、远程会议系统、融合网络、数字图书馆、图像与文本合一的信息检索业务、多媒体通信、个人信息终端等。在本次设计中,就以设计一个数字滤波器系统为目的。2 设计目的及要求2.1 课程设计目的

7、(1) 巩固所学的数字信号处理理论知识, 理解信号的采集、处理、传输、显示和存储过程;(2) 综合运用专业及基础知识,解决实际工程技术问题的能力;(3) 学习资料的收集与整理,学会撰写课程设计报告。2.2 课程设计基本要求(1)录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标, 采用窗函数法和双线性变换设计滤波器, 并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱, 并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后设计一个信号处理系统界面。(2) 利用课余时间去图书馆或

8、上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;3 课程设计的内容3.1 语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1 s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,学生很快理解了采样频率、采样位数等概念。3.2 语音信号的频谱分析首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,从而加深学生对频谱特性的理解。3.3 设计数字滤波器和画出其频率响应给出各滤波器的性能指标:(1)低通滤波器性能指标fb1 000 Hz,fc1 200

9、 Hz,As100 dB,Ap1 dB。(2)高通滤波器性能指标fc4 800 Hz,fb5 000 Hz As100 dB,Ap1 dB。(3)带通滤波器性能指标fb11 200 Hz,fb23 000 Hz,fc11 000 Hz,fc23 200 Hz,As100 dB,Ap1 dB。用窗函数法和双线性变换法设计上面要求的3种滤波器。在Matlab中,可以利用函数fir1设计FIR滤波器,可以利用函数butte,cheby1和ellip设计IIR滤波器;利用Matlab中的函数freqz画出各滤波器的频率响应。3.4 用滤波器对信号进行滤波用自己设计的各滤波器分别对采集的信号进行滤波,在

10、Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。3.5 比较滤波前后语音信号的波形及频谱在一个窗口同时画出滤波前后的波形及频谱。3.6 回放语音信号在Matlab中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bits);可以感觉滤波前后的声音有变化。3.7 设计系统界面为了简化界面的设计过程,在这次课程设计中采用了MATLAB中的工具GUI。其设计过程为:(1)打开GUI窗口:File New GUI Create New GUI Blank GUI(Default) OK(2)控件设计:在控件布局设计

11、区放置十个Push Button控件(3)修改控件属性:选中需要修改属性的控件,双击打开属性查看器(4)保存:设置好各个控件的属性,回到GUI主窗口保存,给文件命名为why,同时why.m文件打开。(5)设置回调函数:在why.m文件窗口中设置回函数。这里,虽然GUI自动生成了回调函数,但是回调函数是空的,需要在why.m文件中对它进行定义说明。该程序只需要对十个Push Button控件的回调函数进行定义说明:function pushbutton1_Callback(hObject, eventdata, handles)x1=wavread('C:Program FilesMat

12、Lab71work1.wav'); %读取原始信号figure(1); %绘制原始信号的波形plot(x1); title('原始信号的时域波形');xlabel('时间轴 n');ylabel('幅值 A');function pushbutton2_Callback(hObject, eventdata, handles)x1=wavread('C:Program FilesMatLab71work1.wav');fs=22052;f=fs*(0:511)/1024;y=fft(x1,1024);figure(2);

13、%绘制原始信号的频谱plot(f,abs(y(1:512);title('原始信号的频谱')function pushbutton3_Callback(hObject, eventdata, handles)x1,fs,bits=wavread('C:Program FilesMatLab71work1.wav');sound(x1,fs); %播放原始语音信号function pushbutton4_Callback(hObject, eventdata, handles)fb=1000;fc=1200;As=100;Ap=1;fs=22050; % IIR低

14、通滤波器x2=wavread('C:Program FilesMatLab71work1.wav');Ts=1/fs;R1=10;wp=2*pi*fb/fs;ws=2*pi*fc/fs;wp1=2/Ts*tan(wp/2);ws1=2/Ts*tan(ws/2); N,Wn=buttord(wp1,ws1,Ap,R1,'s'); Z,P,K=buttap(N); 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*

15、fs/(2*pi),abs(H)xlabel('频率/Hz')ylabel('频率响应幅度')title('IIR低通滤波器')f1=filter(bz,az,x2);figure(2)subplot(2,1,1)plot(x2) title('IIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f1); title('IIR低通滤波器滤波后的时域波形');sound(f1,44100); F0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x

16、2,1024);subplot(2,1,1);plot(f,abs(y2(1:512); title('IIR低通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');subplot(2,1,2)F1=plot(f,abs(F0(1:512); title(' IIR低通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');function pushbutton5_Callback(hObject, eventdata, handles) fs

17、=22050; % IIR高通滤波器x1=wavread('C:Program FilesMatLab71work1.wav');Fs=22050;Ts=1/Fs;R1=50;Wp=2*pi*5000/fs;Ws=2*pi*4800/fs;Rp=1;Rl=100;Wp1=2/Ts*tan(Wp/2); Ws1=2/Ts*tan(Ws/2); N,Wn=cheb2ord(Wp1,Ws1,Rp,Rl,'s'); Z,P,K=cheb2ap(N,Rl); Bap,Aap=zp2tf(Z,P,K);b,a=lp2hp(Bap,Aap,Wn); bz,az=bilinea

18、r(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,x1);figure(2)subplot(2,1,1)plot(x1) title('IIR高通滤波器滤波前的时域波形');subplot(2,1,2)plot(f1); title(' IIR高通滤波器滤波后的时域波形');sound(f1,44100);

19、F0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); title('IIR高通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)plot(f,abs(F0(1:512); title(' IIR高通滤波器滤波后的频谱')xlabel('频率/Hz ');ylabel('幅值');function pushb

20、utton6_Callback(hObject, eventdata, handles) % IIR带通滤波器fb1=1200,fb2=3000,fc1=1000,fc2=3200,As=100;Ap=1;fs=22050;Fs=22050;x1=wavread('C:Program FilesMatLab71work1.wav');Ts=1/fs;R1=30;W1=2*fb1*pi/fs;W2=2*fc1*pi/fs;W3=2*fb2*pi/fs;W4=2*fc2*pi/fs;Wb=W1,W3;Wc=W2,W4;Wb1=2/Ts*tan(Wb/2); Wc1=2/Ts*tan

21、(Wc/2); N,Wn=cheb2ord(Wb1,Wc1,Ap,R1,'s'); Z,P,K=cheb2ap(N,R1); Bap,Aap=zp2tf(Z,P,K);b,a=lp2bp(Bap,Aap,2100*2*pi,1800*2*pi); 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,x

22、1);figure(2)subplot(2,1,1)plot(x1) title('IIR带通滤波器滤波前的时域波形');subplot(2,1,2)plot(f1); title(' IIR带通滤波器滤波前的时域波形');sound(f1,44100); F0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); title('IIR带通滤波器滤波前的频谱')xlabel('频率/Hz ');yla

23、bel('幅值');subplot(2,1,2)plot(f,abs(F0(1:512); title('IIR带通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');function pushbutton7_Callback(hObject, eventdata, handles) %FIR低通滤波器fb=1000;fc=1200;As=100;Ap=1;fs=22050;x1=wavread('C:Program FilesMatLab71work1.wav');wc=2*pi*f

24、c/fs; wn=2*pi*(fc-fb)/fs; N=ceil(As-7.95)/(2.286*wn); beta=0.1102*(As-8.7); Win=Kaiser(N+1,beta); b=fir1(N,wc/pi,'low',Win);figure(1);freqz(b,1,512);title(' FIR低通滤波器');f2=filter(b,1,x1);figure(2)subplot(2,1,1)plot(x1)title('FIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title('

25、;FIR低通滤波器滤波后的时域波形');sound(f2,44100); F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title('FIR低通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');subplot(2,1,2)F2=plot(f,abs(F0(1:512);title(' FIR低通滤波器滤波后的频谱')xlabel('频率/Hz

26、 ');ylabel('幅值'); function pushbutton8_Callback(hObject, eventdata, handles) %FIR高通滤波器fc=4800;fb=5000;As=100;Ap=1;fs=22050;x1=wavread('C:Program FilesMatLab71work1.wav');wc=2*pi*fc/fs; wb=2*pi*fb/fs; wn=wb-wc;N=ceil(As-7.95)/(2.286*wn)+1; beta=0.1102*(As-8.7); Win=Kaiser(N+1,beta

27、); b=fir1(N,(fb+fc)/(2*fs),'high',Win);figure(1);freqz(b,1,512);title(' FIR高通滤波器');f2=filter(b,1,x1);figure(2);subplot(2,1,1)plot(x1)title(' FIR高通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title(' FIR高通滤波器滤波后的时域波形');sound(f2,44100); F0=fft(f2,1024);f=fs*(0:511)/1024;figure(

28、3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title(' FIR高通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');subplot(2,1,2)F2=plot(f,abs(F0(1:512);title(' FIR高通滤波器滤波后的频谱')xlabel('频率/Hz ');ylabel('幅值');function pushbutton9_Callback(hObject, eventdata, ha

29、ndles) %FIR带通滤波器fb1=1200,fb2=3000,fc1=1000,fc2=3200,As=100;Ap=1;fs=22050;x1=wavread('C:Program FilesMatLab71work1.wav');wb1=2*pi*fb1/fs;wb2=2*pi*fb2/fs;wc1=2*pi*fc1/fs;wc2=2*pi*fc2/fs;wc=pi*(fb1+fc1)/fs;wb=pi*(fb2+fc2)/fs;wn=wb-wc;N=ceil(As-7.95)/(2.286*wn)+1;beta=0.1102*(As-8.7); Win=Kaiser

30、(N,beta); b=fir1(N,wc,wb);figure(1);freqz(b,1,512);title(' FIR带通滤波器');f2=filter(b,1,x1);figure(2)subplot(2,1,1)plot(x1)title(' FIR带通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title(' FIR带通滤波器滤波后的时域波形');sound(f2,44100); F0=fft(f2,1024); f=fs*(1:512)/1024; figure(3)y2=fft(x1,1024);su

31、bplot(2,1,1);plot(f,abs(y2(1:512); title(' FIR带通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');subplot(2,1,2)plot(f,abs(F0(1:512); title(' FIR带通滤波器滤波前的频谱')xlabel('频率/Hz ');ylabel('幅值');function pushbutton10_Callback(hObject, eventdata, handles) %结束close;(6)

32、保存修改后的why.m文件,单击GUI主窗口工具栏中的“激活运行”按钮,在GUI界面中按下“原始信号”按键就可以看到原始信号的波形和频谱,并播放原始信号;选择滤波器种类,就可以看到原信号经过滤波器后的信号的波形与频谱,并播放该信号。3.8 运行结果和分析3.8.1 原始信号采样后时域图和频谱图:(1) 原始语音信号时域图:图1(2) 原始语音信号频谱图:图23.8.2 FIR滤波器及信号通过FIR滤波器后的时域、频谱分析:(1)FIR低通滤波器:图3图4图5(2)FIR高通滤波器:图6图7图8(3) FIR带通滤波器:图9图10图113.8.3 IIR滤波器及信号通过IIR滤波器后的时域、频谱分析:(1)IIR低通滤波器:图12图13

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论