时域中的传递函数

Jin*_* Li 3 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.
Run Code Online (Sandbox Code Playgroud)

结果't'不是传递函数,而是一个时间相反的版本.有人可以帮我理解发生了什么吗?谢谢.

Lui*_*ndo 5

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

所以:改变

t = ifft([txy' tyx']);
Run Code Online (Sandbox Code Playgroud)

t = ifft([txy.' tyx.']);
Run Code Online (Sandbox Code Playgroud)