ifftshift的用法
ifftshif据说是对fftshift的逆过程,fft处理过的结果可以用ifft重构原信号那么用fftshift处理过的结果,需要用ifftshift处理一下再用ifft重构原信号
可是我的观察是,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(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 编辑 ] 可能是我对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 编辑 ] 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.
这有啥区别?? 回复#2,把figure(24)后的两语句改为:
ff1=ifftshift(ff);
plot(ft,abs(ff1))
就能得正确的结果。 本帖最后由 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函数的逆过程。
回复 #6 songzy41 的帖子
这个是我的错…… 学习学习
页:
[1]