MATLAB R2020a теперь доступен. Функция butter расширена в R2020a для поддержки генерации кода с непостоянными входами. Сгенерированный код может использоваться для получения коэффициента любого фильтра действительного порядка и частот среза во время выполнения.
Например, рассмотрим приведенный ниже код, который дает коэффициенты фильтра цифрового фильтра верхних частот:
function[num,den] = hpbutter(n,w)
%#codegen
[num,den] = butter(n,w,'high');
Теперь мы можем сгенерировать код с непостоянными входами следующим образом:
codegen hpbutter -args {coder.typeof(0),coder.typeof(0)}
Вы можете передать любой допустимый порядок фильтра (n) и частоту среза (w) в сгенерированный MEX.
[число, день] = hpbutter_mex (2,0,3)
число =
0.5050 -1.0100 0.5050
день =
1.0000 -0.7478 0.2722
[num, den] = hpbutter_mex (3,0.4)
num =
0.2569 -0.7707 0.7707 -0.2569
den =
1.0000 -0.5772 0.4218 -0.0563