在MATLAB中用分帧进行语音信号的FFT

时间:2015-03-20 00:55:32

标签: matlab fft

我想先将语音信号进行FFT,然后将信号分成64个样本帧。我可以通过简单地使用“for”循环来完成它。但是我确信在MATLAB中有一种方法可以更简单的方式。我想做的事情就是:采用FFT

x1 = [ 1 2 3 4 6];
x2 = [ 2 3 1 3 5];
x3 = [ 3 3 4 5 6];
x  = [x1;x2;x3];
fft(x); 

在搜索之后,我意识到FFT中有一个参数是“尺寸”。但就我而言,我的矩阵是2015X64。如何用原始语音信号生成这个新矩阵?当我想使用重塑时,似乎不适合这样做。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我认为这可以做你想要的事情

x = randn(1, 2015*64);      % // example data vector
x = reshape(x, 64, []).';   %'// separate x into rows of 64 columns
y = fft(x, [], 2);          % // take DFT of each row