_sda 0 7 марта, 2023 Опубликовано 7 марта, 2023 · Жалоба Понадобилось мне в одном проекте реализовать много БИХ-фильтров первого порядка с такой структурой: Его передаточная функция H(z) = (1 - z^-1) / (1 - K*z^-1); (1) Для реализации в FPGA добавил пару регистров с целью повысить максимальную тактовую: Вывел новую передаточную функцию H(z) = (1 - z^-2) / (1 - z^-2 + (1 - K)*z^-3); (2) АЧХ нового фильтра конечно немного изменилась, но в пределах допустимого. А теперь вопрос: как проверить правильность вывода формулы новой ПФ (2)? Ведь при выводе очень легко допустить ошибку и в итоге получить неправильное значение ПФ. Или только ручками несколько раз выводить новую формулу в надежде обнаружить вероятную ошибку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба В 07.03.2023 в 11:20, _sda сказал: А теперь вопрос: как проверить правильность вывода формулы новой ПФ (2)? Странный вопрос... наверно поэтому все молчат... А в чем проблема сравнить по АЧХ? Для начала... В 07.03.2023 в 11:20, _sda сказал: Вывел новую передаточную функцию H(z) = (1 - z^-2) / (1 - z^-2 + (1 - K)*z^-3); (2) АЧХ нового фильтра конечно немного изменилась, но в пределах допустимого. АЧХ то может и немного изменилась, а вот фильтр стал неустойчивым, т.к. появился полюс снаружи единичной окружности. Нельзя вот так просто взять ©® и добавить в БИХ фильтр задержек по вкусу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба В 08.03.2023 в 15:00, Самурай сказал: Странный вопрос... наверно поэтому все молчат... А в чем проблема сравнить по АЧХ? Для начала... Сравнить что с чем? Ведь я не уверен что формула (2) выведена верно. Строить АЧХ по ней вроде как рановато. В 08.03.2023 в 15:00, Самурай сказал: АЧХ то может и немного изменилась, а вот фильтр стал неустойчивым, т.к. появился полюс снаружи единичной окружности. Анализ устойчивости я не делал, т.к. не был уверен в правильности формулы (2). Подумалось что может средствами матлаба можно выводить ПФ по заданной схеме узла, вот бы и проверил свою формулу. Если такой возможности нет, конечно придётся искать другие методы проверки. p.s. А Вы когда проверяли устойчивость исходили из того что формула (2) выведена верно? Или вывели сами и у вас совпало? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба подойдёт ли для Ваших целей, с учётом необходимости зарегистрить для реализации в FPGA, вот такой фильтр? с передаточной функцией H(z) = (1 - z^-2) / (1 - K*z^-2); и такой АЧХ K1 = 1-1/10; K2 = 1-1/100; b1 = [1,0,-1]; a1 = [1,0,-K1]; b2 = [1,0,-1]; a2 = [1,0,-K2]; fvtool(b1,a1,b2,a2); или нужен именно ФВЧ и способ зарегистрить именно исходный ФВЧ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба Нет, у меня нет привязки к исходному фильтру. Действительно Ваш фильтр прекрасно ложится на FPGA, а ширину переходной области можно легко изменять. Завтра проверю его на применимость в моём проекте, мне ещё очень важна реакция на входную ступеньку (ПХ). Большое спасибо! А всё-таки вопрос о нахождении H(z) заданной схемы с помощью матлаба в общем случае остаётся открытым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба On 3/7/2023 at 11:20 AM, _sda said: Понадобилось мне в одном проекте реализовать много БИХ-фильтров первого порядка с такой структурой: Его передаточная функция H(z) = (1 - z^-1) / (1 - K*z^-1); (1) Для реализации в FPGA добавил пару регистров с целью повысить максимальную тактовую Стандартный подход основан на использовании Polyphase Decomposition: \(H(z)=\frac{1-z^{-1}}{1-K\cdot z^{-1}}=\frac{(1-z^{-1})\cdot(1+K\cdot z^{-1})}{1-K^2\cdot z^{-2}}=\frac{1-z^{-1}+K\cdot z^{-1}-K\cdot z^{-2}}{1-K^2\cdot z^{-2}}=\) \(=\frac{1-K\cdot z^{-2}-(1-K)\cdot z^{-1}}{1-K^2\cdot z^{-2}}=\frac{1-K\cdot z^{-2}}{1-K^2\cdot z^{-2}}-\frac{1-K}{1-K^2\cdot z^{-2}}\cdot z^{-1}=H_1(z^2)-H_2(z^2)\cdot z^{-1}\) Семплы на выходе обоих фильтров \(H_1(z^2)\) и \(H_2(z^2)\) вычисляются не в каждом такте, а только в четных тактах клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба В 08.03.2023 в 18:44, blackfin сказал: Стандартный подход основан на использовании Polyphase Decomposition: Буду разбираться, большое спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба В 08.03.2023 в 17:06, _sda сказал: Сравнить что с чем? Ведь я не уверен что формула (2) выведена верно. Строить АЧХ по ней вроде как рановато. Сравнить АЧХ выведенной формулы (в Матлабе) и соответствующего ей блока (в Симулинке). Тем более, если не уверены... В 08.03.2023 в 17:06, _sda сказал: Подумалось что может средствами матлаба можно выводить ПФ по заданной схеме узла, вот бы и проверил свою формулу. Ну можно вот так например: П.С. Уважаемый blackfin немного сократил промежуточные выкладки, не показав, что первым этапом и числитель и знаменатель умножаются на (1+K*z^-1), что и дает в знаменателе (1-K^2*z^-2)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба В 08.03.2023 в 18:58, Самурай сказал: Ну можно вот так например: О, большое спасибо! Поизучаю эту функцию, никогда не приходилось с ней работать. В 08.03.2023 в 18:58, Самурай сказал: П.С. Уважаемый blackfin немного сократил промежуточные выкладки, не показав, что первым этапом и числитель и знаменатель умножаются на (1+K*z^-1), что и дает в знаменателе (1-K^2*z^-2)... Не, ну это было видно с первого взгляда... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 9 марта, 2023 Опубликовано 9 марта, 2023 · Жалоба В 08.03.2023 в 18:58, Самурай сказал: Ну можно вот так например: Нет, не выходит каменный цветок. Нет ли у Вас примера как от рисунка перейти к передаточной функции с помощью tf и feedback? Например для моей второй картинки? Думаю тема интересна не только мне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 9 марта, 2023 Опубликовано 9 марта, 2023 · Жалоба В 09.03.2023 в 11:07, _sda сказал: Нет, не выходит каменный цветок. Нет ли у Вас примера как от рисунка перейти к передаточной функции с помощью tf и feedback? Например для моей второй картинки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 9 марта, 2023 Опубликовано 9 марта, 2023 · Жалоба Большое спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться