我正在尝试一个简单的(快速傅立叶变换)fft并将其转换回来,但它不起作用。 我需要从这开始,以便继续为每个组件添加阶段。你能看一看,看看我哪里出错吗?
fun_cos=@(t) cos(1.5e12*t)
nttf=2^17;
t=linspace(-3*t_signal_pulse/2,3*t_signal_pulse/2,nttf);
dni_ni=(1/(t(2)-t(1)));
ni=-dni_ni/2:dni_ni/(nttf):dni_ni/2-dni_ni/(nttf);
w=ni.*2*pi;
figure(1)
plot(t,fun_cos(t))
FFt_cos=fftshift(fft(fun_cos(t),nttf))/length(t);
figure(2);
plot(w,abs(FFt_cos))
fft_back=ifft(ifftshift(FFt_cos));
figure(1)
hold on
plot(t,abs(fft_back),'.r')
Freq domain. you can see here two freq even though I only need one
另外,如果我想单独向时域和频域添加阶段(请注意我只知道频域域的一个阶段,而不是两者都是如此,所以不知道如何继续这个)
答案 0 :(得分:2)
您忘记使用'length(t)'重新缩放:
fft_back=ifft(ifftshift(FFt_cos*length(t)));
MaxError=max(abs(fun_cos(t)-fft_back)) %reconstruction error