0

我试图在一些实验数据上使用 MATLAB 中的 ifft 函数,但我没有得到预期的结果。

我有对数正弦扫描激励的频率数据,因此我知道幅度 [g's]、频率 [Hz] 和相位(这是 0,因为该点是一个引导点)。

我试图将它直接提供给 ifft 函数,但结果是我得到了一个复数(我期待一个真实的结果,因为它是一个时间信号)。我认为问题可能是信号不对称,因此我以这种方式计算了对称部分(在“for”循环中)

x(i) = conj(x(mod(N-i+1,N)+1))

我将它添加到幅度矢量的末尾。

new_amp = [amplitude x];

这样,新的幅度向量是对称的,但现在我也将该向量的维度加倍,这意味着我也必须将频率向量的维度加倍。

无论如何,我将新的幅度矢量输入到 ifft,但我仍然没有得到对数正弦扫描,尽管这次输出如预期的那样是真实的。

为了计算绘图的时间 [s],我使用了以下公式:

t = 60*3.33*log10(f/f(1))/(sweep rate) 

我究竟做错了什么?先感谢您

4

1 回答 1

1

如果您想从指定的频率值创建相同的时域信号,您应该考虑很多细节。在我看来,这是一个非常复杂的问题,我认为它需要非常强大的数学背景。

但我认为您可能会处理一些细节以获得更可接受的结果:

1- 时间向量应基于频率步长和最大值的采样等间距。

t = 0:1/fs:N/fs;
where: *N* is the length of signal in frequency domain, and *fs* is twice the 
highest frequency in frequency domain.

2-我认为你应该在频率区间上有某种对数相位。

3-您的频域信号必须均匀才能在时域具有真实信号。

我希望这会有所帮助,即使有人可以改进它。

于 2014-11-21T12:28:28.563 回答