基于matlab的语音信号的分析与处理.doc

基于matlab的语音信号的分析与处理.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《信号与系统》

课程设计报告

__语音信号的分析和处理

摘要

本次课程设计运用matlab对语音信号的时域和频域进行分析,得出语音信号差别的原因所在,并探讨了电话对语音信号采样频率为8KHz的原因,通过滤波实现回波信号的还原。

前言

众所周知,语音信号的处理分析已变得非常流行,基于语音处理分析技术的产品也开始流入市场,遍布人们的生活。这也是本小组致力于该方面研究的原因。为了研究不同类型的声音信号性质,我们以数学知识为基础,通过快速傅里叶变换及其逆变换等一系列技术手段,从时域图,频域图入手,经对语音信号素材的处理,分析,对比,类比,对各类语音信号性质有了一定的了解,得出了不少有意义的结论。

三、正文

【设计目标】尝试对语音信号进行时频域分析和处理的基本方法

【设计原理】

通过MATLAB的函数wavread()可以读入一个.wav格式的音频文件,并将该文件保存到指定的数组中。例如下面的语句(更详细的命令介绍可以自己查阅MATLAB的帮助)中,将.wav读入后存放到矩阵y中。

y=wavread(SpecialEnglish.wav);

对于单声道的音频文件,y只有一行,即一个向量;对于双声道的音频文件,y有两行,分别对应了两个声道的向量。我们这里仅对一个声道的音频进行分析和处理即可。注意:.wav文件的采样频率为44.1KHz,采样后的量化精度是16位,不过我们不用关心其量化精度,因为在MATLAB读入后,已将其转换成double型的浮点数表示。

在获得了对应音频文件的数组后,我们可以对其进行一些基本的分析和处理。包括:

对语音信号进行频域分析,找到语音信号的主要频谱成分所在的带宽,验证为何电话可以对语音信号采用8KHz的采样速率。

我们主要的设计原理是离散时间的fourier变换,离散时间的fourier变换公式为:,,其中。利用上述公式我们可以对语音信号进行fourier变换和反fourier变换。对语音信号进行fourier变换后,我们可以得到对应信号的频谱进而画出其频谱图,于是我们就可以很方便的在频域上对语音信号进行分析,对语音信号进行反fourier变换后,我们又可以得到相应的语音信号,于是通过对频谱的改变,在进行反fourier变换,我们就能知道频域对时域的影响。

分析男声和女声的差别。我们知道男声和女声在频域上是有些差别的,一般大家都会认为女声有更多高频的成分,验证这种差别。同时,提出一种方法,能够对一段音频信号是男声信号、还是女声信号进行自动的判断。

我们知道,男女声的主要差别表现在音调上,女声的音调高于男生音调,而根据声音的特点,得知音调由频率决定,故对男生女声信号进行傅里叶变换,观察其频率的差别。

.wav文件的采样速率为44.1KHz,仍然远远高于我们通常说的语音信号需要的频谱宽度,例如在电话对语音信号的采样中,我们仅仅使用8KHz的采样速率。对读入的音频数据进行不同速率的降采样,使用wavplay()命令播放降采样后的序列,验证是否会对信号的质量产生影响。降采样的方法很简单,例如命令y=wavread(SpecialEnglish.wav);将语音文件读入后保存在向量y中,这时对应的采样频率为44.1KHz。使用y1=y(1:2:length(y))命令,就可以将原序列y每隔1个采样后放入序列y1中,这时y1序列对应的采样频率即为22KHz。

双径模型是无线通信中最简单的一种模型。发送方天线发出的信号,除了可以直接抵达接收天线,还可能通过建筑物等反射到达接收天线,这时接收到的信号就变成了两路信号的叠加,如图示意,两路信号显然会出现时间差。

以下是语音信号经过双径信道模型的MATLAB代码,接收信号为z。

y=wavread(Q2.wav);

Fs=44.1e+3;wavplay(y,Fs);

delta_t=1; %unit:s

number_t=round(delta_t*Fs); %对应了需要延迟多少个采样点

power_ratio=0.8; %对应快通道的功率比值

z=sqrt(power_ratio)*y+sqrt(1-power_ratio)*[zeros(number_t,1);y(1:length(y)-number_t)]; %接收到的信号

wavplay(z,Fs);

回音的产生主要是因为两个具有时差的信号相互叠加,播放时不同步,听觉上就表现为“回声”,处理的办法为:对原信号进行过滤,滤掉滞后的信号,回音就消失了。

【设计内容及步骤】

对语音信号进行频域分析

实验代码如下:

y1=wavread(男声.wav);

Y1=y1(:,

文档评论(0)

131****8213 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档