【发布时间】:2014-10-23 19:37:41
【问题描述】:
我正在尝试对一些实验数据使用 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)
我做错了什么? 提前谢谢你
【问题讨论】:
-
有趣的问题...我想我会在 ifft 的结果上使用
real或abs以获得真正的结果。如果您还没有尝试过 -
已经尝试过但没有工作..而且我不确定丢弃虚部是个好主意,因为它不可忽略(就数量级而言),但实际上我不是该领域的专家
-
您是否正在对移位的频谱进行检查?如果是这样,请使用
ifft(ifftshift( ... ))。 -
我也尝试过,但它不起作用。
-
我尝试的第一件事是移动 new_amp 信号以使其相对于 0 对称(因此,对于 >0 和
标签: matlab fft trigonometry ifft time-frequency