检查功率谱

信息处理 matlab fft 频谱
2022-01-24 03:21:25

我的问题很容易理解和处理。

我有一个一维数组,F_11代表一个目标功率谱。如下图所示

在此处输入图像描述

然后,我开始生成一个u体现 的属性的时间序列F_11,如下所示

nn = complex(normrnd(0,1,[1,1000]),normrnd(0,1,[1,1000]));
u = abs(fftn(fftshift(F_11.*nn)));

最后,只是为了检查你确实复制了一个频谱F_11,我尝试按如下方式倒退

ps =  abs(ifftn(ifftshift(u)));

但是,在绘图时ps,它并不完全匹配F_11

在此处输入图像描述

在高频区,ps向上漂移,相当诡异。

你介意勾勒出我程序中的缺陷吗?

2个回答

您的u变量只是 FFT 的大小,而不是代表 FFT 的实际复数。尝试删除abs()fromu然后进行 IFFT。

你能先产生白噪声,然后用你想要的功率谱过滤它吗?wgn您可以使用1生成高斯白噪声