Передаточная функция во временной области
У меня есть два сигнала во временной области (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 ответ
Это очень распространенная ошибка. Многие люди, кажется, верят '
означает транспонирование, но на самом деле это означает сопряженное транспонирование. Чтобы просто транспонировать, вы должны использовать .'
Итак: поменяй
t = ifft([txy' tyx']);
в
t = ifft([txy.' tyx.']);