【问题标题】:transfer function in time domain时域传递函数
【发布时间】:2014-03-07 18:57:25
【问题描述】:

我在时域中有两个信号(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'不是传递函数,而是时间倒转的版本。有人可以帮助我了解发生了什么吗?谢谢。

【问题讨论】:

    标签: matlab transfer-function


    【解决方案1】:

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

    所以:改变

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

    进入

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 2017-08-06
      • 2021-12-13
      • 2018-04-17
      • 2018-06-26
      • 2011-03-02
      相关资源
      最近更新 更多