声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2745|回复: 6

[其他相关] 基于matlab的语音快速傅立叶变换

[复制链接]
发表于 2008-7-4 17:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
对自己录入的一段语音读进去后如何进行加窗的fft啊,要求是矩形窗,程序该咋写啊,关键是不会加窗.在次请教各位高手了,请不吝赐教,非常感谢啊...
回复
分享到:

使用道具 举报

发表于 2008-7-4 17:53 | 显示全部楼层
加矩形窗进行FFT运算,等于对数据分段后进行FFT运算。例如窗长256,则在不重叠的条件下,等于每次从语音数据中取256个数据,再做FFT运算。
 楼主| 发表于 2008-7-4 20:15 | 显示全部楼层

回复 2楼 的帖子

找了一些程序,可是看不懂,我自己又加了点,不知道对不对,刚接触这个,感觉陌生得很

  1. clear all;
  2. fs=8000;%设定采样频率
  3. N=512;
  4. n=0:N-1;
  5. t=n/fs;
  6. [x, fs]=wavread('D:\程序\MATLAB\work\yuyin.wav');
  7. time=(1:length(x))/fs;        % 時間軸的向量
  8. plot(time,x)
  9. %title('原始语音信号');
  10. grid;
  11. win = boxcar(N)';
  12. ls = length(x);
  13. lw = length(win);
  14. lm = lw;

  15. i = 1;                % block counter and index
  16. while lw < ls,        % throws away the last unfilled block
  17.   blocki =x(1,lw-lm+1:lw).*win;
  18.   x(i,1:fftlength)=fft(blocki,fftlength);
  19.   lw = lw + tr;
  20.   i = i + 1;
  21. end


  22. return


  23. a = abs(x);
  24. a = a';
  25. a = a/max(max(a));
  26. a = 1-a;
  27. a = a*128;
  28. figure;
复制代码

可以帮忙解释下吗?
谢谢:)

[ 本帖最后由 风花雪月 于 2008-8-10 10:17 编辑 ]
发表于 2008-7-5 10:20 | 显示全部楼层

非平稳信号

语音信号是非平稳信号,能用FFT分析吗?
发表于 2008-7-13 18:09 | 显示全部楼层
不懂哦,来看看~~~~
:@) :@)
发表于 2008-8-10 10:19 | 显示全部楼层
在matlab中用specgram命令就可以了
发表于 2008-8-10 10:22 | 显示全部楼层


通常情况下,语音信号是非平稳信号,用FFT是不合适的
但是在很短的时间内,语音信号可以认为是平稳的,这时FFT就可以用了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-28 16:03 , Processed in 0.062478 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表