matlab—— ifftshift,fftshift
最编程
2024-08-14 14:07:42
...
-
fft(转换到频域)得到的像谱默认不是按照中心对称的(快速傅里叶变换的原因),一般需要用fftshift方法使得其按中心对称,这样的话当我们ifft时(转换回时域),得到的数据就会和之前实际的不一样了,所以还需加ifftshift 来还原。
-
fft是一维的傅里叶变换,是将时域信号转换为频域信号的 fftshift是这针对频域信号的,将fft的DC分量移到频谱中心区,
而iffshift是fftshift的逆运算,将fftshift还原。 -
Ifftshift和fftshift两者实际上是不同的。首先,ifftshift和fftshift执行的都是圆周位移的操作。fftshift是将数组或矩阵按正方向(向右和向下)做圆周位移,而ifftshift是按负方向(向左和向上)做圆周位移。圆周位移的步长等于数组或矩阵长度的一半,对于偶数是N/2,对于奇数是(N-1)/2。这也就是为什么对于偶数长的数组,fftshift和ifftshift的结果相同,而对于奇数长的数组,两者结果却不一样的原因。
例子:
A=[1,2,3,4,5];
B=fftshift(A)=[4,5,1,2,3]; 12345整体向右移动(5-1)/2=2位
C=ifftshift(A)=[3,4,5,1,2];12345整体向左移动(5-1)/2=2位
两次fftshift不能使数列恢复原状,而要如下使用
ifftshift(fftshift(A))=A
少了omega =
推荐阅读
-
关于MATLAB中fft,fftshift,fftshift(fft(fftshift(x))),FFT要乘以dx 等问题理解
-
【Matlab】快速傅里叶变换/ FFT/ fftshift/ fftshift(fft(fftshift(s)))
-
用C++实现Matlab中一维向量的fftshift函数
-
MATLAB中的FFT后用FFTSHIFT 的意义
-
深入理解Matlab中的FFT和FFTshift
-
fftshift有什么用?MATLAB做FFT后为什么还要fftshift?
-
解读fftshift函数所用方法
-
二维图像(数组)的fftshift-fftshift是啥
-
详解fftshift函数的用法
-
重新排列频谱的fftshift方法