基于MATLAB的加噪语音信号的滤波.docx_第1页
基于MATLAB的加噪语音信号的滤波.docx_第2页
基于MATLAB的加噪语音信号的滤波.docx_第3页
基于MATLAB的加噪语音信号的滤波.docx_第4页
基于MATLAB的加噪语音信号的滤波.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

计算机仿真技术 基于MATLAB的加噪语音信号的滤波学生姓名: 专 业: 电子信息工程 班 级: 学 号: 指导教师: 完成时间: 2017年12月 一滤波器的简述在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方 法即实现方法,并进行图形用户界面设计,以显示所介绍迷你滤波器的设计特性。 在无线脉冲响应(IIR)数字滤波器设计中,先进行模拟滤波器的设计,然后进行模拟-数字滤波器转换,即采用脉冲响应不变法及双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换。在有限脉冲响应(FIR)数字滤波器设计中,讨论了FIR线性相位滤波的特点和用窗口函数设计FIR数字滤波器两个问题。两类滤波器整个过程都是按照理论分析、编程设计、集体实现的步骤进行的。 为方便分析直观者直观、形象、方便的分析滤波器的特性,创新的设计出图形用户界面-滤波器分析系统。整个系统分为两个界面,其内容主要包括四个部分:System(系统)、Analysis(分析)、Tool(工具)、Help(帮助)。数字滤波在DSP中占有重要地位。数字滤波器按实现的网络结构或者从单位脉冲响应,分为IIR(无限脉冲响应)和FIR(有限脉冲响应)滤波器。如果IRR滤波器和FIR滤波器具有相同的性能,那么通常IIR滤波器可以用较低的阶数获得高的选择性,执行速度更快,所有的存储单元更少,所以既经济又高效。二设计要求1.在matlab平台上录制一段语音信号;2.完成语音信号的谱分析;3.对语音信号进行加噪以及加噪后信号的谱分析;4.选择合适的滤波器进行滤波,确定相关指标;5.实现滤波过程,显示滤波后的结果,并进行谱分析。三实验内容与步骤1、 语音信号的录入打开matlab平台,先使用R=audiorecorder(44100,16,2)函数创建一个保存音频信息的对象,其中44100表示采样频率为44100Hz,16表示用16位存储,2表示两通道。再使用record(R)开始录音,对着电脑麦克风采集声音,录入的音频内容为“MATLAB的课程大作业”。stop(R)语句停止录入。然后将音频信息以数字矩阵存储。最后使用wavwrite函数保存这段音频。原始语音R=audiorecorder(44100,16,2);record(R);stop(R);myword=getaudiodata(R);plot(myspeech)wavwrite(myspeech,44100,16,myword);程序图波形图: 由输出的波形图可以看出,当采集“MATLAB的课程大作业”这句音频信息时,波动明显,但受到环境的影响其他地方也有轻微的波动。2、 语音信号的谱分析wavread读取存储在电脑中的音频。suond函数回放语音信号,fft(y,n)则是对n点进行傅里叶变换,实现从时域到频域。然后用plot函数画出语音信号的时域波形和频域波形图。 y,fs,bits=wavread(D:Matalbe123binsouds.wav); sound(y,fs);n=length(y);y_f=fft(y,n);f=fs*(0:n/2-1)/n;subplot 211;plot(y);xlabel(时间s);ylabel(幅值 );title(加噪前的时域波形);subplot 212;plot(f,abs(y_f(1:n/2);xlabel(频率Hz);ylabel(频率幅值);title(加噪前的频谱图);程序图:时域波形与频谱图如下:由时域波形图可以看出声音信号主要集中在了2.5s5.0s之间,在其他时间内只是有少量的波动。由频域波形图可以看出该声音信号的频率与人的发声频率相符合。3、 语音加噪及谱分析对原始的语音信号进行加噪处理,使用randn函数产生一个与音频信号等长度的高斯随机噪声信号(噪声大小取决于随机函数的幅度倍数)。然后通过信号的叠加y_z=y+noise;,生成一个新的信号。再通过傅里叶变换得到信号在频域上的波形,最后画出时域与频域波形。L=length(y);noise=0.1*randn(L,2);y_z=y+noise;sound(y_z,fs);n=length(y);y_zf=fft(y_z,n);f=fs*(0:n/2-1)/n;subplot 211;plot(y_z);xlabel(时间s);ylabel(幅值);title(加噪后的时域波形);subplot 212;plot(f,abs(y_zf(1:n/2);xlabel(频率Hz);ylabel(频率幅值);title(加噪后的频谱图);程序图:波形图如下: 当执行上述程序时,会听到嘈杂的声音层,且频率高于原始语音很多,由加噪后的频谱图与加噪前的频谱图相对比会明显发现在原时间内多了很多频率变化,观察到的频谱图变化与我们的目的是一致的,加噪成功。4、 滤波设计由于噪声信号的频率高于原语音信号的频率,所以选择FIR低通滤波器。在数字信号处理中,脉冲响应不变法会产生频谱混叠现象,使频率响应偏离模拟滤波器的频响特性,为避免这一现象我们采用双线性变换法。经尝试fp=1000;fc=1200;As=100;Ap=1;fp=1100;fc=1300;As=100;Ap=1; fp=1300;fc=1500;As=100;Ap=1;fp=1400;fc=1600;As=100;Ap=1;fp=1500;fc=1700;As=100;Ap=1;中效果最好的一组为:fp=1300;fc=1500;As=100;Ap=1;因此设计如下:fp=1300;fc=1500;As=100;Ap=1; wc=2*pi*fc/fs;wp=2*pi*fp/fs;wdel=wc-wp;beta=0.112*(As-8.7);N=ceil(As-8)/2.285/wdel);wn= kaiser(N+1,beta);ws=(wp+wc)/2/pi;b=fir1(N,ws,wn);freqz(b,1);程序图:滤波器频率特性如图 5、 滤波结果及谱分析将加噪后音频通过此滤波器进行滤波,再进行滤波后去噪信号的谱分析,选用了函数x=fftfilt(b,y_z),利用FFT的重叠相加法对信号进行滤波处理。滤波程序清单如下:x=fftfilt(b,y_z); X=fft(x,n);subplot 211;plot(f,abs(X(1:n/2);title(滤波后的频谱); subplot 212;plot(x); title(滤波后的波形);sound(x,fs,bits)程序图:去噪后的谱分析如下所示:执行程序后听到的音频依旧含有噪音信号,不如原始语音清晰,但比加噪后的语音有了明显的改进,可以比较清晰的听到原语音。由谱分析图可以看出频率高于1500Hz的音频信号都被滤除了,开始有点接近原始信号的波形图.。四语音信号图原始语音加噪后减噪后5 实验总结与体会这次是用Matlab对语音信号的处理进行了一系列的操作。在Matlab平台上实现了语音的录制、加噪、滤波以及谱分析。比较加噪后的频谱可以发现高于1500Hz的噪音已经滤除,通过声音的回放也可以发现去除了比较尖锐的干扰噪音。由于设计的滤波器程序功能单一,仅能处理一般条件下的语音信号,不能进行精度较高的语音信号处理。Matlab是英文Matrix Laboratory(矩阵实验室)的缩写,它是由美国Math Word公司推出的用于图形处理和数值计算的数学计算。在Matlab环境下,用户可以集成的进行程序设

温馨提示

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

最新文档

评论

0/150

提交评论