Перейти к содержанию
    

Определить выходной сигнал, зная передаточную функцию

Привет!

Задача следующая. У меня есть набор экспериментальных данных x(t) и y(t). По этим данным я в Matlab могу получить передаточную функцию системы (коэффициенты). Допустим система с высокой достоверностью описывается моделью второго порядка с ПФ: W(s) = (Kp * e^-sL) / ((sT1 + 1) * (sT2+1)).

Теперь мне нужо реализовать цифровой фильтр с этой ПФ, на входе которого будет некий сигнал x(t), а на выходе y(t).

Подскажите какие шаги нужно выполнить? В целом, для стандартных моделей 1-ого и 2-ого порядка думаю должны быть готовые решения (уравнения), как они выглядят, где почитать?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно говоря, не совсем понятно, что именно вы спрашиваете, вы же уже сами все шаги назвали. По данным получить ПФ, потом ее реализовать и по входным данным получить выходные. Какие именно шаги вы спрашиваете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что я знаю только в общих чертах, а вот как конкретно это делать на практике не в курсе.

Подробнее.

У меня есть массивы данных x(t) и y(t), допустим 200 точек с дискретом 5 мс. Я их загоняю в Matlab в System Identification Tool. Выбираю тип процесса Process Models, 2 полюса + интегратор. Matlab выдает мне коэффициенты Kp, T1, T2, L.

Дальше мне необходимо реализовать функцию на c/c++, на вход которой я буду давать массив значений x(t), а на выходе буду получать y(t) на основе полученной ПФ. Как мне перейти от Matlab-а к коду?

Я на пальцах вроде понимаю, что это либо фильтр (КИХ, БИХ) должен быть, либо дифф.ур. нужно численно решать. Вот и нужны подсказки по дальнейшим шагам.

Изменено пользователем Rev0.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот и нужны подсказки по дальнейшим шагам.

гугл на фразу "синтез цифрового фильтра на основе аналогового прототипа в матлаб" выдает неплохую доку по синтезу ЦФ (на русском) в первой ссылке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если линейное, то можно в частотной области:

 

F(y(t)) = F(x(t)) * F(k(t)), F - комплексное фурье, k - искомая импульсная характеристика

Соотв F(k(t)) = F(y(t)) / F(x(t)).

Далее надо дополнить эту функцию, посколку она будет с выбросами и неопределенностями из-за нулей

Ну и след сигнал, например g(t) будет иметь отклик d(t):

F(d(t)) = F(g(t)) * F(k(t))

Останется взять обратное фурье

 

Во временной:

Необходимо решить матричное уравнение:

Y = K * X

Вот тут могу наврать: K = Y * inv(X)

Или наоборот.

Результат - отчеты искомой импульсной

 

В дискретах будет так di = sum_po_j_ot_0_do_N(g(i-j)*ki)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...