滤波器语音信号去噪Word文档格式.docx

上传人:b****8 文档编号:22491672 上传时间:2023-02-04 格式:DOCX 页数:21 大小:285.29KB
下载 相关 举报
滤波器语音信号去噪Word文档格式.docx_第1页
第1页 / 共21页
滤波器语音信号去噪Word文档格式.docx_第2页
第2页 / 共21页
滤波器语音信号去噪Word文档格式.docx_第3页
第3页 / 共21页
滤波器语音信号去噪Word文档格式.docx_第4页
第4页 / 共21页
滤波器语音信号去噪Word文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

滤波器语音信号去噪Word文档格式.docx

《滤波器语音信号去噪Word文档格式.docx》由会员分享,可在线阅读,更多相关《滤波器语音信号去噪Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

滤波器语音信号去噪Word文档格式.docx

那么什么是语音?

语音是人类特有的功能,也是人类获取外界信息的重要工具,也是人与人交流必不可少的重要手段。

那么什么又是信号?

那信号是什么呢?

信号是传递信息的函数。

离散时间信号——序列——可以用图形来表示。

语音信号处理是一门用研究数字信号处理研究信号的科学。

它是一新兴的信息科学,同时又是综合多个学科领域的一门交叉科学。

语音在我们的日常生活中随时可见,也随处可见,语音很大程度上可以影响我们的生活。

所以研究语音信号无论是在科学领域上还是日常生活中都有其广泛而重要的意义。

本论文主要介绍的是的语音信号的简单处理。

本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.0环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。

我所做的工作就是在matlab7.0软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单语音信号处理的目的。

对语音信号的研究,本论文采用了设计两种滤波器的基本研究方法来达到研究语音信号去噪的目的,最终结合图像以及对语音信号的回放,通过对比,得出结论。

一、基本原理

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

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

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

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

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

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

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

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

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

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

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

本次课程设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计FIR滤波器对其进行滤波处理,对语音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。

对前后滤波前后的频谱进行分析比较,对不同的滤波器处理效果的比较。

其原理框图如下图所示。

1、设计方案

首先选择一个语音信号作为分析的对象,在MATLAB软件平台下对语音信号进行时频变换、时频分析。

利用MATLAB产生信噪比可控的高斯白噪声作为干扰信号加入到原始语音信号中,模仿语音信号被污染,并对合成的语音信号进行时频分析。

然后根据合成信号的频谱特点,选择合适的性能指标设计低通、高通、带通滤波器,并绘制滤波器的频率响应曲线。

采用不同的滤波器对加入噪声的

音信号进行滤波处理,绘制处理后的语音信号的频谱图。

语音信号采集

效果显示

语音信号录入

语音信号变换

信号加噪

语音信号滤波

2、FIR数字滤波器的设计及实现

FIR:

有限脉冲响应滤波器。

有限说明其脉冲响应是有限的。

与IIR相比,它具有线性相位、容易设计的优点。

这也就说明,IIR滤波器具有相位不线性,不容易设计的缺点。

而另一方面,IIR却拥有FIR所不具有的缺点,那就是设计同样参数的滤波器,FIR比IIR需要更多的参数。

这也就说明,要增加DSP的计算量。

DSP需要更多的计算时间,对DSP的实时性有影响。

FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。

通常这个理想的低通滤波器在频域上是一个矩形窗。

根据傅里叶变换我们可以知道,函数在时域上是一个采样函数。

通常此函数的表达式为:

sa(n)=sin(n∩)/n(3-2)

但是这个采样序列是无限的,计算机是无法对它进行计算的。

故我们需要对此采样函数进行截断处理。

也就是加一个窗函数。

就是传说中的加窗。

也就是把这个时域采样序列去乘一个窗函数,就把这个无限的时域采样序列截成了有限个序列值。

但是加窗后对此采样序列的频域也产生了影响:

此时的频域便不在是一个理想的矩形窗,而是成了一个有过渡带,阻带有波动的低通滤波器。

通常根据所加的窗函数的不同,对采样信号加窗后,在频域所得的低通滤波器的阻带衰减也不同。

通常我们就是根据此阻带衰减去选择一个合适的窗函数。

如矩形窗、汉宁窗、汉明窗、BLACKMAN窗、凯撒窗等。

窗函数法设计FIR滤波器的步骤如下:

(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。

先按照阻带衰减选择窗函数类型。

原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。

(2)构造希望逼近的频率响应函数。

(3)计算h(n).。

(4)加窗得到设计结果。

根据语音信号的特点给出有关滤波器的技术指标:

低通滤波器的性能指标:

fp=1000Hz,fc=1200Hz,As=50db,Ap=1dB

高通滤波器的性能指标:

fp=3500Hz,fc=4000Hz,As=50dB,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数字滤波器的低通滤波器源程序见附录

(1)。

以下为设计FIR数字滤波器的低通滤波器图像:

图1FIR低通滤波器

二、设计步骤

1、语音信号读入

单击开始程序,选择所有程序,接着选择附件,再选择录音。

自己录入“课程设计”语音信号,然后保存在MATLAB文件夹里面,命名为“new.wav”。

利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。

[y,fs,bits]=wavread('

[N1N2]);

用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。

[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。

源程序见附录

(2)。

2、原始语音信号频谱分析及仿真

利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。

再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。

对于波形图与频谱图(包括滤波前后的对比图)都可以用MATLAB画出。

我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

选择设计此方案,是对数字信号处理的一次实践。

在数字信号处理的课程学习过程中,我们过多的是理论学习,几乎没有进行实践方面的运用。

这个课题正好是对数字语音处理的一次有利实践,而且语音处理也可以说是信号处理在实际应用中很大众化的一方面。

这个方案用到的软件也是在数字信号处理中非常通用的一个软件——MATLAB软件。

所以这个课题的设计过程也是一次数字信号处理在MATLAB中应用的学习过程。

课题用到了较多的MATLAB语句,而由于课题研究范围所限,真正与数字信号有关的命令函数却并不多。

sound(x,fs,bits);

用于对声音的回放。

向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。

FFT的MATLAB实现:

在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。

下面介绍这些函数。

函数FFT用于序列快速傅立叶变换。

函数的一种调用格式为y=fft(x)

其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。

且和x相同长度。

若x为一矩阵,则y是对矩阵的每一列向量进行FFT。

如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;

否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。

函数FFT的另一种调用格式为y=fft(x,N)

式中,x,y意义同前,N为正整数。

函数执行N点的FFT。

若x为向量且长度小于N,则函数将x补零至长度N。

若向量x的长度大于N,则函数截短x使之长度为N。

若x为矩阵,按相同方法对x进行处理。

经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。

MATLAB提供求复数的幅值和相位函数:

abs,angle,这些函数一般和FFT同时使用。

函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,介于和之间,以弧度表示。

函数unwrap(p)用于展开弧度相位角p,当相位角绝对变化超过时,函数把它扩展至。

用MATLAB工具箱函数fft进行频谱分析时需注意:

(1)函数fft返回值y的数据结构对称性

一般而言,对于N点的x(n)序列的FFT是N点的复数序列,其点n=N/2+1对应Nyquist频率,作频谱分析时仅取序列X(k)的前一半,即前N/2点即可。

X(k)的后一半序列和前一半序列时对称的。

(2)频率计算

若N点序列x(n)(n=0,1,…,N-1)是在采样频率下获得的。

它的FFT也是N点序列,即X(k)(k=0,1,2,…,N-1),则第k点所对应实际频率值为f=k*f/N.

(3)作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。

以下为语音信号的时域图和频谱图:

图2原始信号时域频谱

3、原始信号采样及加噪

(1)原始信号采样

用傅里叶变换到频域:

y_p=fft(y,n);

通过函数f=fs*(0:

n/2-1)/n;

计算出对应点的频率,然后绘制出对原始语音信号采样的时域波形和频谱图。

源程序见附录(3)。

图形如下:

图3原始语音信号采样后时域波形和频谱图

(2)信号加噪

matlab函数randn:

产生正态分布的随机数或矩阵的函数

产生均值为0,方差σ^2=1,标准差σ=1的正态分布的随机数或矩阵的函数。

用法:

Y=randn(n)

返回一个n*n的随机项的矩阵。

如果n不是个数量,将返回错误信息。

Y=randn(m,n)或Y=randn([mn])

返回一个m*n的随机项矩阵。

Y=randn(m,n,p,...)或Y=randn([mnp...])

产生随机数组。

Y=randn(size(A))

返回一个和A有同样维数大小的随机数组。

randn

返回一个每次都变化的数量。

下面一段程序实现了利用randn函数把一段随机噪音信号加入原始语音信号的信号处理过程:

见附录6

语句L=length(y)noise=0.1*randn(L,2)y_z=y+noise;

sound(y_z,fs)

加噪语音信号时域波形和频谱图如下图所示:

图4加噪语音信号时域波形和频谱图

通过对两张图片的对比,很明显可以看加噪后的语音信号时域波形比原始语音信号浑浊了许多,在时间轴上可以明显看出0—0.5S的幅值增大了;

通过对原始语音信号的频谱图与加噪后的语音信号频谱图的对比,也可以看出在频率5000Hz以后的频率幅值发生了明显的增加。

再通过对原始语音信号的回放效果与加噪后的语音信号回放的效果的对比,人耳可以明显辨别出两种语音信号不一样了,加噪后的语音信号在听觉上比原始语音信号要浑浊很多,而且还有吱吱嘎嘎的混杂音。

4、FIR滤波器去噪及仿真

通过对上一节中加噪语音信号和原始语音信号频谱图对比可以知道,噪音大部分是Hz大于5000的部分,故设计低通滤波器进行滤波处理。

然后用设计的FIR低通滤波器对上一节中加噪语音信号进行滤波处理。

用FIR数字低通滤波器对加噪的语音信号进行滤波时,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。

函数fftfilt用的是重叠相加法实现线性卷积的计算。

调用格式为:

y=fftfilter(h,x,M)。

其中,h是系统单位冲击响应向量;

x是输入序列向量;

y是系统的输出序列向量;

M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。

FIR数字低通滤波器对加噪语音信号的源程序见附录(4)。

FIR数字低通滤波器对加噪语音信号的滤波结果图如下:

图5FIR滤波前和滤波后波形及频谱

分析:

从以上四图可以很明显和直观的看出原始语音信号和加噪语音信号时域波形和频谱图的区别。

加噪后的语音信号的时域波形比原始语音信号要模糊得多,频谱图则是在频率5000Hz以后出现了明显的变化。

再通过滤波前的信号波形和频谱图的对比,可以明显看出滤波后的波形开始变得清晰了,有点接近原始信号的波形图了。

滤波后信号的频谱图也在5000Hz以后开始逐渐接近原始语音信号的频谱图。

再从对语音信号的回放,人耳可以明显辨别出加噪后的语音信号比较浑浊,还有很明显嘎吱嘎吱的杂音在里面。

滤波后,语音信号较加噪后的信号有了明显的改善,基本可以听清楚了,而且杂音也没有那么强烈,但是声音依然没有原始语音信号那么清晰脆耳。

三、总结

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

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

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

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

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

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

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

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

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

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

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

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

在此次课程训练当中我们系统的学习了信号的知识,通过本次综合训练让我了解了FIR器的知识,这次综合训练对将来从事这一工作的同学尤为重要,这等于让我们提前对这方面的知识有了进一步的认识。

在这次综合训练过程中也当遇到了很多实际问题,比如说对有些关于嵌入式知识的缺乏,不过在老师的进一步讲解之后,我们逐步认识和理解了其中的关键,而且又对所学的理论知识有了升华。

同时通过此次训练,加深了我对所学过的各种理论数据的认识和理解,并在一定程度上掌握并会运用。

我还学会了把学到的知识用于解决实际问题,培养、加强锻炼了我的动手实践能力。

更为难得的是,在这次训练过程中,屡屡碰见一些问题,在解决这些问题的过程中,不断加强了我对嵌入式系统的理解。

对于一些自己不清楚,不明白但平时又很难发现的知识点有了一次全面的巩固与复习。

在大学阶段,理论的学习和实践是密不可分的。

离开了实践的理论是没有任何意义可言的。

与此同时,理论是需要伴随着实践才能完善。

同时,在与同学共同在解决一些问题的过程中,提高了我们的团队协作精神。

致谢

通过此次课程设计,我们都学到了许多东西,体会到了从书本学习与实际应用中的不同,这种感同身受必将对我们今后的学习与生活带来很大的帮助。

在三周的时间中,我们的指导老师时时在我们的身旁引导我们,帮助我们,倾注他们所有的才华,用心血让我们学会从理论走向实际这一目标十分艰辛,对我们来说是飞跃的过程。

不会忘记他们为了我们紧缩的眉头,焦急的眼神,疲倦的笑容,忙碌的身影!

谢谢我们的指导老师对我们的帮助!

参考文献

[1]丁玉美.数字信号处理[M].西安电子科技大学出版社,2003,3.

[2]朱冰莲.数字信号处理[M].电子工业出版社,2003,7.

[3]胡航,语音信号处理,哈尔滨工业大学出版社,2000年5月

[4]皇甫堪,陈建文,楼生强.现代数字信号处理[M].北京:

电子工业出版社,2003.

[5]吴红卫,吴镇扬,赵力.基于多窗谱的心理声学语音增强[J].声学学报,2007,32(3):

275-281.

[6]潘欣裕,童兴法,赵鹤鸣,基于谱能比例加权的谱减法语音增强研究[J].中国电子学会第十五届信息论学术年会暨第一届全国网络编码学术年会论文集

[7]程正,赵鹤鸣.基于多频带谱减法的语音增强算法的研究[J].002-8331(2007)36-0040-03.

[8]曹瑜镠,方元,吕勇.基于最小统计及谱减法的语音增强[J].语音技术.002-8684(2006)12-0043-04

[9]白文雅,黄健群,陈智伶.基于维纳滤波语音增强算法的改进实现[J].电声技术,2007,31

(1):

44-46.

[10]蔡斌.一种改进型MMSE语音增强方法[J].信号处理,2004,20

(1):

70-74.

[11]陈俊,孙洪,董航.基于MMSE先验信噪比估计的语音增强[J].武汉大学学理学版,2005,51(5):

638-642.

[12]樊昌信,曹丽娜.通信原理[M].北京:

国防工业出版社,2008.

[13]姚天任.数字语音处理[M].武汉:

华中科技大学出版社,2005.

附录

程序1;

Ft=8000;

Fp=1000;

Fs=1200;

wp=2*Fp/Ft;

ws=2*Fs/Ft;

rp=1;

rs=50;

p=1-10.^(-rp/20);

%通带阻带波纹

s=10.^(-rs/20);

fpts=[wpws];

mag=[10];

dev=[ps];

[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);

%kaiserord求阶数截止频率

b21=fir1(n21,wn21,Kaiser(n21+1,beta));

%由fir1设计滤波器

[h,w]=freqz(b21,1);

%得到频率响应

plot(w/pi,abs(h));

title('

FIR低通滤波器'

);

程序2;

[y,Fs,nbits]=wavread('

E:

\123.wav'

%载入波形

N=length(y)%计算输入波形长度

Y=fft(y,N);

%进行快速傅里叶变换

sound(y);

%播放声音

figure(4);

subplot(211);

plot([0:

15/(N-1):

15;

0:

15]'

y);

原始信号时域图'

)%时域图

NFFT=2^nextpow2(N);

%Nextpowerof2fromlengthofy

Y=fft(y,NFFT)/N;

f=Fs/2*linspace(0,1,NFFT/2+1);

subplot(212);

plot(f,2*abs(Y(1:

NFFT/2+1)));

滤波前频谱图'

)%滤波前频谱图

程序3;

sound(y,fs)

n=length(y)

f=fs*(0:

figure

(1)

subplot(2,1,1);

原始语音信号采样后的时域波形'

xlabel('

时间轴'

ylabel('

幅值A'

subplot(2,1,2);

plot(f,abs(y_p(1:

n/2)));

原始语音信号采样后的频谱图'

频率Hz'

频率幅值'

L=length(y)

noise=0.1*randn(L,2);

y_z=y+noise;

n=length(y);

y_zp=fft(y_z,n);

figure

(2)

y_z);

加噪语音信号时域波形'

plot(f,abs(y_zp(1:

title(

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

当前位置:首页 > 高中教育 > 高考

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

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