我想先将语音信号进行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。如何用原始语音信号生成这个新矩阵?当我想使用重塑时,似乎不适合这样做。任何帮助将不胜感激。
答案 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