基于matlab的数字音效处理器——数字信号处理课设报告_第1页
基于matlab的数字音效处理器——数字信号处理课设报告_第2页
基于matlab的数字音效处理器——数字信号处理课设报告_第3页
基于matlab的数字音效处理器——数字信号处理课设报告_第4页
基于matlab的数字音效处理器——数字信号处理课设报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、实验题目专 业: 通信工程 班 级: 114班 姓 名: XXXXX 学 号: XXXXXXXX 指导教师: XXXXX 一、实验类型 综合研究性实验二、实验目的1掌握采样定理及FFT谱分析的基本原理及其利用Matlab的实现方法;2. 掌握数字滤波器的设计原理和方法;3. 学习用MATLAB编程实现语音数字滤波系统。三、实验要求1. 利用Windows下的录音机设备采集语音信号;2. 对语音信号进行采样并混进加性噪声,作频谱分析;3. 通过频谱分析选择合适的滤波器性能指标,设计合适的数字滤波器,并对含噪音的语音信号进行数字滤波;4. 设计处理系统的用户界面(GUI),在所设计的系统界面上可以

2、选择滤波器的参数,显示滤波器的频率响应,选择信号等。四、数字滤波器的设计原理数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。FIR数字滤波器的单位脉冲响应是有限长序列

3、。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。在对滤波器实际设计时,整个过程的运算量是很大的。设计阶数较高的IIR滤波器时,计算量更大,设计过程中改变参数或滤波器类型时都要重新计算。设计完成后对已设计的滤波器的频率响应要进行校核。要得到幅频、相频响应特性,运算量也是很大的。平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。利用MATLAB强大的计

4、算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。五、实验步骤 1、 语音信号的采集 利用MATLAB编写程序采集。并将程序保存在F盘,命名rzw.wav 信号采集程序如下:clear;close all;Fs=8000;y=wavrecord(5*Fs,Fs,'double');wavwrite(y,'f:rzw');2、 语音信号的读取clear;clc;close all;x,fs,nbits=wavread('f:/rzw',16384); N=length(x);n=0:N-1;X= fft(x); Fs=2*

5、fs; T=1/Fs;f=n/N*Fs; subplot(2,1,1);plot(n,x); ylabel('原声音信号');xlabel('时间/s'); subplot(2,1,2); plot(f,abs(X); ylabel('语音的幅度谱');xlabel('频率/Hz'); 3、 低通滤波器的设计 fp1=1000;fs1=1200; wp1=2*fp1/Fs; ws1=2*fs1/Fs;rp=1;as=100;N1,wp1=ellipord(wp1,ws1,rp,as); B,A=ellip(N1,rp,as,wp1

6、); y1=filter(B,A,x); Y1=abs(fft(y1);figure;freqz(B,A); y1t='y_1(t)'figure;subplot(2,1,1);t=n*T;plot(t,y1);xlabel('t/s');ylabel(y1t);axis(0,t(end),min(y1),1.2*max(y1)subplot(2,1,2);plot(f,abs(fft(y1);4、 高通滤波器的设计 fp2=4800;fs2=5000; wp2=2*fp2/Fs; ws2=2*fs2/Fs; rp=1; as=100; N2,wp2=ellip

7、ord(wp2,ws2,rp,as); B2,A2=ellip(N2,rp,as,wp2,'high'); y2=filter(B2,A2,x); figure; freqz(B2,A2); figure; y2t='y_2(t)' subplot(2,1,1); t=n*T; plot(t,y2); xlabel('t/s');ylabel(y2t); axis(0,t(end),min(y2),1.2*max(y2) subplot(2,1,2); plot(f,abs(fft(y2);5、 带通滤波器的设计fpl=1200;fpu=3000

8、;fsl=1000;fsu=3200;wp3=2*fpl/Fs,2*fpu/Fs;ws3=2*fsl/Fs,2*fsu/Fs;rp=1;as=100; N3,wp3=ellipord(wp3,ws3,rp,as); B3,A3=ellip(N3,rp,as,wp3); y3=filter(B3,A3,x); figure;freqz(B3,A3); y3t='y_3(t)'figure;subplot(2,1,1);t=n*T;plot(t,y3);xlabel('t/s');ylabel(y3t);axis(0,t(end),min(y3),1.2*max(y

9、3)subplot(2,1,2);plot(f,abs(fft(y3); 6、 音频放大figureo=10for xa=1:16384; p(xa,1)=x(xa,1)*xa*o;end subplot(2,1,1); plot(x); xlabel('原始波形') subplot(2,1,2); plot(n/Fs,p); xlabel('变换波形') sound(20*p,fs);7、 音频衰减figureo1=0.9for xa=1:16384;p(xa,1)=x(xa,1)/xa*o1;end subplot(2,1,1); plot(x); xlab

10、el('原始波形') subplot(2,1,2); plot(n/Fs,p); xlabel('变换波形') sound(20*p,fs)8、 音频倒放 figurew1=x(1:2350);w2=x(2351:3850);w3=x(3851:4850);w4=x(4851:5550);w5=x(5551:8550);w6=x(10000:10150);w7=x(10151:12500);w8=x(12501:16384);y=w8;w7;w6;w5;w4;w3;w2;w1;figure;N=length(x);n=0:N-1;X=fft(x); Fs=2*f

11、s; T=1/Fs;f=n/N*Fs; N1=length(y);n1=0:N1-1;Y=fft(y); f1=n1/N1*Fs; subplot(2,2,1);plot(n,x); ylabel('原声音信号');xlabel('时间/s'); subplot(2,2,3);plot(f,abs(X); ylabel('语音的幅度谱');xlabel('频率/Hz');subplot(2,2,2);plot(n1,y); ylabel('倒播之后信号');xlabel('时间/s'); subpl

12、ot(2,2,4);plot(f1,abs(Y); ylabel('倒播之后幅度谱');xlabel('频率/Hz');sound(30*y,fs); 9、声音混频x5,fs5,nbits=wavread('f:a',16384); c=1*x+50*x5;figure;N=length(x);n=0:N-1;X=fft(x); Fs=2*fs; T=1/Fs;f=n/N*Fs; N1=length(c);n1=0:N1-1;Y=fft(c); f1=n1/N1*Fs; subplot(2,2,1);plot(n,x); ylabel('

13、原声音信号');xlabel('时间/s'); subplot(2,2,3);plot(f,abs(X); ylabel('语音的幅度谱');xlabel('频率/Hz');subplot(2,2,2);plot(n1,c); ylabel('混频之后信号');xlabel('时间/s'); subplot(2,2,4);plot(f1,abs(Y); ylabel('混频之后幅度谱');xlabel('频率/Hz');sound(c);10、声音回放figurez=zero

14、s(1000,1);x;%声音延时x1=x;zeros(1000,1);%使原声音长度与延时后相等y1=x1+z;plot(y1);sound(10*y1,fs);11、 变声yy,fs=wavread('f:rzw');p=fft(yy);xaa=p'NN=1600pa=zeros(1,NN),xaa(1:36801),zeros(1,NN);pu=pa'y=3*real(ifft(pu);figure;N=length(yy);n=0:N-1;X=fft(yy); Fs=2*fs; T=1/Fs;f=n/N*Fs; N1=length(y);n1=0:N1-

15、1;Y=fft(y); f1=n1/N1*Fs; subplot(2,2,1);plot(n,yy); ylabel('原声音信号');xlabel('时间/s'); subplot(2,2,3);plot(f,abs(X); ylabel('语音的幅度谱');xlabel('频率/Hz');subplot(2,2,2);plot(n1,y); ylabel('变音之后信号');xlabel('时间/s'); subplot(2,2,4);plot(f1,abs(Y); ylabel('变音

16、之后幅度谱');xlabel('频率/Hz');sound(20*y,fs);六、系统GUI界面的设计1、系统界面设计工具GUI概述在MATLAB中GUI是一中包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MAYLAB将所有GUI支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:包括GUI图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用hsave课保存图形窗口时将

17、生车该文件。M文件包括GUI设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制GUI展开时的各种特征。 GUI创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置GUIDE应用程序的选项来运行GUIDE;第二步:使用界面设计编辑器进行面设计;第三步:编写控件行为响应控制(即回调函数)代码。2、界面设计图示为排版好的界面通过各个按钮来实现不同功能。 3、编写M文件编置好各控件以后,我们就可以来为这些控件编写程序(M-file),鼠标放在所要编写的按键上并右键,单击View Callback中的callback。就会跳到该按键的函数处,在此函数下进行编写。七、实验结果分析本次设计通过选择一个语音信号作为分析的对象,对其进行频谱分析;利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿被噪声干扰的语音信号,并对其进行频谱分析;运用数字信号处理理论设计FIR和IIR数字滤波器, 并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征,回放语音信号。最后,设计一个信号处理系统界面返回。完成了实验要求的任务。但是,也有许多不足。在IIR的高通滤波与FIR的带通和高通滤波时恢复出的信号有失真。经多次修改但最终没有得到解决。八、心得体会本次试验实现对语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。通过比较

温馨提示

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

评论

0/150

提交评论