我的论文Word文档格式.docx
《我的论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《我的论文Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
3.2所用函数15
3.2.1FFT背景及算法15
3.2.2函数调用格式16
3.3信号的时域分析18
3.4信号的频谱分析19
4代码编写21
结论34
致谢36
参考文献37
摘要
对于移动通信来说最多的信息是语音信号。
语音是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式,随着4G时代的到来,对语音信号处理技术要求越来越高。
基于MATLAB语音信号处理可以将数字化得语音信号表示成矩阵,同时MATLAB提供了语音文件的读写函数以及录音和放音功能,使用时只需按照函数的语法规则正确输入参数即可,这使语音信号处理更加直观方便。
数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。
而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。
关键词:
matlab仿真语音信号特技处理时域分析频域分析
Abstract
Formobilecommunication,speechsignalsisthemostusedinformation.Speechisthemostimportantmeansoftransmittinginformation,isthemostimportant,themosteffective,themostcommonlyusedandmostconvenienttoexchangeinformationintheform,alongwiththearrivaloftheeraof4G,thespeechsignalprocessingtechnicalrequirementsofincreasinglyhigh.BasedontheMATLABvoicesignalprocessingcanbedigitizedvoicesignalexpressedasamatrix,atthesametime,MATLABprovidesavoicefilereadandwritefunctionandrecordingandplaybackfunction,whenusedonlyinaccordancewiththefunctionofthegrammarrulestocorrectparameterscanbeinput,thespeechsignalprocessingismoreintuitiveandconvenient.DigitalsignalprocessingalgorithmisthecoreofthediscreteFouriertransform(DFT),DFTsothatthesignalinthedigitaldomainandfrequencydomainarerealizeddiscretization,whichcanusethecomputertodealwithdiscretesignals.ThedigitalsignalprocessingfromtheorytopracticeisthefastFouriertransform(FFT),FFThasgreatlyreducedtheDFTamountofcomputation,sothatthereal-timedigitalsignalprocessingbecomespossible,greatlypromotedthedevelopmentofthediscipline.
Keywords:
Matlabsimulation,Speechsignal,Specialtreatment,Timedomainanalysis,frequencydomainanalysis
前言
语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段,也是人类进行思维的一种依托。
人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储和获取语音信息,这对于促进社会的发展具有十分重要的意义。
语音信号可以看作是一种短时平稳的随机信号,主要是对它进行时域、频域的信号分析。
语音信号处理的目的有两个:
一个是要通过处理得到一些反应语音信号重要特征的语音参数,以便高效地传输或储存语音信号信息;
另一个是要通过处理某种运算以达到某种用途的要求,例如人工合成出语音、辨识出讲话者、识别出讲话的内容等。
傅里叶变换在信号处理中能够将信号在时间域和频率域之间进行有效的联系和转换,能够将信号的频率特征清晰准确的表现出来,而在时域中这种频率性能是没有定量的表现的,因此傅里叶变换在信号处理上具有十分重要的作用。
matlab是一门集数值计算、符号运算、基本的图形绘制和GUI图形处理等多种功能于一体的科学计算软件包。
它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据。
将实验数据导入计算机,利用matlab的数值计算和图形处理功能对实验数据进行处理,增强实验的准确性和可操作性。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
1绪论
1.1语音处理的背景和意义
随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:
进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;
80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;
而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。
近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。
特别是今年1月18日,国际电信联盟正式确认4G国际标准,我国具有自主知识产权的3G标准TD-SCDMA向TD-LTE演进。
今年3月,中国4G发展在深圳开启序幕。
4G加速高清语音时代来临,要求我们数字信号处理技术的不断更新与完善。
语音信号处理将越来越来为社会各方面所应用,在医疗方面,据统计中国有一亿三千万人有不同程度听力损失,可以利用中文语音处理技术有效地帮助听残患者;
在影视方面,语音特效处理,让视频信息更加生动化,立体化;
同时语音处理技术在地震、雷达、语音通信、数据通信、核科学等新的领域同样发挥着重要的作用,具有极其广阔的市场需要和应用前景。
1.2论文研究内容及方法
将一段mp3格式的一段音频,利用音频转换工具,将其转换为wav格式,利用MATLAB中的wavread命令来读入采集到的语音信号并加入MATLAB中的随机函数(rand或randn)产生的噪声。
对加入噪声的信号进行时间域以及频率域分析,根据噪声特点设计FIR和IIR滤波器,并从时域和频域的角度对语音信号进行处理和分析并对去噪以后的语音信号再次分析时域和频域特性,通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。
本论文主要利用MATLAB软件辅助设计FIR/IIR滤波器进行仿真,并通过对同一信号进行滤波处理后结果的对比,来探讨基于MATLAB的数字滤波器的设计对语音信号的影响。
2加噪语音信号处理设计
2.1方案设计
2.2MATLAB的优势
Matlab是美国MathWorks公司推出的一种面向工程和科学计算的交互式计算软件,它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境中。
同时由于Matlab是一个数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。
2.2.1matlab语音处理功能
Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种分析图的呈现等。
Matlab是一个非常好的语音处理工具箱,对学习语音处理的读者非常有用。
基于DSP和MATLAB的语音数据采集和处理系统-MATLAB,主要应用于语音处理中听觉模型的建立和分析。
语音虽然是一个时变、非平稳的随机过程。
但在短时间内可近似看作是平稳的。
因此如果能从带噪语音的短时谱中估计出“纯净”语音的短时谱,即可达到语音增强的目的。
由于噪声也是随机过程,因此这种估计只能建立在统计模型基础上。
2.2.2matlab绘图功能
MATLAB还具有非常强大的图形表达功能,既可以绘制二维图形,又可以绘制三维图形,还可以通过标注、视点、颜色等操作对图形进行修饰。
图形的标识指令:
1)title(s)书写图名
2)xlabel(s)横坐标轴名
3)ylabel(s)纵坐标轴名
4)legend(s1,s2,...)绘制曲线所用线型、色彩或数据点形图例
5)test(xt,yt,s)在图面(xt,yt)坐标处书写字符注释
6)gridon/off添加/取消添加网格线;
7)boxon/off添加/取消添加坐标边框
2.3滤波器
滤波是一种选频装置,即有选择性地提取或去掉或削弱某一段或某几段频率范围内的信号,利用滤波器的这种选频作用,可以滤除干扰噪声或进行频谱分析。
数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到选频目的。
按处理信号可认为数字滤波器和模拟滤波器,按频域特性分为低通、高通、带通、带阻滤波器;
按时域特性分为有限长冲激响应(FIR)滤波器和无限长冲激响应(IIR)滤波器。
2.3.2FIR和IIR滤波器
FIR数字滤波器的基本结构为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出。
FIR滤波器的冲激响应是有限长的,M阶FIR滤波器可以表示为
,其系统函数为
, FIR数字滤波器的设计实质是确定能满足要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
窗函数法的设计步骤
(1)给定所要求的频率响应Hd(
);
(2)由Hd(
)的傅立叶反变换求出
(n);
(3)根据过渡带宽及阻带最小衰减的要求,选择窗的形状并估计窗口长度N;
(4)计算滤波器的单位脉冲响应h(n)=
(n)ω(n);
(5)验算技术指标是否满足要求。
窗函数设计法设计时要满足以下两个条件:
(1)窗谱主辨尽可能窄,以获得较陡的过渡带;
(2)尽量减少窗谱的最大旁瓣的相对幅度,使能量尽量集中于主辨,进而增加阻带的衰减。
给定的滤波器指标参数一般为通带截止频率ωp、阻截止频率ωs、实际通带波动Rp和最小阻带衰减As。
窗函数设计的公式为
归一化过渡为
,滤波器阶数
,当As≥50时,β=0.1102(
-8.7);
当21≤
≤50时,β=
0.5842(
-21)0.4+0.07886(
-21).
3基于MATLAB的噪声语音信号处理实现
3.1信号的打开
3.1.1语音的录入与打开
[y,fs,bits]=wavread('
Blip'
[N1N2]);
用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。
[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。
3.1.2语音信号的回放
sound(x,fs,bits);
用于对声音的回放。
利用MATLAB中的函数wavread对语音信号采集,sound函数播放语音,并且声音采用的是单声道。
Fs为采样频率(设为441000Hz),Bits表示量化阶数,y为采样数据。
3.2所用函数
3.2.1FFT背景及算法
在数字信号处理中常常需要用到离散傅立叶变换(DFT),以获取信号的频域特征。
尽管传统的DFT算法能够获取信号频域特征,但是算法计算量大,耗时长,直接计算DFT的计算量与变换区间长度N的平方成正比,即计算一个N点的DFT,一般需要
次复数乘法和N(N-1)次复数加法运算。
因此,当N较大或要求对信号进行实时处理时,往往难以实现所需的运算速度,计算量太大导致直接用DFT算法进行谱分析和信号的实时处理是不切实际的,不利于计算机实时对信号进行处理。
因此至DFT被发现以来,在很长的一段时间内都不能被应用到实际的工程项目中,直到一种快速的离散傅立叶计算方法——FFT被发现,离散傅立叶变换才在实际的工程中得到广泛应用。
FFT的算法是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换(DFT)的算法进行改进得到,它的原理是不断地把长序列的DFT分解成几个短序列的DFT,并利用旋转因子的周期性和对称性从而减少DFT的运算次数,对于计算机信号处理方面上是一大进步。
计算离散傅里叶变换的快速方法,有按时间抽取的FFT算法和按频率抽取的FFT算法。
前者是将时域信号序列按偶奇分排,后者是将频域信号序列按偶奇分排。
它们都借助于的两个特点:
一是的周期性;
另一是的对称性,这里符号*代表其共轭。
傅里叶变换的基本表达式为
,
,式中的x(n)(n=0,2,…N-1)是列长为N的输入序列,x(k)(=0,1,…N-1)是列长为N的输出序列,即经过傅里叶变换后的频域上的数据。
3.2.2函数调用格式
1)y=fft(x),
其中x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。
且和x相同长度。
若x为一矩阵,则y是对矩阵的每一列向量进行FFT。
如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;
否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。
2)函数FFT的另一种调用格式为y=fft(x,N)
x,y意义同前,N为正整数。
函数执行N点的FFT。
若x为向量且长度小于N,则函数将x补零至长度N。
若向量x的长度大于N,则函数截短x使之长度为N。
若x为矩阵,按相同方法对x进行处理。
利用FFT将时域序列x(n)转换到频域
经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。
MATLAB提供求复数的幅值和相位函数:
abs,angle,这些函数一般和FFT同时使用。
3)函数fftfilt
函数fftfilt的调用格式为y=fftfilt(b,x)
该格式是利用基于FFT的重叠相加法对数据进行滤波,这种频域滤波技术只对FIR滤波器有效。
该函数是通过向量b描述的滤波器对x数据进行滤波。
4)yn=filter(b,a,x)
利用滤波器对输入信号x(n)滤波处理后得y(n),该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。
其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。
该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。
5)randn函数
rand产生的是[0,1]上的均匀分布的随机序列,randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;
6)bilinear(b,a,fs)函数
实现双线性变换,即由模拟滤波器H(s)到数字滤波器H(z)。
其调用格式是
[bz,az]=bilinear(b,a,Fs),式中b,a分别是H(s)的分子、分母多项式的系数向量;
bz,az分别是H(z)的分子、分母多项式的系数向量,Fs是抽样频率。
7)函数abs(x)用于计算复向量x的幅值
8)函数angle(x)用于计算复向量的相角
9)buttap.m
用来设计模拟低通原型滤波器,其调用格式是[Z,P,K]=buttap(n);
n是欲设计的低通原型滤波器的阶次,Z、P和K分别是极点、零点及增益。
10)buttord.m
用来确定数字低通或模拟低通滤波器的阶次,其调用格式分别是
[N,Wn]=buttord(Wp,Ws,Rp,Rs)
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'
s'
)
式
中的Wn,Wp,Ws为归一化频率,其值在0~1之间,1对应抽样频率的一半;
式
中Wn,Wp,Ws单位为rad/s,因此,它们实际上是频率。
对于不同类型的滤波器,参数Wp和Ws有一些限制:
对于低通滤波器,Wp<
Ws;
对于高通滤波器,Wp>
对于带通滤波器,wp和ws分别为具有两个元素的矢量,Wp=[Wp1,Wp2]和Ws=[Ws1,Ws2],并且Ws1<
Wp1<
Wp2<
Ws2;
对于带阻滤波器Wp1<
Ws1<
Ws2<
Wp2。
3.3信号的时域分析
1时域低通滤波:
分别播放处理前后的两段语音,明显感觉到处理后语音变得低沉,原因是高频分量被低通滤波器滤除或衰减,从运行显示的频谱图中也可以直观地看到。
2时域高通滤波:
会明显感觉到处理后的语音变得尖锐,原因是低频分量被低通滤波器滤除或衰减。
3.4信号频谱分析
系统的频域由人工完成分析是比较麻烦的,而且我们比较难理解其理论知识,很难有直观形象的认识,结合MATLAB高效的数值分析、完备的信号和图形处理、功能丰富的应用工具箱,具有信号处理软件包,可以方便地进行信号与系统的数值分析计算、可视化建模及其系统设计的优点,可以将傅立叶变换分析用MATLAB来实现。
信号频谱分析是把一个复杂的信号分解为一系列正交函数的线性组合,把信号从时域变换到频域中进行分析。
其中最基本的频谱分析是把信号分解为不同频率的正弦分量叠加,即用傅立叶变换(级数)的方法进行信号分析。
声音是一种波,能被人耳听到,其振动频率在20Hz到20kHz之间。
由频谱图可看出信号的频谱特性,明显的看出原始信号滤波或是加入噪声之后的前后不同。
从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整个频域范围内分是布均匀。
通过滤波前后的对比,低通滤波后效果最好,高通滤波后的效果最差。
4代码编写
1.原始语音分析
下载一段音频,用音频转换工具将其转换为wav格式,下面的一段程序实现了语音的读入打开,以及绘出了语音信号的频谱特性
设计程序如下:
[y,fs,nbits]=wavread('
C:
\Users\hp\Desktop\民族风'
);
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('
原始信号频谱'
)
语音信号的波形、频谱图1-1如下:
图1-1语音信号的波形、频谱图、幅值、相位图
2滤波处理
1)N阶高通滤波器
令N=2阶,wc为其3dB边缘频率,程序设计如下:
x=wavread('
\Users\hp\Desktop\民族风.wav'
sound(x);
N=2;
wc=0.3;
[b,a]=butter(N,wc,'
high'
X=fft(x);
subplot(321);
plot(x);
滤波前信号的波形'
subplot(322);
plot(X);
滤波前信号的频谱'
y=filter(b,a,x);
Y=fft(y);
subplot(323);
plot(y);
IIR滤波后信号的波形'
subplot(324);
plot(Y);
IIR滤波后信号的频谱'
z=fftfilt(b,x);
Z=fft(z);
subplot(325);
plot(z);
FIR滤波后信号的波形'
subplot(326);
plot(Z);
FIR滤波后信号的频谱'
得到结果如图所示2-1:
图2-1.二阶高通滤波器
2)N阶低通滤波器
令N=2阶,其中wc为其3dB边缘频率,程序设计如下:
[b,a]=butter(N,wc);
得到结果如图2-2所示:
图2-2.二阶低通滤波器
3)2N阶带通滤波器
2N阶带通滤波器的设计(在这里,以10阶为例,其中wc为其3dB边缘频率,wc=[w1,w2],w1wcw2),程序设计如下:
\Users\hp\De