Анализ цифровых фильтров программа. Цифровые фильтры. Методы реализации и синтеза фильтров. Общие сведения о синтезе ЦФ

В предлагаемом цикле «Моделирование ЦОС цифровой обработки сигналов в MATLAB» предыдущие статьи были посвящены моделированию цифровых фильтров (ЦФ), КИХ и БИХ, в том числе с фиксированной точкой (ФТ), программными средствами MATLAB.

Литература

  1. Ingle V., Proakis J. Digital Signal Processing Using MATLAB. Second Edition. Thomson, 2006.
  2. Оппенгейм А., Шафер Р. Цифровая обработка сигналов. М.: Техносфера, 2006.
  3. Сергиенко А. Б. Цифровая обработка сигналов. 2-е изд. СПб.: ПИТЕР, 2006.
  4. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б. Основы цифровой обработки сигналов. 2-е изд. СПб.: БХВ-Петербург, 2005.
  5. Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в MATLAB. СПб.: БХВ-Петербург, 2008.
  6. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 1. Синтез оптимальных (по Чебышеву) КИХ-фильтров программными средствами MATLAB // Компоненты и технологии. 2008. № 11.
  7. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 2. Синтез оптимальных БИХ-фильтров программными средствами MATLAB // Компоненты и технологии. 2008. № 12.
  8. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 3. Описание структур КИХ- и БИХ-фильтров в MATLAB // Компоненты и технологии. 2009. № 1.
  9. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 4. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами MATLAB: анализ характеристик КИХ-фильтров // Компоненты и технологии. 2009. № 2.
  10. Солонина А. Моделирование цифровой обработки сигналов вMATLAB. Часть 5. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами MATLAB: анализ характеристик БИХ-фильтров // Компоненты и технологии. 2009. № 3.
  11. Солонина А. Моделирование цифровой обработки сигналов вMATLAB. Часть 6. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами MATLAB: квантование воздействия и вычисление реакции // Компоненты и технологии. 2009. № 4.
1 В группе Current Filter Information этому соответствует сообщение: Source-Designed.
2 В группе Current Filter Information этому соответствует сообщение: Source-Imported.

Проектирование цифровых фильтров

4.1.1. Основные определения проектирования ЦФ

Под цифровым фильтром (ЦФ) в широком смысле понимают любую цифровую систему, которая осуществляет извлечение цифрового сигнала либо его параметров из существующей на входе системы смеси сигнала с помехой.

Цифровой фильтр в узком смысле представляет собой частотно-избирательную цепь, обеспечивающую селекцию цифровых сигналов по частоте.

К цифровым фильтрам в широком смысле относят:

Амплитудные и фазовые корректоры частотных характеристик;

Дифференциаторы;

Преобразователи Гильберта;

Согласованные фильтры.

К цифровым фильтрам в узком смысле относят частотно-избирательные фильтры:

Фильтр нижних частот (ФНЧ);

Фильтр верхних частот (ФВЧ);

Полосовой фильтр (ПФ);

Режекторный фильтр (РФ).

Цифровые фильтры могут быть реализованы:

Аппаратно;

Программно;

Аппаратно-программно.

Аппаратная реализация подразумевает использование функциональных элементов в виде регистров, сумматоров, умножителей, устройств памяти, логических элементов.

Программная реализация означает, что фильтр представлен в виде программы, написанной на языке программирования.

Аппаратно-программная реализация означает выполнение части функций фильтра аппаратно (АЦП, ЦАП, умножение, прием/передача данных) при программном выполнении другой части функций.

Под проектированием ЦФ понимают процесс, в результате которого предъявляется программа или цифровое устройство, отвечающее заданным требованиям.

Проектирование ЦФ включает в себя этапы:

1. Синтез.

2. Разработка алгоритмов вычислений.

3. Проверка моделированием.

4. Практическая реализация и отладка.

Результатом синтеза является структурная схема фильтра и набор коэффициентов и разностных уравнений и передаточных функций.

Разработка алгоритма вычислений зависит от разрядности регистров, количества аккумуляторов процессора, возможности распараллеливания операций, наличия устройств перемножения и накопления. Конечный алгоритм должен обеспечить функционирование фильтра в реальном масштабе времени при минимальных потерях качества.

Проверка моделированием осуществляется в нереальном масштабе времени по стандартным сигналам с использованием программных эмуляторов. При этом устраняются логические ошибки и проверяется соответствие фильтра заданным характеристикам.

Практическая реализация и отладка осуществляется в реальном времени с помощью отладочных модулей.



Общие сведения о синтезе ЦФ

В процессе синтеза выполняются следующие действия:

Задаются требования к фильтру;

Рассчитываются коэффициенты передаточной функции или разностного уравнения;

Формируется структурная схема ЦФ.

Требования к ЦФ могут задаваться либо во временной, либо в частотной области в зависимости от назначения фильтра.

Требования во временной области задаются как правило к согласованным фильтрам через требуемую импульсную характеристику.

Требования в частотной области задаются как правило к частотно-избирательным фильтрам.

Например, требования к полосовому фильтру характеризуются пятью частотными полосами (рисунок 2.1):

Центральной полосой пропускания (ПП);

Двумя полосами задержания (ПЗ1, ПЗ2);

Двумя переходными полосами.

Рисунок 2.1 – диаграмма требований к АЧХ ПФ

На рисунке 1 обозначены:

Граничная частота первой полосы задержания ПЗ1, ширина которой ;

Левая частота среза полосы пропускания;

Правая частота среза полосы пропускания, ширина полосы пропускания ;

Граничная частота второй полосы задержания ПЗ2, ширина которой ;

Переходные полосы 1 и 2 имеют ширину , , соответственно.

Величина характеризует максимально допустимое отклонение АЧХ от 1 в пределах полосы пропускания. Величина характеризует максимально допустимое отклонение АЧХ от 0 в пределах полос задержания. Требования к характеристикам АЧХ в пределах переходных полос обычно не задаются.

Существуют следующие разновидности методов синтеза:

Прямые методы синтеза;

Методы синтеза с использованием аналогового прототипа.

Прямые методы делятся на две категории:

Оптимальные методы;

Субоптимальные методы.

В оптимальных методах численными методами ищется минимум заданной функции качества. В качестве минимизируемой меры отклонения характеристики фильтра от заданной используется норма ошибки:



. (2.1)

Субоптимальные методы позволяют упростить вычисления за счет учета специфики задачи.

Делаю тут проект и возникла вот какая проблема. Получаю данные с АЦП (дельта-сигма) микросхемы в которую встроен контроллер и фильтр, но этот фильтр имеет довольно убогую АЧХ, в итоге идёт завал по ВЧ от 60Гц и далее. Выглядит это примерно так:

Т.е. такая неравномерность АЧХ нас явно не устраивает (не проходит по техническим требованиям), правда есть возможность повысить частоту дискретизации с 250Гц до 500Гц, чтобы выровнять АЧХ, однако тогда увеличивается объём данных который ещё нужно будет усреднять, что скажется на производительности (проект на STM32F103VE) системы в целом и на общем потреблении энергии (батарейное питание). Но есть и другой путь.

Можно выровнять АЧХ с помощью параметрического цифрового фильтра, в данном случае ВЧ. То есть это тоже самое что эквалайзер, мы поднимаем одни частоты, а другие не трогаем (или заваливаем). Такой метод конечно хорош, но т.к. мы пытаемся восстановить информацию, часть которой была уничтожена другим фильтром на входе (тот что в микросхеме), неизбежно увеличится уровень помех на высоких частотах, т.к. вместе с сигналом мы усилим также и их, но вот насколько?

Итак, идея решения проблемы есть, осталась реализация. Что мы помним о цифровых фильтрах (к тем кто не имел с ними практики) из университетского курса? Разве что такие слова как свёртка, Z-преобразование, импульсная характеристика и т.д. В общем не понятно с какого конца подходить даже, вроде надо какие-то коэффициенты рассчитывать, но что и зачем непонятно, поднимать курс и сидеть с книгами по ЦОС (есть одна на 800 страниц) нет времени, проект стоит и надо что-то делать, и быстро.

Поэтому немного погуглив находим вот такой ресурс в интернете. Это сайт по расчёту цифровых фильтров (и не только!) он-лайн, а сделал его некий Dr Anthony J. Fisher.

Итак задаёмся требованиями которые нам нужны и вводим на сайте. Во-первых, нам нужна плавная характеристика, поэтому однозначно Баттерворт первого порядка ВЧ (highpass). Во-вторых, sample rate, т.е. количество преобразований АЦП в секунду, или частота дискретизации, у нас это 250Гц. Вводим. И наконец, в-третьих, частота среза (-3дБ) - 50Гц, т.к. фильтр на входе режет примерно здесь. Нажимаем отправить и получаем вот такую характеристику нашего будущего фильтра:


Красным представлен график амплитуды от частоты Найквиста, синим изменение фазы. 0,5 соответствует половине частоты дискретизации.

Также получаем С код с рассчитанными коэффициентами:
#define NZEROS 1 #define NPOLES 1 #define GAIN 1.726542528e+00 static float xv, yv; static void filterloop() { for (;;) { xv = xv; xv = next input value / GAIN; yv = yv; yv = (xv - xv) + (0.1583844403 * yv); next output value = yv; } }
Но это только фильтр, помним, что нам нужно усилить частоты от 50Гц и выше, чтобы выпрямить АЧХ, и эта функция в таком виде нам не поможет, поэтому путём нехитрых манипуляций приводим функцию к такому виду:
#define NZEROS 1 #define NPOLES 1 #define GAIN 1.726542528e+00F #define OUR_GAIN 2.1F // наш коэф. усиления фильтра float xv, yv; int void filterloop(int data) { xv = xv; xv = (float)data / GAIN; yv = yv; yv = (xv - xv) + (0.1583844403F * yv); return (int)((yv0 * OUR_GAIN) + (float)data); }

Всё. Чтобы использовать фильтр кидаем данные в параметры функции, а возвращает она отфильтрованные данные. Коэффициент усиления OUR_GAIN подбираем опытным путём, снимая показания с АЦП и замеряя АЧХ.

Таким образом мне удалось поднять АЧХ практически без дополнительной нагрузки на контроллер и мой проект прошёл по техническим требованиям (в медицинской области они весьма не хилые). Я боялся, что сильно возрастёт уровень помех, но он увеличился с 4-5мкВ примерно до 6-8мкВ, что нас устраивает. В заключении могу порекомендовать ещё одну бесплатную программу по расчёту цифровых фильтров - WinFilter, скачать её можно . Насколько она работоспособна не знаю, не проверял, но она может выдавать код в VHDL (и в С естественно), что наверняка пригодится для ПЛИС. Также есть программа от Texas Instuments, по расчёту коэффициентов цифровых фильтров, называется она TIBQ . Всё. Удачи в проектировании цифровых фильтров.

Профессиональный программный пакет для создания и анализа активных/пассивных аналоговых, а также цифровых электрических фильтров.

Filter Solutions имеет простой и понятный интерфейс, представляющий собой набор отдельных окон для задания требуемых значений проектируемого фильтра и отображения получившихся результатов и их характеристик. Софт имеет свое собственное вычислительное ядро. Оптимизированные расчетные алгоритмы позволяют выполнять сложные математические операции за короткие промежутки времени.

Программа Filter Solutions способна строить стандартные фильтры (эллиптический или Кауэра, Бесселя, Баттерворта, Гаусса, Лежандра, Чебышева 1 и 2 рода, согласованный и некоторые другие), а также уникальные фильтры с гибко настраиваемыми параметрами, со свободно заданной частотной характеристикой для создания цепей фазовой и амплитудной коррекции. Программа автоматически строит передаточную функцию, показывает полюса и нули, а также генерирует временные характеристики схемы при воздействии на нее импульсом. Для быстрого создания фильтра предназначен мастер, которому требуются лишь наиболее важные данные о разработке.

Также существует возможность указывать частотные характеристики проектируемого устройства, нули и полюса. Filter Solutions самостоятельно установит порядок фильтра и требуемую топологию. Программа позволяет разрабатывать фильтры в полосковом/микрополосковом исполнении. Расчет будет учитывать потери в металлизации и в диэлектрике подложки.
Особенностью программного пакета является предоставление нескольких возможных способов решения задачи в виде различных схемотехнических решений и параметров отдельных элементов. В Filter Solutions осуществляется контроль технологической реализуемости схемы. Программа укажет на возможные проблемы и предложит альтернативные варианты, обладающие несколько худшими параметрами, но возможными для исполнения.

Возможности Filter Solutions также доступны в виде версий Filter Light и Filter Free, которые имеют более низкую стоимость по сравнению с полной версией программы. Набор функций в них несколько упрощен, особенно в Filter Free, представляющей собой минимально доступную комплектацию.
Системные требования к данному софту небольшие. Программа распространяется в виде обычной и Portable версии, работающей с любого внешнего накопителя.

Filter Solutions является разработкой компании Nuhertz Technologies http://www.nuhertz.com/ . Ее штаб квартира расположена в городе Фениксе (США, штат Аризона). Первоначально пакет был выпущен в 1999 году. С тех пор он продолжает развиваться и обрастать все новыми функциями и возможностями. Разрабатываемое компанией программное обеспечение используется инженерами-конструкторами в различных отраслях науки и промышленности, таких как связь и коммуникации, военная электроника, медицина, приборостроение, нефтяная и газовая сфера, проектирование антенн. Nuhertz Technologies также является создателем Statmat и Spectra – программ для статистического анализа и цифрового представления данных.

Язык интерфейса Filter Solutions только английский. Рабочая платформа рассматриваемой программы – Windows 9x/Me/2K/NT/XP/Vista/7.

Понравилось? Лайкни нас на Facebook