|
|
  |
ФВЧ 2-го порядка, (дизайн, минимальная задержка, аналоговый, цифровой) |
|
|
|
Dec 12 2014, 12:09
|
Частый гость
 
Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548

|
Приветствую. Разрешите задать накопившиеся вопросы:
Дано: Использую сейчас цифровой ФВЧ Баттерворта 2-го порядка, чтобы давить низко-частотные вариации постоянной составляющей с датчика. Частота оцифровки 4 КГц, частоты среза 0.05-0.5 Гц.
1. Какой цифровой ФВЧ (2-го порядка) будет с наименьшей групповой задержкой? Нелинейности в полосе пропускания не нужны. Всё работает как надо, но не даёт покоя мысль, что вдруг можно лучше.
2. Текущий фильтр рассчитал в Matlab'е, но при просмотре Magnitude Response, Phase Response, Group Delay на низких частотах там аппроксимация на графиках уже не очень получается - частота среза очень маленькая. Сделал расчёт набора своих фильтров, набросав простой скрипт в Python'e. Проверил - Phase Response, Group Delay полностью совпадают с Matlab. Захотелось добавить в свою модель Magnitude Response и тут нашла коса на камень. Как расчитать аналоговый ФНЧ 2-го порядка через f и f0 - понятно. А вот какая конечная формула расчёта аналогового ФВЧ 2-го порядка через f и f0 - не могу сообразить.
3. С этим фильтром в фиксированной точке для обсчёта данных приходится оперировать 64-битными числами. Это опять же из-за очень низкой частоты среза по отношению к частоте оцифровки. Коэффициенты фильтра 27-бит, промежуточные вычисления даже в 64-бита не влазят - приходится сдвигать туда-обратно. Ресурсов пока хватает, но хотел бы знать вдруг можно проще.
4. Раньше использовал QEDesign, очень помогала в своё время, но теперь не знаю где взять сломанную версию.
Заранее спасибо.
|
|
|
|
|
Dec 12 2014, 13:36
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
1. Обычно для фильтров интересна неравномерность ГВЗ, а не ее абсолютное значение. Если вам это интересно, то для компенсации неравномерности рассчитывают всепропускающий фильтр-компенсатор, который включают последовательно с фильтром, обеспечивающим требуемую ачх. См. описание ф-ции iirgrpdelay 2. см в матлабе описание ф-ции freqz. Она используется для визуализации характеристик фильтра. В качестве входного параметра она принимает в том числе f — Frequencies, specified as a vector. f must have at least two elements. When the unit of time is seconds, f is expressed in hertz. Data Types: double т.е. вы можете сделать любое разрешение при визуализации в любом интересующем вас диапазоне 3. fdatool в матлабе позволяет интерактивно квантовать входы/выходы, коэффициенты, промежуточные результаты 4. nuhertz filter solutions. есть на фтп В качестве решения при таких соотношениях частот можно рассмотреть: y(t) = x(t) - фнч(x(t)). В качестве фнч в таком включении хорошо работает и просто реализуется каскад: CIC-дециматор 1-го порядка + CIC-интерполятор 2-го порядка, при этом R_dec = R_int. Цитата(RCray @ Dec 12 2014, 13:09) 
|
|
|
|
|
Dec 13 2014, 06:18
|
Частый гость
 
Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548

|
1. Понимаю, что вы имели ввиду, но это скорее верно для digital communication. Здесь же нужно обработать показания датчика и по результатам выдать управляющий сигнал как можно скорее - тут как раз абсолютное значение важно и чем меньше тем лучше. 2. Спасибо, посмотрю в эту сторону. 3. Попробовал я поработать с тем, что даёт Matlab и как-то перестал ему доверять. Наверно я где-то неправильно интерпретирую выданные результаты квантования и разрядности промежуточного результата. Они у меня сильно отличаются от практики. 4. Попробовал - действительно стоящий инструмент. Буду использовать как дополнительное подспорье. Спасибо за наводку. Кстати NFS сгенерировал мне и transfer function для моего ФВЧ, чем дал подсказку как её вывести для общего случая. Пробовал я y = x - ФНЧ(x), для моего случая результат получается чуть хуже, чем в лоб. Цитата(Fat Robot @ Dec 12 2014, 17:36) 
|
|
|
|
|
Dec 14 2014, 12:46
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Я решал схожую задачу так: - проектировал набор фильтров, удовлетворяющих первоочередным условиям задачи. В моем случае это были порядок и АЧХ аналогового фильтра. - Подавал на вход каждого фильтра единичный скачок (step function). - Выбирал фильтр с минимальным временем реакции. Вариантов в моем случае было не много. Средствами матлаба эту процедуру можно автоматизировать, конечно. А учитывая возможности параллельных вычислений, еще и ускорить. Найдется что-то не оптимально, но близко к. Цитата(RCray @ Dec 13 2014, 07:18)  1. Понимаю, что вы имели ввиду, но это скорее верно для digital communication. Здесь же нужно обработать показания датчика и по результатам выдать управляющий сигнал как можно скорее - тут как раз абсолютное значение важно и чем меньше тем лучше.
|
|
|
|
|
Dec 15 2014, 01:21
|
Частый гость
 
Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548

|
У меня вариантов с приемлемыми АЧХ, временем отклика и ресурсами микроконтроллера действительно не так много. Оптимальные варианты нашел - вот хотел уточнить здесь уже факультативные вопросы так сказать. Спасибо. Цитата(Fat Robot @ Dec 14 2014, 16:46)  Я решал схожую задачу так: - проектировал набор фильтров, удовлетворяющих первоочередным условиям задачи. В моем случае это были порядок и АЧХ аналогового фильтра. - Подавал на вход каждого фильтра единичный скачок (step function). - Выбирал фильтр с минимальным временем реакции. Вариантов в моем случае было не много.
Средствами матлаба эту процедуру можно автоматизировать, конечно. А учитывая возможности параллельных вычислений, еще и ускорить. Найдется что-то не оптимально, но близко к.
|
|
|
|
Guest_TSerg_*
|
Dec 15 2014, 09:11
|
Guests

|
Filter Solutions © Nuhertz Цитата(RCray @ Dec 15 2014, 09:19)  Блин ну почему авторам статей об этот сразу не написать! Это написано в любом талмуде по ЦОС L(w^2) = 1 + w^(2n);
|
|
|
|
|
Dec 16 2014, 12:12
|
Частый гость
 
Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548

|
Serg, what is L and where is cut-off frequency dependency? Цитата(TSerg @ Dec 15 2014, 12:11)  L(w^2) = 1 + w^(2n); Не могли бы вы переформулировать свой вопрос? Цитата(billidean @ Dec 15 2014, 09:58)  Добрый день. Кто-нибудь может помочь: нужна линейная формула с коэффициентами ФНЧ Баттерворта 6-го порядка с полосой 40 кГц. Далее я её буду реализовывать в ПЛИС на vhdl, поэтому она должна быть линейной с операциями +, - и *.
Заранее спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|