語音信号FFT分析.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
語音信号FFT分析

播码按键语音信号的FFT分析 摘要: FFT快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。r(k+N/2)=WN/2rk 和算式 N/2+K=k 来推导完成。最后可以得到一个N点DFT的全部运算式: k k 其中: k=0,1,2......N/2—1 3、分解后的序列做DFT运算时任然可以继续按照这种方法再次分为N/2点DFT运算,如果按照这种方法继续进行下去,最终将得到一个运算单元只含2点的DFT运算。 三、 FFT节约的计算量计算 在按时间抽取法中,对于一个N点的序列,所要完成的乘法次数为: 要完成的加法次数为: 而直接DFT运算复乘法数为N2,假设计算1024点DFT时,则FFT和DFT计算的复乘法数目比值是205。因此,FFT算法节约了许多的运算量。 一串播码按键语音信号的FFT分析 1、按键音的来源 在本次实验中,采用的被分析按键音来自于普通手机的播码音,通过MP4录制后保存为WAV的音频格式,然后上传至PC机。 由于WAV格式又分为PCM和IMA ADPCM两种不同的格式,MATLAB中wavread函数只能对PCM格式的wav进行处理,而我用的MP4恰好是非PCM格式的wav文件,因此,由MP4录制的语音经过Adensoft Audio MP3 converter格式转换器转换后得到MATLAB能打开的PCM格式WAV文件。将其命名为“q”。 语音文件的打开方法 将得到的命名为“q”的WAV文件保存在MATLAB文件下的WORK文件夹以下,然后用函数: [y,Fs,bits]=wavread(q.wav) 能够打开这一串录制好的语音信号。其中,y代表着语音信号的变量名;FS是采样率,BITS是采样位数。q.wav是保存的源语音文件。wavread是函数名。当然,我们也可以回放这一串语音信号,通过调用sound函数即可: sound(y,Fs,bits) 语音信号的时域波形显示 通过调用MATLAB中的显示命令可以将这串语音信号的时域波形显示出来。通过编辑,从读取语音信号到时域显示部分的MATLAB语言程序如下: [y,Fs,bits]=wavread(q.wav);%读取WAV语音文件并命名为y; sound(y,Fs,bits);%回放语音一次; figure;%产生一个新界面; plot(y);%绘制时域波形; 注:由于这里的输入法不同,所产生的ASICALL码是不一样的,因此复制到MATLAB里面是不被通过的,应重新输入才可。 通过运算,得到的原始时域波形如下图所示: 此时横坐标的长度是语音信号的名称y的数据序列长度,纵坐标的值是语音信号y的每一个序列值所对应的值得大小。其中可以看出录音一共产生了10次幅度突升的大集合,其实也正对应着0,1,2,3、、、9等10个数字键的按入。最后的一点幅度是关闭按钮时产生的噪音,可能会对分析的频谱产生噪音污染,但其总体功率不大,任然可以分辨出来。 录音信号的时域波形 采用以下程序处理后可以把横轴时间单位改为s: n=length(y); %取y数据的长度; t=(0:n-1)/Fs; %求时间单位s的运算公式; plot(t,y);xlabel(‘s’);title(‘时域波形图’)%绘制以时间单位s的时域波形; 这样处理后的波形如下图所示: 换算为时间单位的时域波形图 语音信号的频域分析 在这里,我们采用快速傅里叶变换即FFT分析产生频谱结构的可视化界面,只需要调用相应的函数fft即可: Y=fft(y); 做频谱分析并且显示的程序如下: x=fft(y);%完成FFT运算,x即运算后的数组; Y=abs(x);%对FFT运算后的数组x取绝对值,得到幅度值; figure;%产生新界面; plot(Y);title(‘原始信号幅度值’);%绘制幅度值图形; 经过分析后的时域幅度值波形

文档评论(0)

df9v4fzI + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档