频率阵列馈送FFT

时间:2013-05-08 10:40:07

标签: matlab fft frequency

我想要实现的最终目标是生成十分钟的时间序列:要实现这一目标,我必须执行FFT操作,这是我一直磕磕绊绊的一点。

通常,目标时间序列将被指定为两个术语的总和:稳定组件U(t)和波动组件u'(t)。那是

u(t) = U(t) + u'(t);

一般来说,我的代码遵循以下过程:

1)给定数据

time = 600 [s];

Nfft = 4096;

L = 340.2 [m];

U = 10 [m/s];

df = 1/600 = 0.00167 Hz;

fn = Nfft/(2*time) = 3.4133 Hz;

这意味着我的频率数组应如下布局:

f = (-fn+df):df:fn;

但是,我没有使用整个f数组,而是只使用正半数:

fpos = df:fn = 0.00167:3.4133 Hz;

2)频谱定义

我定义了某个光谱形状,应用以下关系

Su = (6*L*U)./((1 + 6.*fpos.*(L/U)).^(5/3));

3)随机阶段生成

然后,我必须生成一组具有确定分布的complex个样本:在我的情况下,随机阶段将接近标准高斯分布(mu = 0, sigma = 1)。

MATLAB我致电

nn = complex(normrnd(0,1,Nfft/2),normrnd(0,1,Nfft/2));

4)应用随机阶段

要应用随机阶段,我就这样做

Hu = Su*nn;

此时开始我的痛苦!

到目前为止,我只生成Nfft/2 = 2048个复杂样本,占fpos个内容。因此,仍然缺少占f的负半部分的内容。为了解决这个问题,我想要合并Hu真实虚构部分,以获得Huu Nfft = 4096信号Hu 1}}样本和所有真实值。

但是,通过使用此合并过程,将不会表示 0 频率顺序,因为fpos虚构部分是为{定义的{1}}。

那么,如何通过将程序保持为我迄今为止提出的程序来解释 0-strong 顺序呢?

0 个答案:

没有答案