【发布时间】:2018-01-03 22:11:28
【问题描述】:
我正在尝试生成一个随机频谱,然后使用ifft 找到相应的时域向量。
我正在使用以下代码:
for i = 1:64
randNum = (rand() + 1i * rand())/sqrt(2); % Needs to be normalized by sqrt(2)
randFreq(i) = randNum;
end
randVec = ifft(randFreq);
请注意,我知道mvnrnd,但出于技术原因,我需要使用for 循环并单独生成每个元素。我也需要生成随机频谱然后使用逆变换,不能直接在时域生成随机向量。
如果我绘制随机向量 (plot(abs(randVec))) 的大小,我总是得到这种形式的图表。
n=0 总是有一个峰值,所有其他元素的量级都小得多。我希望能深入了解为什么会发生这种情况。
我的问题不是与Create random values in vector Matlab 重复,它们是完全不同的问题,只是碰巧在同一个主题上。我专门询问我的ifft 的行为。它也不是spike in my inverse fourier transform 的副本。在那个问题中,峰值可能是由数据的某些特殊性引起的,但在我的情况下,数据是完全随机的。
【问题讨论】:
-
@galoget 什么?你有没有读过我的问题?他们都询问生成随机向量,但方式完全不同......
-
@LeanderMoesinger 我看了那个问题,但我不认为这是一回事。在那个问题中,峰值可能是由他的数据的一些特质引起的,但在我的情况下,数据是完全随机的。
标签: algorithm matlab math signal-processing fft