在 MATLAB 中分帧语音信号的 FFT

FFT for speech signal with dividing frames in MATLAB

我想对语音信号进行 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中有一个参数是"dimension"。但是就我而言,我的矩阵是 2015X64。我如何用我的原始语音信号生成这个新矩阵?当我想使用 reshape 时,似乎这样做是不合适的。任何帮助将不胜感激。

我想这就是你想要的

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