时域中的传递函数

时间:2014-03-07 18:57:25

标签: matlab transfer-function

我在时域(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'不是传递函数,而是一个时间相反的版本。有人可以帮我理解发生了什么吗?感谢。

1 个答案:

答案 0 :(得分:5)

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

所以:改变

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

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