Я пытаюсь использовать команду filterfilt с кодировщиком MATLAB, но у меня проблемы.Matlab Coder и filterfilt()
Если я запускаю программу обычным способом все работает нормально, но когда я пытаюсь построить для c-кода, отображается следующее сообщение об ошибке: «Данные должны иметь длину более чем в 3 раза по порядку фильтра». Я где-то читал, что это может быть потому, что функция filterfilt должна знать весь сигнал (с течением времени), и это может быть несовместимо с кодером Matlab. Это, однако, кажется, неверно, так как списки MATLAB filtfilt в качестве поддерживаемого функции для генерации кода - http://www.mathworks.se/help/toolbox/signal/ug/br7exek-1.html
Мой вызов является:
y_filt = filtfilt (Ь, а, у);
Мои переменные непосредственно перед вызовом имеют следующие свойства:
Имя Размер .......... Bytes ...... Class
в ...... 1x9 ........... 72 ........... двойной
b ...... 1x9 ........... 72 ... ........ двойного
у ...... 1499400x1 11995200 двойного
кто-нибудь есть предложение о том, как решить эту проблему?
Казалось бы, вы доказали, что это не 'filtfilt' функции, вы можете дать больше кода или более описание ошибки? – macduff
Ну, мне трудно понять, что еще может быть. Для получения (b, a) масло выполняется непосредственно перед [b, a] = маслом (8,0.045, высокий). –