毕业设计数字信号处理基于 matlab 的语音去噪处理.docx

上传人:b****5 文档编号:3026412 上传时间:2022-11-17 格式:DOCX 页数:11 大小:532.91KB
下载 相关 举报
毕业设计数字信号处理基于 matlab 的语音去噪处理.docx_第1页
第1页 / 共11页
毕业设计数字信号处理基于 matlab 的语音去噪处理.docx_第2页
第2页 / 共11页
毕业设计数字信号处理基于 matlab 的语音去噪处理.docx_第3页
第3页 / 共11页
毕业设计数字信号处理基于 matlab 的语音去噪处理.docx_第4页
第4页 / 共11页
毕业设计数字信号处理基于 matlab 的语音去噪处理.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

毕业设计数字信号处理基于 matlab 的语音去噪处理.docx

《毕业设计数字信号处理基于 matlab 的语音去噪处理.docx》由会员分享,可在线阅读,更多相关《毕业设计数字信号处理基于 matlab 的语音去噪处理.docx(11页珍藏版)》请在冰豆网上搜索。

毕业设计数字信号处理基于 matlab 的语音去噪处理.docx

毕业设计数字信号处理基于matlab的语音去噪处理

 

数字信号处理

课程设计

 

课程名称

数字信号处理

题目名称

基于MATLAB的语音去噪处理

专业班级

13级通信工程本一

学生姓名

学号

指导教师

 

二○一五年十二月二十七日

 

引言

滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。

利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。

课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。

通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。

在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。

通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。

 

关键词数字滤波器MATLAB窗函数法巴特沃斯切比雪夫双线性变换

 

 

目录

1绪论1

2课程设计内容2

3课程设计的具体实现2

3.1语音信号的采集4

3.2语音信号的时频分析4

3.3语音信号加噪与频谱分析6

3.4利用双线性变换法设计低通滤波器8

3.5用滤波器对加噪语音信号进行滤波9

3.6分析滤波前后语音信号波形及频谱的变化10

3.7回放语音信号10

3.8小结11

结论22

致谢23

参考文献24

1绪论

数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。

具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。

数字滤波器,是数字信号处理中及其重要的一部分。

随着信息时代和数字技术的发展,受到人们越来越多的重视。

数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。

数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。

FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H(z)在处收敛,极点全部在z=0处(因果系统),因而只能用较高的阶数达到高的选择性。

FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。

FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。

IIR滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。

随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。

它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。

2课程设计内容

录制一段自己的语音信号(可以录制含有噪音的信号,或者录制语音后再加进噪音信号),

要求:

(1)对语音信号进行采样;

(2)画出采样后语音信号的时域波形和频谱图;

(3)设计一个合适的滤波器,并画出滤波器的频率响应曲线;

(4)用设计的滤波器对语音信号进行滤波,画出滤波后信号的时域波形和频谱图;

(5)对滤波前后的信号进行对比,分析信号的变化;

(6)回放语音信号。

3课程设计的具体实现

3.1语音信号的采集

利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。

将话筒输入计算机的语音输入插口上,启动录音机。

按下录音按钮,接着对话筒说一段话,说完后停止录音,屏幕左侧将显示所录声音的长度。

点击放音按钮,可以实现所录音的重现。

以文件名“speech”保存入D:

\MATLAB\work中。

可以看到,文件存储器的后缀默认为.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点的采样值放在向量y中。

(4)y=wavread(file,[N1,N2])

功能说明:

读取从N1到N2点的采样值放在向量y中。

接下来,对语音信号speech.wav进行采样。

其程序如下:

>>[y,fs,nbits]=wavered(‘speech.wav’);%把语音信号加载入Matlab仿真软件平台中。

然后,画出语音信号的时域波形,再对语音信号进行频谱分析。

MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:

Xk=fft(xn,N)

参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。

,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。

其程序如下:

[y,fs,bits]=wavread('speech.wav');

%sound(y,fs,bits);

Y=fft(y,40000);%采样点数

subplot(211);plot(y);title('原始信号波形');

subplot(212);plot(abs(Y));title('原始信号频谱');

程序运行如下:

3.3语音信号加噪与频谱分析

在原始信号中加入高频噪音,其具体的程序如下:

fc=20000;%载波频率

y1=modulate(y,fc,fs,'fm');%对原语音信号调制

Y1=fft(y1,40000);%采样点数

40000

figure

(2);

subplot(211);plot(y1);title('调制后信号波形');

subplot(212);plot(abs(Y1));title('调制后信号频谱');

%sound(y1);

对原信号进行调制得到的波形和频谱图如下:

接着对调制后的信号加入原始信号,其程序为:

%调制信号+原始信号波形

y2=y+y1;

Y2=fft(y2,40000);%采样点数

40000

figure(3)

subplot(211);plot(y2);title('调制信号+原始信号波形');

subplot(212);plot(abs(Y2));title('调制信号+原始信号频谱');

%sound(y2);

 

得到的图形为:

;

3.4利用双线性变换法设计低通滤波器

用双线性变换法设计低通滤波器程序如下所示:

figure(4);

%用双线性变换法设计的低通滤波器

fp=1000;fc=1200;As=100;Ap=1;fs1=22050;

wc=2*fc/fs1;wp=2*fp/fs1;

[n,wn]=ellipord(wp,wc,Ap,As);

[b,a]=ellip(n,Ap,As,wn);

freqz(b,a,512,fs1);

x=filter(b,a,y2);%对要进行低通滤波

X=fft(x,40000);

运行结果如图:

3.5用滤波器对加噪语音信号进行滤波

利用设计的低通滤波器对信号进行滤波,程序如下:

figure(5);

subplot(211);plot(x);title('低通滤波后信号波形');

subplot(212);plot(abs(X));title('低通滤波后信号频谱');

sound(x,40000)

运行结果如下图:

 

3.6分析滤波前后语音信号波形及频谱的变化

通过比较加噪前后,语音的频谱和语音回放,能明显的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同,前者随较尖锐的干扰啸叫声。

从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整个频域范围内分是布均匀。

其实,这正是干扰所造成的。

通过滤波前后的对比,低通滤波后效果最好,高通滤波后的效果最差。

由此可见,语音信号主要分布在低频段,而噪声主要分布在高频段。

 

3.7回放语音信号

经过以上的加噪声处理后,可在Matlab中用函数sound对声音进行回放。

其调用格式:

sound(y,Fs),sound(y)和sound(y,Fs,bits)。

可以察觉滤波前后的声音有明显的变化。

3.8小结

本设计圆满的完成了对加噪声语音信号的读取与打开,与课题的要求十分相符;也较好的完成了对原始语音信号和加噪声后的语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一部分,课题主要是从双线性变换法入手来设计滤波器等入手,实现了预期的滤波效果;完成了界面的设计,但也存在许多的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形图,界面没有用到其它的一些控件,如列表框、下拉菜单等等。

结论

语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。

也就是说,课题更多的还是体现了数字信号处理技术。

从课题的中心来看,课题“基于MATLAB的有噪声语音信号处理”是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音及加噪处理。

作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。

这一过程的实现,用到了处理数字信号的强有力工具MATLAB。

通过MATLAB里几个命令函数的调用,很轻易的在实际语音与数字信号的理论之间搭了一座桥。

课题的特色在于它将语音信号看作一个向量,于是就把语音数字化了。

那么,就可以完全利用数字信号处理的知识来解决语音及加噪处理问题。

我们可以像给一般信号做频谱分析一样,来对语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。

通过比较加噪前后,语音的频谱和语音回放,能明显的感

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1