欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于Matlab的有噪声语音信号处理(共36页)56.pdf

    • 资源ID:75950170       资源大小:4.56MB        全文页数:40页
    • 资源格式: PDF        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Matlab的有噪声语音信号处理(共36页)56.pdf

    1 题目(tm):基于(jy)Matlab的有噪声(zoshng)语音信号处理 2 摘要(zhiyo)滤波器设计在数字(shz)信号处理中占有极其重要的地位,FIR 数字(shz)滤波器和 IIR 滤波器是滤波器设计的重要(zhngyo)组成部分。利用 MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于 MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计 FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计 IIR 数字滤波器,并利用 MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对所设计滤波器的仿真和频率特性分析,可知利用 MATLAB信号处理工具箱可以有效快捷地设计 FIR和 IIR 数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。关键词:数字滤波器 MATLAB 窗函数法 巴特沃斯 切比雪夫 双线性变换 3 目录(ml)1、绪论(xln)4 2、作业内容(nirng)与要求5 3、作业(zuy)设计的具体实现6 3.1 语音信号的采集6 3.2 语音信号的时频分析6 3.3 语音信号加噪与频谱分析8 3.4 设计 FIR 和 IIR数字滤波器9 3.5 用滤波器对加噪语音信号进行滤波20 3.6 比较滤波前后语音信号的波形及频谱21 3.7 回放语音信号31 3.8 设计 GUI界面31 4、队员贡献及民主评价34 5、小结34 6、致谢35 4 1、绪论(xln)数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样(chu yn)、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。数字(shz)滤波器,是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊(tsh)功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,Finite Impulse Response)滤波器和无限冲激响应(IIR,Infinite Impulse Response)滤波器。FIR 滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数 H(z)在处收敛,极点全部在 z=0 处(因果系统),因而只能用较高的阶数达到高的选择性。FIR 数字滤波器的幅频特性精度较之于 IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过 fir滤波器后他们的时间差不变,这是很好的性质。FIR 数字滤波器是有限的单位响应也有利于对数字信号的处理,便 5 于编程,用于计算的时延也小,这对实时的信号处理很重要。FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。IIR 滤波器采用(ciyng)递归型结构,即结构上带有反馈环路。IIR 滤波器运算(yn sun)结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。同时,IIR 数字滤波器在设计(shj)上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个 IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式(gngsh),然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着 MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。2、作业内容与要求 选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用 MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计 FIR 和 IIR 数字滤波器,并对被噪声污染的语音信号进行滤 6 波,分析滤波后信号的时域和频域特征,回放语音信号。最后,设计一个信号处理系统界面。3 作业设计的具体(jt)实现 3.1 语音信号(xnho)的采集 利用(lyng)PC 机上的声卡和 WINDOWS操作系统可以(ky)进行数字信号的采集。将话筒输入计算机 ide语音输入到插口上,启动录音机。按下录音按钮,接着将话筒对着 PC的外放,记录音乐播放器正在播放的音乐,记录一段时间后停止录音。以文件名“speech”保存在一个文件中。可以看但文件后缀名为.wav,这是WINDOWS操作系统规定的声音文件存的标准。3.2 语音信号的时频分析 利用 MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。下面介绍 wavread 函数几种调用格式。(1)y=wavread(file)功能说明:读取 file所规定的 wav文件,返回采样值放在向量 y中。(2)y,fs,nbits=wavread(file)功能说明:采样(ci yn)值放在向量 y中,fs 表示采样(ci yn)频率(hz),nbits 表示(biosh)采样位数。7 接下来,对语音(yyn)信号 speech.wav进行采样。其程序如下:y,fs,nbits=wavered(speech);把语音信号加载入 Matlab 仿真软件平台中 然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB提供了快速傅里叶变换算法 FFT计算 DFT的函数 fft,其调用格式如下:Xk=fft(xn,N);参数 xn 为被变换的时域序列向量,N是 DFT变换区间长度,当 N大于 xn的长度时,fft 函数自动在 xn后面补零。当 N小于 xn 的长度时,fft 函数计算 xn 的前 N个元素,忽略其后面的元素。在本次设计中,我们利用 fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。其程序如下:y,fs,nbits=wavread(F:speech.wav);N=length(y);%求出语音信号长度 Y=fft(y,N);%傅里叶变换 figure;subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(Y);title(原始信号频谱);axes1(position,1 1 1 1);8 程序(chngx)结果如下图:3.3 语音(yyn)信号加噪与频谱分析 在 MATLAB中产生高斯白噪声非常方便,我们(w men)可以直接应用两个函数:一个是 WGN,另一个(y)是 AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。也可直接用 randn 函数产生高斯分布序列。在本次设计中,我们是利用 MATLAB 中的随机函数(rand 或 randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。Randn 函数有两种基本调用格式:Randn(n)和 Randn(m,n),前者产生 nn 服从标准高斯分布的随机数矩阵,后者产生 mn 的随机数矩阵。在这里,我们选用 Randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:y,fs,nbits=wavread(speech);%窗函数(hnsh)带通滤波 9 n=length(y);%求出语音信号(xnho)的长度 noise=0.01*randn(n,2);%随机函数(hnsh)产生噪声 s=y+noise;sound(s);figure;subplot(2,1,1);plot(s);title(加噪语音(yyn)信号的时域波形);S=fft(s);subplot(2,1,2);plot(abs(s);title(加噪语音信号的频域波形);程序结果如下图:3.4 设计(shj)FIR和 IIR 数字(shz)滤波器 10 3.4.1 FIR数字滤波器的设计(shj)与实现 FIR:有限(yuxin)脉冲响应滤波器。有限说明其脉冲响应是有限的。与 IIR相比,它具有线性相位、容易设计的优点。这也就说明,IIR 滤波器具有相位不线性,不容易设计的缺点。而另一方面,IIR 却拥有 FIR 所不具有的缺点,那就是设计同样参数的滤波器,FIR 比 IIR 需要更多的参数。这也就说明,要增加 DSP的计算量。DSP需要更多的计算时间,对 DSP的实时性有影响。FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。通常这个理想的低通滤波器在频域上是一个矩形窗。也就是把这个时域采样序列去乘一个窗函数,就把这个无限的时域采样序列截成了有限个序列值。但是加窗后对此采样序列的频域也产生了影响:此时的频域便不在是一个理想的矩形窗,而是成了一个有过渡带,阻带有波动的低通滤波器。通常根据所加的窗函数的不同,对采样信号加窗后,在频域所得的低通滤波器的阻带衰减也不同。通常我们就是根据此阻带衰减去选择一个合适的窗函数。如矩形窗、汉宁窗、汉明窗、BLACKMAN窗、凯撒窗等。面我们着重介绍用窗函数法设计 FIR滤波器的步骤。如下:(1)根据(gnj)对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度 N。先按照(nzho)阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。11(2)构造希望(xwng)逼近的频率响应函数。(3)计算(j sun)h(n).。(4)加窗得到设计结果。接下来,我们根据语音信号的特点给出有关滤波器的技术指标:低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=50db,Ap=1dB 高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=50dB,Ap=1dB 带通滤波器的性能指标:fp1=1200Hz,fp2=4000Hz,fc1=1000Hz,fc2=3200,As=100dB,Ap=1dB 在 Matlab中,可以利用函数 fir1设计 FIR滤波器,利用 Matlab 中的函数 freqz画出各步步器的频率响应。MATLAB信号处理工具箱函数 cheblap,cheblord和 cheeby1 是切比雪夫 I型滤波器设计函数。我们用到的是 cheeby1 函数,其调用格式如下:B,A=cheby1(N,Rp,wpo,ftypr)B,A=cheby1(N,Rp,wpo,ftypr,s)下面我们将给出设计 FIR 数字滤波器的主要程序和图像%=FIR低通滤波器=Ft=8000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;12 rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=wp ws;mag=1 0;dev=p s;n21,wn21,beta,ftype=kaiserord(fpts,mag,dev);b21=fir1(n21,wn21,kaiser(n21+1,beta);h,w=freqz(b21,1);figure;plot(w*8000*0.5/pi,abs(h);title(FIR 低通滤波器,fontweight,bold);13%=FIR高通滤波器=Ft=8001;Fp=4000;Fs=3500;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=ws wp;mag=0 1;dev=p s;n23,wn23,beta,ftype=kaiserord(fpts,mag,dev);%kaiserord 求阶数截止频率 b23=fir1(n23,wn23,high,Kaiser(n23+1,beta);%由 firl 设计(shj)滤波器 h,w=freqz(b23,1);figure;plot(w*12000*0.5/pi,abs(h);title(FIR 高通滤波器);axis(2500 5500 0 1.2);14%=FIR带通滤波器=Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;15 ws=(wp1*wp2-w.2)/(bw*w);n22,wn22=buttord(wp,ws,1,50,s);%求低通滤波器阶数和截止频率 b22,a22=butter(n22,wn22,s);%求 S 域的频率响应(pn l xin yn)参数 num2,den2=lp2bp(b22,a22,sqrt(wp1*wp*2),bw);%将 S 域低通参数(cnsh)转为带通的 num22,den22=bilinear(num2,den2,0.5);%双线性变换实现(shxin)S 域到 Z 域的转换 h,w=freqz(num22,den22);%根据(gnj)参数求出频率响应 figure;plot(w*8000*0.5/pi,abs(h);axis(0 4000 0 1.5);legend(用 butter 设计);16 3.4.2 IIR数字(shz)滤波器的设计与实现 对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤(bzhu)如下:(1)确定(qudng)所需类型数字滤波器的技术指标。(2)将所需类型数字(shz)滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为=2/T tan(0.5)(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。17(4)设计模拟低通滤波器。(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计 IIR 数字低通滤波器的步骤:(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。(2)将数字(shz)低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。(3)按照模拟(mn)低通滤波器的技术指标设计及过渡模拟低通滤波器。(4)用双线性变换法,模拟滤波器系统(xtng)函数转换成数字低通滤波器系统函数。MATLAB信号处理(xn ho ch l)工具箱函数 cheblap,cheblord 和cheeby1 是切比雪夫 I型滤波器设计函数。我们用到的是 cheeby1 函数,其调用格式如下:B,A=cheby1(N,Rp,wpo,ftypr)B,A=cheby1(N,Rp,wpo,ftypr,s)18 函数 butter,cheby1 和 ellip设计 IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。下面我们将给出 IIR 数字滤波器的主要程序。%=IIR低通滤波器=Fp=1000;Fs=1200;Ft=8000;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Fs*tan(wp/2);n11,wn11=buttord(wp,ws,1,50,s);b11,a11=butter(n11,wn11,s);num11,den11=bilinear(b11,a11,0.5);h,w=freqz(num11,den11);figure;plot(w*8000*0.5/pi,abs(h);legend(用 butter 设计(shj);19%=IIR高通滤波器=Ft=8000;Fp=4000;Fs=3500;w1=tan(pi*Fp/Ft);ws1=tan(pi*Fs/Ft);wp=1;ws=w1*wp/ws1;n13,wn13=cheb1ord(wp,ws,1,50,s);%求模拟(mn)的低通滤波器阶数和截止频率 20 b13,a13=cheby1(n13,1,wn13,s);%求 S 域的频率响应(pn l xin yn)是参数 num,den=lp2hp(b13,a13,wn13);num13,den13=bilinear(num,den,0.5);%利用双线性变换实现(shxin)S 域到Z 域转换 h,w=freqz(num13,den13);figure;plot(w*21000*0.5/pi,abs(h);title(IIR 高通滤波器);legend(用 cheby 1 设计(shj);21%=IIR带通滤波器=Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp1*wp2-w.2)/(bw*w);n12,wn12=buttord(wp,ws,1,50,s);%求低通滤波器阶数和截止频率 b12,a12=butter(n12,wn12,s);%求 S 域的频率响应(pn l xin yn)参数 num2,den2=lp2bp(b12,a12,sqrt(wp1*wp*2),bw);%将 S 域低通参数(cnsh)转为带通的 num12,den12=bilinear(num2,den2,0.5);%双线性变换实现(shxin)S 域到 Z 域的转换 h,w=freqz(num12,den12);%根据(gnj)参数求出频率响应 figure;plot(w*8000*0.5/pi,abs(h);axis(0 4000 0 1.5);legend(用 butter 设计);22 3.5 用滤波器对加噪语音(yyn)信号进行滤波 用自己(zj)设计的各滤波器分别对加噪的语音信号进行滤波,在 Matlab 中,FIR 滤波器利用函数 fftfilt 对信号进行滤波,IIR滤波器利用函数 filter 对信号进行滤波。函数 fftfilt 用的是重叠相加法实现(shxin)线性卷积的计算。调用格式为:y=fftfilter(h,x,M).其中,h 是系统单位冲击响应(xingyng)向量;X 是输入序列向量;y 是系统的输出序列向量;M 是由用户的 23 选择的输入序列的分段长度,缺省时,默认的输入向量的重常度M=512.函数 filter 的调用格式:yn=filter(B,A.xn),它是按照直线型结构实现对 xn 的滤波。其中 xn 是输入(shr)信号向量,yn 输出信号向量。3.6 比较滤波(lb)前后语音信号的波形及频谱 主要程序及运行(ynxng)结果如下:%=双线性变换法低通滤波器=y,fs,nbits=wavread(speech);%双线性低通滤波器 n=length(y);%求出语音信号(xnho)长度 noise=0.01*randn(n,2);%随机函数产生噪声 s=y+noise;%语音信号加入噪声 S=fft(s);%傅里叶变换 Fp=1000;Fs=1200;Ft=8000;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Fs*tan(wp/2);n11,wn11=buttord(wp,ws,1,50,s);b11,a11=butter(n11,wn11,s);num11,den11=bilinear(b11,a11,0.5);z11=filter(num11,den11,s);sound(z11);m11=fft(z11);%求滤波后的信号 24 figure;subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);grid;subplot(2,2,2);plot(abs(m11),r);title(滤波后信号的频谱);grid;subplot(2,2,3);plot(s);title(滤波前的信号波形);grid;subplot(2,2,4);plot(z11);title(滤波后的信号(xnho)波形);25%=双线性变换法高通滤波器=y,fs,nbits=wavread(speech);%双线性高通滤波器 n=length(y);%求出语音信号(xnho)长度 noise=0.01*randn(n,2);%随机函数(hnsh)产生噪声 s=y+noise;%语音信号加入(jir)噪声 S=fft(s);%傅里叶变换 Ft=8000;Fp=4000;Fs=3500;26 w1=tan(pi*Fp/Ft);ws1=tan(pi*Fs/Ft);wp=1;ws=w1*wp/ws1;n13,wn13=cheb1ord(wp,ws,1,50,s);%求模拟(mn)的低通滤波器阶数和截止频率 b13,a13=cheby1(n13,1,wn13,s);%求 S 域的频率响应(pn l xin yn)是参数 num,den=lp2hp(b13,a13,wn13);num13,den13=bilinear(num,den,0.5);z13=filter(num13,den13,s);sound(z13);m13=fft(z13);%求滤波(lb)后的信号 figure;subplot(2,2,1);plot(abs(S),g);title(滤波(lb)前信号的频谱);subplot(2,2,2);plot(abs(m13),r);title(滤波后信号的频谱);subplot(2,2,3);plot(s);title(滤波前的信号波形);subplot(2,2,4);plot(z13);title(滤波后的信号波形);27%=双线性变换法带通滤波器=y,fs,nbits=wavread(speech);%双线性带通滤波器 n=length(y);%求出语音信号(xnho)长度 noise=0.01*randn(n,2);%随机函数产生(chnshng)噪声 s=y+noise;%语音(yyn)信号加入噪声 S=fft(s);%傅里叶变换(binhun)Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp1*wp2-w.2)/(bw*w);n12,wn12=buttord(wp,ws,1,50,s);%求低通滤波器阶数和截止频率 28 b12,a12=butter(n12,wn12,s);%求 S 域的频率响应参数 num2,den2=lp2bp(b12,a12,sqrt(wp1*wp*2),bw);%将 S 域低通参数转为带通的 num12,den12=bilinear(num2,den2,0.5);z12=filter(num12,den12,s);sound(z12);m12=fft(z12);%求滤波后的信号 figure;subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);subplot(2,2,2);plot(abs(m12),r);title(滤波后信号的频谱);subplot(2,2,3);plot(s);title(滤波前的信号波形);subplot(2,2,4);plot(z12);title(滤波后的信号波形);29%=窗函数(hnsh)法低通滤波器=y,fs,nbits=wavread(speech);%窗函数(hnsh)低通 n=length(y);%求出语音(yyn)信号的长度 noise=0.01*randn(n,2);%随机(su j)函数产生噪声 m=y+noise;%语音信号加入噪声 S=fft(m);%傅里叶变换 Ft=8000;Fp=1000;Fs=1200;30 wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=wp ws;mag=1 0;dev=p s;n21,wn21,beta,=kaiserord(fpts,mag,dev);b21=fir1(n21,wn21,kaiser(n21+1,beta);z21=fftfilt(b21,m);sound(z21);m21=fft(z21);%求滤波(lb)后的信号 figure;subplot(2,2,1);plot(abs(S),g);title(滤波(lb)前信号的频谱);subplot(2,2,2);plot(abs(m21),r);title(滤波(lb)后信号的频谱);subplot(2,2,3);plot(m);title(滤波(lb)前信号的波形);subplot(2,2,4);plot(z21);title(滤波后信号的波形);31%=窗函数(hnsh)法高通滤波器=y,fs,nbits=wavread(speech);%窗函数(hnsh)高通滤波 n=length(y);%求出语音(yyn)信号的长度 noise=0.01*randn(n,2);%随机函数产生(chnshng)噪声 m=y+noise;%语音信号加入噪声 S=fft(m);%傅里叶变换 Ft=8001;Fp=4000;Fs=3500;wp=2*Fp/Ft;ws=2*Fs/Ft;32 rp=1;rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=ws wp;mag=0 1;dev=p s;n23,wn23,beta,ftype=kaiserord(fpts,mag,dev);%kaiserord 求阶数截止频率 b23=fir1(n23,wn23,high,Kaiser(n23+1,beta);%由 firl 设计(shj)滤波器 z23=fftfilt(b23,m);sound(z23);m23=fft(z23);%求滤波(lb)后的信号 figure;subplot(2,2,1);plot(abs(S),g);title(滤波(lb)前信号的频谱);subplot(2,2,2);plot(abs(m23),r);title(滤波(lb)后信号的频谱);subplot(2,2,3);plot(m);title(滤波前信号的波形);subplot(2,2,4);plot(z23);title(滤波后信号的波形);33%=窗函数(hnsh)法带通滤波器=y,fs,nbits=wavread(speech);%窗函数(hnsh)带通滤波 n=length(y);%求出语音信号(xnho)的长度 noise=0.01*randn(n,2);%随机函数产生(chnshng)噪声 s=y+noise;%语音信号加入噪声 S=fft(s);%傅里叶变换 Fp1=1200;Fp2=3000;Fs1=1000;34 Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp1*wp2-w.2)/(bw*w);n22,wn22=buttord(wp,ws,1,50,s);%求低通滤波器阶数和截止频率 b22,a22=butter(n22,wn22,s);z22=fftfilt(b22,s);sound(z22);m22=fft(z22);%求滤波(lb)后的信号 figure;subplot(2,2,1);plot(abs(S),g);title(滤波(lb)前信号的频谱);subplot(2,2,2);plot(abs(m22),r);title(滤波(lb)后信号的频谱);subplot(2,2,3);plot(s);title(滤波前信号(xnho)的波形);subplot(2,2,4);plot(z22);title(滤波后信号的波形);35 3.7 回放语音(yyn)信号 经过以上的加噪声处理后,可在 Matlab 中用函数 sound 对声音进行回放。其调用格式:sound(y).可以察觉滤波(lb)前后的声音有明显的变化。3.8 设计(shj)GUI界面(jimin)3.8.1 系统界面设计工具GUI概述 图形用户界面(graphical user interfaces,GUI)则是由窗口、光标、按键(n jin)、菜单、文字说明等对象(objects)构成的一个(y 36)用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些(zhxi)图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。在 MATLAB中 GUI是一中包含多种对象的图形(txng)窗口,并为 GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MAYLAB 将所有GUI支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的 GUI保存在一个 FIG文件中,同时生成 M文件框架。FIG文件:包括 GUI图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用 hsave 课保存图形窗口时将生车该文件。M文件包括GUI设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制 GUI展开时的各种特征。GUI创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置 GUIDE应用程序的选项来运行 GUIDE;第二步:使用界面设计编辑器进行面设计;第三步:编写控件行为响应控制(即回调函数)代码。3.8.2 界面设计及使用说明 首先我们新建一个 GUI文件:File/New/GUI 如下图所示:37 选择(xunz)Blank GUI(Default)。然后添加(tin ji)Push Button 和 Static Text 控件,布局之后,得到如图所示的结果 38 然后双击各个(gg)控件,就可以为控件添加相应的函数(hnsh),实现相应的功能。4、队员贡献(gngxin)及民主评价 5、小结(xioji)这次作业我们利用 Matlab 这一工具对添加噪声后的语音信号进行分析。通过这次作业,我们加深了对滤波器方面知识的理解。用自己设计的各种滤波器对污染信号进行处理,也让我更加清楚的理解了滤波器的滤波特性,比较并找到最合适的滤波器。同时通过这次实践,加深了我们对信号与系统的理解,之前对于采样、混叠以及各种滤波等概念不是很明白,这次通过亲身实践才慢慢明白。还有之前一直不明白傅里叶变换、拉普拉斯变换、z变换等有什 39 么用,以为学了也是白学,但这次彻底改变了我们的观点。从这次作业中,我们深刻的明白了两句话,1:凡事存在即有理;2:实践是检验真理的唯一标准!致谢(zh xi)在信号(xnho)与系统这门课中,感谢赵茗老师(losh)对我们的悉心指导,虽然(surn)有时候课堂到课率并不是很理想,但赵老师依旧不厌其烦,认真负责的讲解着每一个章节,每一个有用的知识点,尽可能的让每一位去上课的同学觉得自己没有白来,尽到了一位好老师的职责,体现了一位好老师的风范!在这里,我们仅向认真负责的赵老师奉上最诚挚的敬意和最衷心的问候!您辛苦了!当然,我们也要一并感谢为我们默默付出的助教,谢谢你们!内容摘要 (1)题目:基于 Matlab 的有噪声语音信号处理 40 摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR 数字滤波器和 IIR滤波器是滤波器设计的重要组成部分(2)IIR滤波器采用递归型结构,即结构上带有反馈环路(3)再对其进行采样,记住采样频率和采样点数(4)MATLAB 提供了快速傅里叶变换算法 FFT计算 DFT的函数 fft,其调用格式如下:Xk=fft(xn,N)(5)plot(abs(s)(6)有限说明其脉冲响应是有限的(7)GUIDE 将设计好的 GUI保存在一个 FIG文件中,同时生成 M 文件框架(8)它是一个二进制文件调用 hsave 课保存图形窗口时将生车该文件(9)第一步:通过设置 GUIDE 应用程序的选项来运行 GUIDE

    注意事项

    本文(基于Matlab的有噪声语音信号处理(共36页)56.pdf)为本站会员(深夜****等你...)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开