基于matlab的语音快速傅立叶变换
对自己录入的一段语音读进去后如何进行加窗的fft啊,要求是矩形窗,程序该咋写啊,关键是不会加窗.在次请教各位高手了,请不吝赐教,非常感谢啊... 加矩形窗进行FFT运算,等于对数据分段后进行FFT运算。例如窗长256,则在不重叠的条件下,等于每次从语音数据中取256个数据,再做FFT运算。回复 2楼 的帖子
找了一些程序,可是看不懂,我自己又加了点,不知道对不对,刚接触这个,感觉陌生得很clear all;
fs=8000;%设定采样频率
N=512;
n=0:N-1;
t=n/fs;
=wavread('D:\程序\MATLAB\work\yuyin.wav');
time=(1:length(x))/fs; % 時間軸的向量
plot(time,x)
%title('原始语音信号');
grid;
win = boxcar(N)';
ls = length(x);
lw = length(win);
lm = lw;
i = 1; % block counter and index
while lw < ls, % throws away the last unfilled block
blocki =x(1,lw-lm+1:lw).*win;
x(i,1:fftlength)=fft(blocki,fftlength);
lw = lw + tr;
i = i + 1;
end
return
a = abs(x);
a = a';
a = a/max(max(a));
a = 1-a;
a = a*128;
figure;
可以帮忙解释下吗?
谢谢:)
[ 本帖最后由 风花雪月 于 2008-8-10 10:17 编辑 ]
非平稳信号
语音信号是非平稳信号,能用FFT分析吗? 不懂哦,来看看~~~~:@) :@) 在matlab中用specgram命令就可以了 原帖由 laneliu 于 2008-7-5 10:20 发表 http://www.chinavib.com/forum/images/common/back.gif
语音信号是非平稳信号,能用FFT分析吗?
通常情况下,语音信号是非平稳信号,用FFT是不合适的
但是在很短的时间内,语音信号可以认为是平稳的,这时FFT就可以用了
页:
[1]