ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:192.77KB ,
资源ID:7400001      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7400001.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Matlab语音信号的采集与分析.docx)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于Matlab语音信号的采集与分析.docx

1、基于MATLAB 的语音信号分析和处理【摘要】:本文通过用三星手机系统自带录音机采集了一段语音,wav格式转换后再Matlab平台上对其进行了时域分析,频谱分析,分析语音信号的特性。利用函数对采样频率进行控制,比较其波形。通过对两段铃声(分别为男声、女声)进行分析初步找出男声女声的特点和区别。应用Matlab平台对录制的语音信号加入噪声,对比加噪前后的语音信号的时域和频域特性,回放加噪语音信号。 【关键词】: 语音信号 ;频域特性 ; 时域特性 ; 滤波器目录一、 背景介绍1.1 语音信号的概述1.2 语音信号处理工具的选择二、 语音信号的录制采集和分析2.1 语音信号的采集2.2 语音信号的

2、读入与打开2.3 取不同采样频率得出的波形比较三、 对男声、女声语音信号特点的分析3.1女声(vfemale.wav)男声(vmale.wav)的时域分析3.2女声(vfemale.wav)男声(vmale.wav)的频域分析四、 加噪声与滤波处理分析4.1 高斯白噪声(SNR=30)4.2 单频正弦噪声五、 心得与体会一、 背景介绍1.1 语音信号的概述语言是人类创造的,是人类区别于其他地球生命的本质特征之一。人类用语言交流的过程可以看成是一个复杂的通信过程,为了获取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,

3、因此语音信号就成为语音的表现形式或载体。1.2 语音信号处理工具的选择语音信号的进一步处理分析工作选用了Matlab平台。Matlab是一种科学计算软件,专门以矩阵的形式处理数据。Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,不断完善Matlab产品以提高产品自身的竞争能力Matlab的数据分析和处理功能十分强大,运用它来进行语音信号的分析、处理和可视化相当便捷。在编程效率、程序可读性、可移植性和可扩充性上Matlab远远优于其它的高级编程语言,而且编程易学、直观,代码非常符合人们的思维习惯。另外Matlab为用户提供了丰富的windows图形界面设计方法,使用户能

4、够在利用其强大的数值计算功能的同时可设计出友好的图形界面,它受到了越来越多的用户的欢迎。Matlab几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上,Matlab远优越于其他的高级编程语言。Matlab语言具有强大的数值计算能力和视图能力,其偏微分方程工具箱提供了有限元求解的一个强大而灵活的环境,并且有限元网格可做精细划分以满足要求。但是,和其他的高级语言相比,Matlab程序的执行速度较慢。在目前电脑处理速度不断提升的情况下,如果实时性要求不是非常高的情况下,使用Matlab开发就不存在此类问题了。二、 语音信号的录制采集与分析2.1 语音信号的采集用手机自带的录音软件录音,录

5、制时配备电话耳机作为麦克风,在安静,低噪声的环境下录制。将得到的m4a格式的音频文件转换成wav格式,便于在Matlab平台上处理。本人录制的是朗读的是毛泽东的沁园春*长沙。2.2 语音信号的读入与打开在Matlab中,y,fs,bits=wavread(Blip,N1 N2);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。N1 N2表示读取的值从N1点到N2点的值。sound(y); 用于对声音的回放。向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。下面是语音信号在MATLAB中的语言程序,它实现

6、了语音的读入与打开,并绘出了语音信号的波形频谱图。Matlab的M文件:x,fs,bits=wavread(C:UsersDayDesktop02120011.wav);sound(x,fs,bits);X=fft(x);subplot(221);plot(x);title(原始信号波形);subplot(222);plot(X); title(原始信号频谱);subplot(223);plot(abs(X);title(原始信号幅值);subplot(224);plot(angle(X);title(原始信号相位);程序运行可以听到自己录制的声音,得到的结果如图2.2.1所示:2.2.1 语

7、音信号的读入与打开 2.2.2 用Matlab得出fs,bits的值2.3 取不同采样频率得出的波形比较在Matlab中,resample函数用于改采样的频率,Y=resample(X,P,Q)表示对X取P/Q倍的原始采样频率,P,Q,必须为正整数。1) fs=22050hz:(y=resample(x,1,2);)2.3.1 采样频率fs=22050hz的波形2) fs=11025hz: (y=resample(x,1,4);)2.3.2 采样频率fs=11025hz的波形3) fs=5512.5hz: (y=resample(x,1,8);)2.3.3 采样频率fs=5512.5hz的波形

8、4) fs=2756.25hz:(y=resample(x,1,16);)2.3.4 采样频率fs=2756.25hz的波形分析:随着采样频率的降低,录制的声音音调变得越来越高,语速也将越来越快,fs=22050hz时自己的声音特别像当红动画神偷奶爸里的小黄人的声音,让人捧腹。当采样频率降到1/4的时候已经听不出录制的诗词了,当采样频率降到1/128的时候已经听不到声音了。三、 对女声、男声语音信号特点的分析选择男声的信号文件(vmale.wav)是截取一首歌曲直到世界的尽头的副歌部分,女声的信号文件(vfemale.wav)是截取一首歌曲I Will Always Love You的副歌部分

9、,通过时序分析和频域分析进行比较。3.1 女声(vfemale.wav)男声(vmale.wav)的时域分析:3.2 女声(vfemale.wav)男声(vmale.wav)的频域分析:Matlab的M文件:y1,fs1,bits1=wavread(C:UsersDayDesktopvfemale.wav);y2,fs2,bits2=wavread(C:UsersDayDesktopvmale.wav);fs1=44100;fs2=44100;Y1=fft(y1);Y2=fft(y2);df1=fs1/length(Y1);fx1=df1*(0:length(Y1)-1);%将横轴变成频率轴d

10、f2=fs2/length(Y2-1);fx2=df2*(0:length(Y2)-1);subplot(211);plot(fx1,abs(Y1);axis(0 5000 0 10000);title(女声语音频域幅值波形);xlabel(frequency/Hz);subplot(212);plot(fx2,abs(Y2);axis(0 5000 0 10000);title(男声语音频域幅值波形):xlabel(frequency/Hz);分析男声和女声的差别,女声的音调比男生高一些,根据声音的特点,得知音调由频率决定,从图中可以看出,女声频率集中在1000Hz,男声频率集中在200Hz

11、。基于此特点,可以通过程序初步判断一段音频是男声还是女声。四、 加噪声与滤波处理分析4.1 高斯白噪声(SNR=30)Matlab的M文件:x1,fs,bits=wavread(C:UsersDayDesktop02120011.wav);y1=fft(x1);x2=awgn(x1,30);%sound(x2,fs,bits);y2=fft(x2+x1);f=0:fs/44100:fs/44100*44099;subplot(221);plot(x1);title(原始语音信号的时域波形);subplot(222);plot(x2);title(加入高斯白噪声语音信号的时域波形);subplo

12、t(223);plot(abs(y1);title(原始语音信号的频域幅值波形);subplot(224);plot(abs(y2);title(加入白噪声语音信号的频域幅值波形);4.2 单频正弦噪声Matlab的M文件:x1,fs,bits=wavread(C:UsersDayDesktop02120011.wav);team,row=size(x1);if row=2%判别x1是双声道信号吗,是就通过取两列信号的平均值来变成单声道x1=(x1(:,1)+x1(:,2)/2; endy1=fft(x1,44100);N=length(x1)-1;t=0:1/44100:N/44100;d=

13、0.009*sin(6*pi*5000*t);x2=x1+d;%sound(x2,fs,bits);y2=fft(x2,44100);%f=0:fs/44100:fs/44100*44100;subplot(221);plot(x1);title(原始语音信号的时域波形);subplot(222);plot(x2);title(加入单频正弦语音信号时域波形);subplot(223);plot(abs(y1);title(原始语音信号的频域幅值波形);subplot(224);plot(abs(y2);title(加入单频正弦语音信号频域幅值波形);五、 心得与体会在分析,采样,加噪声的过程中

14、,在对程序的理解和使用上遇到了很多困难,通过Matlab论坛和百度一一查阅理解。遇到最大的困难就是在给语音信号加上单频正弦噪声时总是会出现这样的错误:一开始的程序如下:x1,fs,bits=wavread(C:UsersDayDesktop02120011.wav);y1=fft(x1,44100);N=length(x1)-1;t=0:1/44100:N/44100;d=0.009*sin(6*pi*5000*t);x2=x1+d;%sound(x2,fs,bits);y2=fft(x2,44100);%f=0:fs/44100:fs/44100*44100;subplot(221);plo

15、t(x1);title(原始语音信号的时域波形);subplot(222);plot(x2);title(加入单频正弦语音信号时域波形);subplot(223);plot(abs(y1);title(原始语音信号的频域幅值波形);subplot(224);plot(abs(y2);title(加入单频正弦语音信号频域幅值波形);经过对语音信号的分析和咨询他人之后,问题为此程序是处理单声道语音信号的,却没有预先判别信号是否为单声道就直接加噪声,从而导致x1为2维列向量,而d为一维列向量。解决办法是加上一段程序team,row=size(x1);if row=2%判别x1是双声道信号吗,是就通过取两列信号的平均值来变成单声道 x1=(x1(:,1)+x1(:,2)/2;end参考文献:1王祯飞 基于MATLAB 的语音信号分析和处理 福建师范大学协和学院

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2