收藏 分享(赏)

基于MATLAB有噪声语音信号的处理new.doc

上传人:dzzj200808 文档编号:2245740 上传时间:2018-09-07 格式:DOC 页数:30 大小:551.50KB
下载 相关 举报
基于MATLAB有噪声语音信号的处理new.doc_第1页
第1页 / 共30页
基于MATLAB有噪声语音信号的处理new.doc_第2页
第2页 / 共30页
基于MATLAB有噪声语音信号的处理new.doc_第3页
第3页 / 共30页
基于MATLAB有噪声语音信号的处理new.doc_第4页
第4页 / 共30页
基于MATLAB有噪声语音信号的处理new.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、Matlab 仿真技术作品报告题目:基于 MATLAB 有噪声语音信号处理系 (院): 信息科学技术 专 业: 信息工程 班 级: 信工 09-1 班 学 号: 姓 名: 指导教师: 周小云 学年学期: 2011 2012 学年 第 1 学期2011 年 11 月 18 日设计任务书课题名称 基于 MATLAB 有噪声语音信号的处理设计目的1. 巩固所学的信号处理理论知识, 理解信号的采集、处理、传输、显示和存储过程;2. 综合运用专业及基础知识,解决实际工程技术问题的能力;3. 学习资料的收集与整理,学会撰写报告。实验环境1. 微型电子计算机(PC) ;2. 安装 Windows 2000

2、以上操作系统, MATLAB 等开发工具。任务要求1. 选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用 MATLAB 中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计 FIR 和 IIR 数字滤波器, 并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征,回放语音信号。最后,设计一个信号处理系统界面。2. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;3. 结束后,及时提交作品报告(含纸质稿、电子稿) ,要求格式规范、内容完整、结论正确,正文字数不少于 1500 字

3、(不含代码) 。摘要滤波器设计在数字信号处理中占有极其重要的地位,FIR 数字滤波器和 IIR 滤波器是滤波器设计的重要组成部分。利用 MATLAB 信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于 MATLAB 有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计 FIR 数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计 IIR 数字滤波器,并利用 MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤

4、波器的仿真和频率特性分析,可知利用MATLAB 信号处理工具箱可以有效快捷地设计 FIR 和 IIR 数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。关键词 数字滤波器 MATLAB 窗函数法 巴特沃斯 切比雪夫 双线性变换目录1 绪论 12 作品内容 23 作品的具体实现 23.1 语音信号的采集 23.2 语音信号的时频分析 23.3 语音信号加噪与频谱分析 43.4 设计 FIR 和 IIR 数字滤波器 53.5 用滤波器对加噪语音信号进行滤波 123.6 比较滤波前后语音信号的波形及频谱 123.7 回放语音信号 193.8 设计系统界面 193.9 小结 21结 论 22

5、参考文献 22Matlab 仿真技术作品报告11 绪论数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数

6、字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应 ( IIR,Infinite Impulse Response)滤波器。FIR滤波器结 构 上 主 要 是 非 递 归 结 构 , 没 有 输 出 到 输 入 的 反 馈 , 系 统 函 数H (z)在 处 收 敛 , 极 点 全 部 在 z = 0处 ( 因 果 系 统 ) , 因 而 只 能 用 较 高 的 阶 数 达 到高 的 选 择 性 。 FIR数 字 滤 波 器 的 幅 频 特 性 精 度 较 之 于 IIR

7、数 字 滤 波 器 低 , 但 是 线性 相 位 , 就 是 不 同 频 率 分 量 的 信 号 经 过 fir滤 波 器 后 他 们 的 时 间 差 不 变 , 这 是 很好 的 性 质 。 FIR数 字 滤 波 器 是 有 限 的 单 位 响 应 也 有 利 于 对 数 字 信 号 的 处 理 , 便 于编 程 , 用 于 计 算 的 时 延 也 小 , 这 对 实 时 的 信 号 处 理 很 重 要 。 FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。IIR滤波器 采 用 递 归 型 结 构 , 即 结 构 上 带 有 反 馈 环 路 。

8、 IIR滤 波 器 运 算 结 构通 常 由 延 时 、 乘 以 系 数 和 相 加 等 基 本 运 算 组 成 , 可 以 组 合 成 直 接 型 、 正 准 型 、级 联 型 、 并 联 型 四 种 结 构 形 式 , 都 具 有 反 馈 回 路 。 同 时 , IIR数 字 滤 波 器 在 设计 上 可 以 借 助 成 熟 的 模 拟 滤 波 器 的 成 果 , 如 巴 特 沃 斯 、 契 比 雪 夫 和 椭 圆 滤 波器 等 , 有 现 成 的 设 计 数 据 或 图 表 可 查 , 在 设 计 一 个 IIR数 字 滤 波 器 时 , 我 们 根据 指 标 先 写 出 模 拟 滤 波

9、 器 的 公 式 , 然 后 通 过 一 定 的 变 换 , 将 模 拟 滤 波 器 的 公 式转 换 成 数 字 滤 波 器 的 公 式 。滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着MATLAB 软件及信号处理工具箱的不断完善,MATLAB 很快成为应用学科等领域Matlab 仿真技术作品报告2不可或缺的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。2 作品内容选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用 MATLAB 中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染

10、,并对其进行频谱分析;设计 FIR 和 IIR 数字滤波器, 并对被噪声污染的语音信号进行滤波, 分析滤波后信号的时域和频域特征,回放语音信号;最后,设计一个信号处理系统界面。在所设计的系统界面上可以选择滤波器的类型。3 作品的具体实现3.1 语音信号的采集利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“speech”保存入 g : MATLAB work 中。可以看到,文件存储器的后缀默认

11、为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。3.2 语音信号的时频分析利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。下面介绍Wavread 函数几种调用格式。(1)y=wavread(file)功能说明:读取 file 所规定的 wav 文件,返回采样值放在向量 y 中。(2)y,fs,nbits=wavread(file) 功能说明:采样值放在向量 y 中,fs 表示采样频率(hz) ,nbits 表示采样位数。(3)y=wavread(file,N)功能说明:读取钱 N 点的采样值放在向

12、量 y 中。(4)y=wavread(file,N1,N2)Matlab 仿真技术作品报告3功能说明:读取从 N1 到 N2 点的采样值放在向量 y 中。接下来,对语音信号 OriSound.wav 进行采样。其程序如下: y,fs,nbits=waveread (OriSound); %把语音信号加载入 Matlab 仿真软件平台中然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB 提供了快速傅里叶变换算法 FFT 计算 DFT 的函数 fft,其调用格式如下:Xk=fft(xn,N)参数 xn 为被变换的时域序列向量,N 是 DFT 变换区间长度,当 N 大于 xn 的长

13、度时,fft 函数自动在 xn 后面补零。 ,当 N 小于 xn 的长度时,fft 函数计算 xn 的前 N 个元素,忽略其后面的元素。在本次设计中,我们利用 fft 对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。其程序如下:y,fs,nbits=wavread (OriSound);sound(y,fs,nbits); %回放语音信号N= length (y) ; %求出语音信号的长度Y=fft(y,N); %傅里叶变换subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(Y);title(原始信号频谱)程序结果如

14、下图:Matlab 仿真技术作品报告4图1 原始信号波形及频谱3.3 语音信号加噪与频谱分析MATLAB 中产生高斯白噪声非常方便,有两个产生高斯白噪声的两个函数 。我们可以直接应用两个函数:一个是 WGN,另一个是 AWGN。WGN 用于产生高斯白噪声,AWGN 则用于在某一信号中加入高斯白噪声。也可直接用 randn 函数产生高斯分布序列。在本次课程设计中,我们是利用 MATLAB 中的随机函数 (rand 或 randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。Randn 函数有两种基本调用格式:Randn(n) 和 Randn(m,n),前者产生 nn 服从标准高

15、斯分布的随机数矩阵,后者产生 mn 的随机数矩阵。在这里,我们选用 Randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:y,fs,nbits=wavread (OriSound);N = length (y) ; %求出语音信号的长度Noise=0.01*randn(n,2); %随机函数产生噪声Si=y+Noise; %语音信号加入噪声 sound(Si);subplot(2,1,1);plot(Si);title(加噪语音信号的时域波形 );S=fft(Si); %傅里叶变换subplot(2,1,2);Matlab 仿真技术作品报告5plot(abs(S); title

16、(加噪语音信号的频域波形);程序结果如下图:图2 加噪后的波形及频谱分析3.4 设计 FIR 和 IIR 数字滤波器IIR 滤波器和 FIR 滤波器的设计方法完全不同。IIR 滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数 H(s) ,然后将 H( s)按某种方法转换成数字滤波器的系统函数 H(z)。FIR 滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用 FIR 滤波器。对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一

17、个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:(1)确定所需类型数字滤波器的技术指标。(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为 =2/T tan(0.5)(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。(4)设计模拟低通滤波器。(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。Matlab 仿真技术作品报告6(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特

18、性。为了克服之一缺点,可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计 IIR 数字低通滤波器的步骤:(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。如前所述,IIR 滤波器和 FIR 滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计 FIR 滤波器的步骤。如下:(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、

19、汉宁窗、哈明窗、凯塞窗等) ,并估计窗口长度 N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。(3)计算 h(n).。(4)加窗得到设计结果。接下来,我们根据语音信号的特点给出有关滤波器的技术指标:低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=100dB ,Ap=1dB ;带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,A

20、p=1dB在 Matlab 中,可以利用函数 fir1 设计 FIR 滤波器,利用函数 butter,cheby1 和ellip 设计 IIR 滤波器,利用 Matlab 中的函数 freqz 画出各步步器的频率响应。hn=fir1(M,wc,window),可以指定窗函数向量 window。如果缺省 windowMatlab 仿真技术作品报告7参数,则 fir1 默认为哈明窗。其中可选的窗函数有 Rectangular Barlrtt Hamming Hann Blackman 窗,其相应的都有实现函数。MATLAB 信号处理工具箱函数 buttp buttor butter 是巴特沃斯滤波

21、器设计函数,其有 5 种调用格式,本课程设计中用到的是N,wc=butter(N,wc,Rp,As,s),该格式用于计算巴特沃斯模拟滤波器的阶数 N 和 3dB 截止频率 wc。MATLAB 信号处理工具箱函数 cheblap,cheblord 和 cheeby1 是切比雪夫 I 型滤波器设计函数。我们用到的是 cheeby1 函数,其调用格式如下:B,A=cheby1(N,Rp,wpo,ftypr)B,A=cheby1(N,Rp,wpo,ftypr,s)函数 butter,cheby1 和 ellip 设计 IIR 滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即

22、可。下面我们将给出 FIR 和 IIR 数字滤波器的主要程序。%=IIR 低通滤波器=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); %求 S 域的频率响应的参数 num11,den11=bilinear(b11,a11,0.5); %双线性变换实现 S 域到 Z 域的变换 h,w=freqz(num11,den11); %根据参数求出频率响应plot(w*8000*

23、0.5/pi,abs(h);legend(用 butter 设计);Matlab 仿真技术作品报告8图 3 IIR 低通滤波器%=IIR 带通=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 域的频率响应

24、参数num2,den2=lp2bp(b12,a12,sqrt(wp1*wp2),bw);%将 S 域低通参数转为带通的num12,den12=bilinear(num2,den2,0.5);%双线性变换实现 S 域到 Z 域的转换h,w=freqz(num12,den12); %根据参数求出频率响应plot(w*8000*0.5/pi,abs(h);axis(0 4000 0 1.5);legend(用 butter 设计);Matlab 仿真技术作品报告9图 4 IIR 带通滤波器%=IIR 高通=Ft=8000;Fp=4000;Fs=3500;wp1=tan(pi*Fp/Ft); %高通到

25、低通滤波器参数转换ws1=tan(pi*Fs/Ft);wp=1;ws=wp1*wp/ws1;n13,wn13=cheb1ord(wp,ws,1,50,s); %求模拟的低通滤波器阶数和截止频率b13,a13=cheby1(n13,1,wn13,s); %求 S 域的频率响应的参数num,den=lp2hp(b13,a13,wn13); %将 S 域低通参数转为高通的num13,den13=bilinear(num,den,0.5); %利用双线性变换实现 S 域到 Z 域转换h,w=freqz(num13,den13);plot(w*21000*0.5/pi,abs(h);title(IIR

26、高通滤波器);legend(用 cheby1 设计);Matlab 仿真技术作品报告10图 5 IIR 高通滤波器%*FIR 低通滤波器*% 用窗函数设计低通滤波器的程序如下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,ftype=kaiserord(fpts,mag,dev);%kaiserord 求阶数截止频率b21=fir1(n21,wn21,Kaiser(n21+1,beta); %由 fir1 设计滤波器h,w=freqz(b21,1); %得到频率响

27、应plot(w/pi,abs(h);title(FIR 低通滤波器);Matlab 仿真技术作品报告11图 6 FIR 低通滤波器%*FIR 带通滤波器*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=(wp*wp2-w.2)/(bw*w);n22,wn22=buttord(wp,ws,1,50,s); %求低通滤波器阶数和截止频率b22,a22=butter(n22,wn22,s); %求 S

28、域的频率响应的参数num2,den2=lp2bp(b22,a22,sqrt(wp1*wp2),bw); %将 S 域低通参数转为带通的num22,den22=bilinear(num2,den2,0.5);%双线性变换实现 S 域到 Z 域的转换h,w=freqz(num22,den22); %根据参数求出频率响应plot(w*8000*0.5/pi,abs(h);axis(0 4000 0 1.5);legend(用 butter 设计);Matlab 仿真技术作品报告12图 7 FIR 带通滤波器%*%FIR 高通滤波器 *p=1-10.(-rp/20); %通带阻带波纹s=10.(-rs

29、/20);fpts=ws wp;mag=0 1;dev=p s;n23,wn23,beta,ftype=kaiserord(fpts,mag,dev);b23=fir1(n23,wn23,high,Kaiser(n23+1,beta); %由 fir1 设计滤波器h,w=freqz(b23,1); %得到频率响应plot(w*12000*0.5/pi,abs(h);title(FIR 高通滤波器);axis(3000 6000 0 1.2);Matlab 仿真技术作品报告13图 8 FIR 高通滤波器3.5 用滤波器对加噪语音信号进行滤波用自己设计的各滤波器分别对加噪的语音信号进行滤波,在 M

30、atlab 中,FIR滤波器利用函数 fftfilt 对信号进行滤波,IIR 滤波器利用函数 filter 对信号进行滤波。函数 fftfilt 用的是重叠相加法实现线性卷积的计算。调用格式为:y=fftfilter(h,x,M)。其中, h 是系统单位冲击响应向量;x 是输入序列向量;y 是系统的输出序列向量;M 是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度 M=512。函数 filter 的调用格式:yn=filter(B,A.xn),它是按照直线型结构实现对 xn 的滤波。其中 xn 是输入信号向量,yn 输出信号向量。3.6 比较滤波前后语音信号的波形及频谱% =双

31、线性变换法=%*低通滤波器*y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换z11=filter(num11,den11,s);Matlab 仿真技术作品报告14sound(z11);m11=fft(z11); %求滤波后的信号subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);grid;subplot(2,2,2);plot(abs(m11),r);titl

32、e(滤波后信号的频谱);grid;subplot(2,2,3);plot(s);title(滤波前信号的波形);grid;subplot(2,2,4);plot(z11);title(滤波后的信号波形);图 9 双线性法低通滤波%*带通滤波器*y,fs,nbits=wavread (speech);Matlab 仿真技术作品报告15n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换z12=filter(num12,den12,s);sound(z12);m

33、12=fft(z12); %求滤波后的信号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(滤波后的信号波形);图 10 双线性法带通滤波%*高通滤波器*Matlab 仿真技术作品报告16y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.01*r

34、andn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换z13=filter(num13,den13,s);sound(z13);m13=fft(z13); %求滤波后的信号subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);subplot(2,2,2);plot(abs(m13),r);title(滤波后信号的频谱);subplot(2,2,3);plot(s); title(滤波前信号的波形);subplot(2,2,4);plot(z13);title(滤波后的信号波形);图11 双线性法高通

35、滤波Matlab 仿真技术作品报告17%=窗函数法=%*低通滤波器*y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声 S=fft(s); %傅里叶变换z21=fftfilt(b21,s);sound(z21);m21=fft(z21); %求滤波后的信号subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);subplot(2,2,2);plot(abs(m21),r); title(滤波后信号

36、的频谱);subplot(2,2,3);plot(s); title(滤波前信号的波形 );subplot(2,2,4);plot(z21); title(滤波后的信号波形);图12 窗函数法低通滤波Matlab 仿真技术作品报告18%*带通滤波器*y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声 S=fft(s); %傅里叶变换z22=fftfilt(b22,s);sound(z22);m22=fft(z22); %求滤波后的信

37、号subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);subplot(2,2,2);plot(abs(m22),r);title(滤波后信号的频谱);subplot(2,2,3);plot(s);title(滤波前信号的波形);subplot(2,2,4);plot(z22);title(滤波后的信号波形);Matlab 仿真技术作品报告19图13 窗函数法带通滤波%*高通滤波器*y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声s

38、=y+noise; %语音信号加入噪声 S=fft(s); %傅里叶变换z23=fftfilt(b23,s);sound(z23);m23=fft(z23); %求滤波后的信号subplot(2,2,1);plot(abs(S),g);subplot(2,2,2);plot(abs(m23),r);title(滤波后信号的频谱);subplot(2,2,3);plot(s);title(滤波前信号的波形);subplot(2,2,4);plot(z23);title(滤波后的信号波形);Matlab 仿真技术作品报告20图14 窗函数法高通滤波3.7 回放语音信号经过以上的加噪声处理后,可在

39、Matlab 中用函数 sound 对声音进行回放。其调用格式:sound(y,Fs),sound(y)和 sound(y,Fs,bits)。可以察觉滤波前后的声音有明显的变化。3.8 设计系统界面3.8.1 系统界面设计工具GUI 概述图形用户界面(graphical user interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。在 MATLAB 中 GUI 是一中包含多种对象的图形窗口,并为 GUI开发提供一个方便高效的集

40、成开发环境 GUIDE。GUIDE 主要是一个界面设计工具集,MAYLAB 将所有 GUI 支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE 将设计好的 GUI 保存在一个 FIG 文件中,同时生成 M 文件框架。FIG 文件:包括 GUI 图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用 hsave 课保存图形窗口时将生车该文件。 M 文件包括 GUI 设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制 GUI 展开时的各种特征。 GUI 创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置 GUI

41、DE 应用程序的选项来运行 GUIDE;第二步:使用界面设计编辑器进行面设计;第三步:编写控件行为响应控制(即回调函数)代码。3.8.2 界面设计及使用说明首先我们新建一个 GUI 文件:File/New/GUI 如下图所示:Matlab 仿真技术作品报告21图 15 GUI 创建界面选择 Blank GUI(Default)。其次,进入 GUI 开发环境以后添加两个编辑文本框, 6 个静态文本框,和一个按钮,布置如下图所示;图 16 GUI 开发环境Matlab 仿真技术作品报告22布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。最后,使用说明。单击相应的按钮,便跳出

42、对应的界面,如按下按钮“低通滤波器” ,就得到如图所示结果。图 17 系统运行界面3.9 小结本设计圆满的完成了对加噪声语音信号的读取与打开,与课题的要求十分相符;也较好的完成了对原始语音信号和加噪声后的语音信号的频谱分析,通过 fft 变换,得出了语音信号的频谱图;在滤波这一部分,课题主要是从巴特沃斯滤波器入手来设计滤波器等入手,实现了预期的滤波效果;完成了界面的设计,但也存在许多的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形图,界面没有用到其它的一些控件,如列表框、下拉菜单等等,GUI 的界面设计功能没能得到充分的发挥。Matlab 仿真技术作品报告23结 论语音信号处理是

43、语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量” 来看待。也就是说,课题更多的还是体现了数字信号处理技术。从课题的中心来看,课题“基于 MATLAB 的有噪声语音信号处理 ”是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音及加噪处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。这一过程的实现,用到了处理数字信号的强有力工具 MATLAB。通过 MATLAB 里几个命令函数的调用,很轻易的在实际语音与数字信号的理论之间搭了一座桥。课题的特色在于它将语音信号看作一个向量,于是就把语音数字化了。那么,就可以完全利用数字信号处理的知识来解决语音及加噪处理问题。我们可以像给一般信号做频谱分析一样,来对语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。通过比较加噪前后,语音的频谱和语音回放,能明显的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同,前者随较尖锐的干扰啸叫声。从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整个频域范围内分是布均匀。其实,这正是干扰所造成的。通过滤波前后的对比,低通滤波后效果最好,高通滤波后的效果最差。由此可见,语音信号主要分布在低频段,而噪声主要分布在高频段。最后,还

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报