我有以下 MATLAB 代码:
audioFile= audioread('myFile');
%% Reshape according to the given distortion period
distortionPeriod = 512;
audioFile= length(audioFile) / distortionPeriod;
audioFile= reshape(audioFile, [newLength, distortionPeriod]);
我注意到以下区别:
audioFileFft = fft(audioFile); % incorrect transform
audioFileDftMat = audioFile * dftmtx(distortionPeriod); % correct transform
>> norm(audioFileFft - audioFileDftMat )
ans =
1.2985e+03
为什么存在这种差异?正如MATLAB dftmtx 的文档所提到的,我希望这两个操作(fft, dftmtx
)会给出相同的结果。
我怎样才能使用fft
并且仍然获得与使用 相同的结果dftmtx
?