3

我在时域中有两个信号(X 和 Y)。我正在尝试计算它们之间的传递函数。我使用了函数 tfestimate,它返回作为频率函数的传递函数和 tfestimate 估计传递函数的频率向量。它只返回正频率,因为我的信号并不复杂。我的问题是如何在时域中可视化这个传递函数。我尝试了以下代码,但返回的函数在时域中是相反的。我想知道为什么。

x = randn(16384,1); % generate random signal
gaussFilter = gausswin(100);
gaussFilter = gaussFilter / sum(gaussFilter); % Normalize.
y = conv(x,gaussFilter);
y = y(1:length(x)); % truancate the Y to be the same length as X
txy = tfestimate(x,y,1024);
tyx = conj(txy(end:-1:2)); % since tfestimate only returns for positive frequency, I estimate the result for negative frequency as the conjugate of positive frequency. 
t = ifft([txy' tyx']); % use inverse fourier to visualize transfer function in time domain.

结果't'不是传递函数,而是时间倒转的版本。有人可以帮助我了解发生了什么吗?谢谢。

4

1 回答 1

5

这是一个非常常见的错误。许多人似乎相信转置'的意思,但实际上它的意思是共轭转置。要简单地转置,您应该使用.'

所以:改变

t = ifft([txy' tyx']);

进入

t = ifft([txy.' tyx.']);
于 2014-03-07T19:49:02.190 回答