У меня есть код MATLAB, который фильтрует входной сигнал, используя filter
:
CUTOFF = 0.05;
FS = 5000;
[b, a] = butter(1, CUTOFF / (FS / 2), 'high');
% b = [0.99996859, -0.99996859]
% a = [1.0, -0.99993717]
dataAfter = filter(b, a, dataBefore);
Я пытаюсь преобразовать этот код в С#. У меня уже есть функция butter
, которая работает довольно быстро, но теперь я застрял на преобразовании функции filter
.
Я прочитал документацию по фильтру MATLAB и Python Scipy.signal filter, но есть термин, присутствующий в определении передаточной функции, которого я не понимаю.
Вот определение «рациональной передаточной функции» из связанной документации:
b[0] + b[1]z^(-1) + ... + b[M]z^(-M)
Y(z) = _______________________________________ X(z)
a[0] + a[1]z^(-1) + ... + a[N]z^(-N)
Поправьте меня, если я ошибаюсь, но z
— это текущий элемент входных данных, а Y(z)
— это выходные?
Если вышесказанное верно, что такое X(z)
в этом уравнении?
Я хочу понять это, чтобы реализовать его на С#, если есть эквивалентный вариант, пожалуйста, просветите меня.
X
. - person Wolfie   schedule 25.05.2018