JulianChin 发表于 2007-12-2 18:37

ifftshift的用法

ifftshif据说是对fftshift的逆过程,fft处理过的结果可以用ifft重构原信号
那么用fftshift处理过的结果,需要用ifftshift处理一下再用ifft重构原信号

可是我的观察是,ifftshift无效!

JulianChin 发表于 2007-12-2 18:39

f1=1000;
f2=500;
ts=1/10000;
fs=1/ts;
k=0.04;

t=0:ts:k;
y=sin(2*pi*t*f1);
figure(1)
plot(y)
ii=length(y);
ft=(-(ii)/2:(ii)/2-1)/(ii*ts);

figure(23)
ff=fftshift(fft(y,ii));
plot(ft,abs(ff))

figure(24)
ff1=(ifftshift(ff,ii));
plot(ft,abs(ff))

figure(25)
iff1=(ifft(ff1,ii));
plot(real(iff1))

[ 本帖最后由 JulianChin 于 2007-12-2 18:40 编辑 ]

JulianChin 发表于 2007-12-2 18:42

可能是我对ifftshift的机理研究不懂

应该是把移动后的频谱再移回来,可是事实上根本没移回来

f1=1000;
f2=500;
ts=1/10000;
fs=1/ts;
k=0.04;

t=0:ts:k;
y=sin(2*pi*t*f1);
figure(1)
plot(y)
ii=length(y);
ft=(-(ii)/2:(ii)/2-1)/(ii*ts);

figure(23)
ff=fftshift(y,ii);
plot(ft,abs(ff))

figure(24)
ff1=(ifftshift(ff,ii));
plot(ft,abs(ff))

[ 本帖最后由 JulianChin 于 2007-12-2 18:51 编辑 ]

JulianChin 发表于 2007-12-2 18:57

FFTSHIFT Shift zero-frequency component to center of spectrum.
For vectors, FFTSHIFT(X) swaps the left and right halves of
X.

IFFTSHIFT Inverse FFT shift.
For vectors, IFFTSHIFT(X) swaps the left and right halves of
X.
这有啥区别??

songzy41 发表于 2007-12-3 14:08

回复#2,把figure(24)后的两语句改为:
ff1=ifftshift(ff);
plot(ft,abs(ff1))
就能得正确的结果。

songzy41 发表于 2007-12-3 14:12

本帖最后由 wdhd 于 2016-9-8 14:29 编辑

原帖由 JulianChin 于 2007-12-2 18:57 发表
FFTSHIFT Shift zero-frequency component to center of spectrum.
For vectors, FFTSHIFT(X) swaps the left and right halves of
X.

IFFTSHIFT Inverse FFT shift.
For vectors, IFFTSHIFT(X) swaps the left and right halves of
X.
这有啥区别??

fftshift是数据在FFT变换后把0频率移到中间;而ifftshift是把0频率已移到中间的谱,再把0频率移到笫1条谱线,即是fftshift函数的逆过程。

JulianChin 发表于 2007-12-3 17:58

回复 #6 songzy41 的帖子

这个是我的错……

hezhongyong 发表于 2007-12-7 21:28

学习学习
页: [1]
查看完整版本: ifftshift的用法