📄 test_fft.m
字号:
% Test code for the fast quaternion Fourier transform.% This code tests the following functions:%% fft fft2% ifft ifft2% Copyright ? 2005 Stephen J. Sangwine and Nicolas Le Bihan.% See the file : Copyright.m for further details.% We have to test the 1D and 2D functions separately because they do not% call each other. In addition, we need to verify the results of the FFTs% against the DFT code in the corresponding qdft functions.% Test 1. Real data, and therefore real axis, 1D and 2D.% Check that the transform inverts correctly and then that it agrees with% the DFT code.T = 1e-12;q = quaternion(randn(10,10), randn(10,10), randn(10,10), randn(10,10));RA = unit(quaternion(1,1,1)); % Real axis.compare(q, ifft(fft(q)), T, 'fft/ifft failed test 1.');compare(q, iqdft(fft(q), RA, 'L'), T, 'fft/iqdft failed test 1.');compare(q, ifft2(fft2(q)), T, 'fft2/ifft2 failed test 1.');compare(q, iqdft2(fft2(q), RA, 'L'), T, 'fft2/iqfft2 failed test 1.');clear q RA% Test 2. Complex data, and therefore complex axis, 1D and 2D.% Check that the transform inverts correctly and then that it agrees with% the DFT code.b = quaternion(complex(randn(10,10),randn(10,10)),... complex(randn(10,10),randn(10,10)),... complex(randn(10,10),randn(10,10)),... complex(randn(10,10),randn(10,10)));CA = quaternion(1,1,1) + quaternion(0,1,-1).*i; % Complex axis.compare(b, ifft(fft(b)), T, 'fft/ifft failed test 2.');compare(b, iqdft(fft(b), CA, 'L'), T, 'fft/iqdft failed test 2.');compare(b, ifft2(fft2(b)), T, 'fft2/ifft2 failed test 2.');compare(b, iqdft2(fft2(b), CA, 'L'), T, 'fft2/iqfft2 failed test 2.');%clear CA b T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -