Алгоритмы узкополосной адаптивной фильтрации на основе адаптивных гребенчатых БИХ-фильтров тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Горюшкин Руслан Сергеевич

  • Горюшкин Руслан Сергеевич
  • кандидат науккандидат наук
  • 2023, ФГБОУ ВО «Рязанский государственный радиотехнический университет имени В.Ф. Уткина»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 166
Горюшкин Руслан Сергеевич. Алгоритмы узкополосной адаптивной фильтрации на основе адаптивных гребенчатых БИХ-фильтров: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГБОУ ВО «Рязанский государственный радиотехнический университет имени В.Ф. Уткина». 2023. 166 с.

Оглавление диссертации кандидат наук Горюшкин Руслан Сергеевич

Введение

Глава 1. Узкополосная фильтрация с использованием цифровых гребенчатых БИХ-фильтров

1.1 Постановка задачи проектирования узкополосного БИХ-фильтра

1.1.1 Проектирование узкополосного БИХ-фильтра

1.1.2 Проектирование узкополосного БИХ-фильтра на основе гребенчатого цифрового фильтра

1.2 Структуры адаптивных фильтров в классе БИХ-цепей

1.2.1 Прямая форма реализации

1.2.2 Каскадная и параллельные формы реализации

1.2.3 Решетчатая структура

1.3 Алгоритмы адаптивной фильтрации в классе БИХ-цепей

1.3.1 Методы минимизации выходной ошибки

1.3.2 Методы уравнения ошибок

1.3.3 Метод Cтиглица-МакБрайда

1.4 Выводы

Глава 2. Гребенчатые БИХ-фильтры в задачах узкополосной адаптивной фильтрации

2.1 Исследование узкополосного БИХ-фильтра в условиях ограниченной разрядности представления коэффициентов

2.2 Многоскоростные системы адаптивной фильтрации узкополосных процессов на основе гребенчатого БИХ-фильтра

2.3 Адаптивный цифровой гребенчатый БИХ-фильтр

2.4 Реализация адаптивного сглаживающего фильтра

2.5 Выводы

Глава 3. Исследование применения гребенчатых БИХ-фильтров в задачах адаптивной узкополосной фильтрации

3.1 Постановка задачи проектирования узкополосного БИХ-фильтра

3.2 Исследование многоскоростной системы адаптивной фильтрации узкополосных процессов на основе БИХ-фильтра

3.2.1 Задачи прямого и обратного моделирования

3.2.2 Задача выравнивания канала

3.2.3 Задача линейного предсказания узкополосного процесса

3.3 Исследование применения адаптивных гребенчатых БИХ-фильтров

3.3.1 Задачи прямого и обратного моделирования

3.3.2 Задача выравнивания канала

3.3.3 Задача линейного предсказания узкополосного процесса

3.4 Выводы

Глава 4. Реализация имитационной модели для исследования алгоритмов адаптивной узкополосной фильтрации

4.1 Разработка имитационной модели

4.1.1 Общая структура проекта имитационной модели

4.1.2 Модули алгоритмов адаптации

4.1.3 Вспомогательные модули

4.2 Разработка модуля адаптивного узкополосного БИХ-фильтра на ПЛИС

4.2.1 Подход к реализации алгоритма адаптивной фильтрации на ПЛИС

4

4

Выбор разрядности коэффициентов Общая схема тестирования модуля

134

4.3 Выводы

Заключение

Список сокращений

Список литературы

Приложение

Приложение

Приложение

Приложение

Приложение

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Алгоритмы узкополосной адаптивной фильтрации на основе адаптивных гребенчатых БИХ-фильтров»

Введение

Актуальность темы исследования. Методы и алгоритмы адаптивной цифровой обработки сигналов (ЦОС) являются объектом пристального внимания исследователей уже более пяти десятилетий. Первые работы, посвященные адаптивным алгоритмам, были представлены в 50-е годы XX века. В 80-е годы произошёл значительный рост количества исследований и началось активное применение данных алгоритмов. В это время появилось большое количество публикаций, наиболее известные из которых принадлежат, С. Стринзу, Б. Уидроу [1], К. Ф. Коуэну, П.М. Гранту [2] С. Хайкину [3]. Этот рост можно объяснить появлением первых инструментов разработки и фундаментальных книг в этом направлении исследований. Начиная с 90-х годов XX века с увеличением темпов развития элементной базы ускорилось и развитие алгоритмов цифровой адаптивной фильтрации. На сегодняшней день существует большое количество трудов отечественных и зарубежных авторов, которые систематизируют накопленные ранее теоретические и практические знания. Среди авторов можно выделить работы П. Диниза [4], М. Белланже [5], А. Саида [6], В.И. Джигана [7] и других.

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

Структура адаптивного фильтра может относиться к одному из двух классов цепей: с конечной импульсной характеристикой (КИХ) или с бесконечной импульсной характеристикой (БИХ). Выбранный класс влияет на вычислительную сложность и скорость сходимости процесса адаптации. Адаптивные фильтры в классе КИХ-цепей реализуют нерекурсивную передаточную функцию без обратной связи. Для данных реализаций выходной сигнал является линейным скалярным произведением входного сигнала с

настраиваемыми коэффициентами фильтра. Адаптивные БИХ-фильтры характеризуются наличием настраиваемых нулей и полюсов. Соответственно, в большинстве алгоритмов производится адаптация коэффициентов числителя и знаменателя. Адаптивные БИХ-фильтры имеют ряд преимуществ перед адаптивными КИХ-фильтрами, основным из которых является сокращение вычислительной сложности. При равном количестве коэффициентов, частотный отклик БИХ-фильтра точнее аппроксимирует желаемую характеристику. Следовательно, при использовании адаптивного БИХ-фильтра требуется настройка меньшего количества коэффициентов, особенно в том случае, когда эталонная модель имеет как нули, так и полюсы и/или высокий коэффициент прямоугольности [8]. Задачи, требующие сотен, а иногда тысяч настраиваемых коэффициентов КИХ-фильтра, могут быть решены адаптивным БИХ-фильтром значительно меньшего порядка. Примерами таких задач являются эквалайзеры для спутниковых систем и систем мобильной передачи данных, а также акустические эхоподавителями и др.

Наряду с преимуществами, которые свойственны адаптивным БИХ-фильтрам, существует ряд недостатков: возможная неустойчивость адаптивного фильтра, медленная сходимость алгоритмов, наличие на поверхности ошибок локальных минимумов [4].

Наиболее ярко недостатки БИХ-фильтров проявляют себя при реализации устройств с высокими показателями узкополосности и прямоугольности. В то же время стоит отметить, что в современных системах узкополосной цифровой фильтрации сигналов широкое применение нашёл подход, подразумевающий использование многоскоростной фильтрации. Такой подход может быть использован при проектировании как фильтров в классе КИХ-, так и БИХ-цепей. Многоскоростная фильтрация основана на использовании вторичной дискретизации обрабатываемого сигнала. Фундаментом для реализации многоскоростных систем являются операции децимации и интерполяции.

Исследованиям в области многоскоростной обработки сигналов посвящено большое количество работ, среди которых труды Р. Крошье, Л. Рабинера, М. Беланже, К. Ли, П. Вадьянатхана, Е. Хэнслера, П. Диниза, В.В. Витязева и др. Построение узкополосных фильтров с использованием подходов многоскоростной фильтрации позволяет значительно снизить вычислительную сложность для КИХ-фильтров, увеличить стабильность БИХ-фильтров.

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

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

Для достижения поставленной цели необходимо решить ряд задач, среди которых:

1) анализ устойчивости цифровых гребенчатых (ЦГФ) БИХ-фильтров в условиях ограничения разрядности представления коэффициентов;

2) анализ существующих алгоритмов и структур построения цифровых адаптивных фильтров в классе БИХ-цепей;

3) анализ подходов и методов построения систем фильтрации на основе многоскоростной обработки сигналов в классе БИХ-цепей;

4) разработка алгоритмов для решения задачи узкополосной фильтрации в классе БИХ-цепей с использованием многоскоростной обработки сигналов;

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

Объект исследования - цифровые гребенчатые фильтры и адаптивные многоскоростные системы в классе цепей с бесконечной импульсной характеристикой.

Предмет исследования - влияние гребенчатой структуры БИХ-фильтров на устойчивость к неточному представлению коэффициентов, на точность и скорость сходимости алгоритмов адаптации коэффициентов фильтров при решении задач узкополосной цифровой адаптивной обработки сигналов.

Методологические и теоретические основы исследования основаны на методах математической статистики, статистической радиотехники и имитационного моделирования алгоритмов цифровой обработки сигналов. Научная новизна исследования

1. Проведен анализ устойчивости узкополосных гребенчатых БИХ-фильтров, показана связь устойчивости гребенчатого и базового фильтров в условиях неточного представления коэффициентов.

2. Проведён анализ существующих алгоритмов для адаптивной фильтрации в классе БИХ-цепей, а также реализованы математические модели для ряда классических алгоритмов и структур.

3. Предложены алгоритмы адаптивных многоскоростных фильтров с последовательным включением цифрового адаптивного гребенчатого (АЦГФ) и сглаживающего фильтров (СФ).

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

5. Разработано программное обеспечение для персонального компьютера на языке Python, позволяющее исследовать и сравнивать эффективность работы как классических, так и разработанных в ходе выполнения данной работы алгоритмов.

Основные положения, выносимые на защиту

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

2. Алгоритмы узкополосной адаптивной обработки сигналов на основе адаптивного гребенчатого и сглаживающего фильтров позволяют уменьшить уровень среднего квадрата ошибки (СКО) после обучения системы до 18 дБ в сравнении с известными алгоритмами.

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

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

Практическая ценность исследования. Проведённые исследования методов узкополосной фильтрации с использованием цифровых гребенчатых БИХ-фильтров позволяют сформировать алгоритмы построения устойчивых узкополосных фильтров в условиях ограниченной разрядности представления коэффициентов.

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

Реализованный программно-аппаратный комплекс может быть использован для математического моделирования работы представленных в

исследовании адаптивных и неадаптивных БИХ-фильтров с различными параметрами в ряде областей их применения. Основываясь на результатах моделирования, возможно принять решение о выборе параметров цифрового фильтра для решения конкретной задачи. Примерами таких задач является узкополосная фильтрация с использованием фильтров с неизменяемыми коэффициентами в условиях ограничения разрядности коэффициентов, а также адаптивная узкополосная фильтрация в задачах прямого и обратного моделирования, предсказания сигнала, очистки узкополосного сигнала от шума, а также сигнала от узкополосной помехи.

Реализация результатов работы. Основные теоретические и практические результаты работы внедрены в учебный процесс в Рязанском государственном радиотехническом университете им. В.Ф. Уткина в лекционных курсах «Цифровая обработка сигналов», «Цифровая обработка сигналов и сигнальные процессоры в СПР».

Достоверность полученных в ходе выполнения диссертационной работы научных и практических результатов определяется:

• соответствием ожидаемых теоретических результатов с результатами, полученными в ходе имитационного моделирования;

• обоснованностью выбора исходных данных при построении системы имитационного моделирования;

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

Апробация результатов исследования. Основные результаты исследования докладывались и обсуждались на следующих научно -технических конференциях и форумах:

• 17, 20, 22-й Международной научно-технической конференции «Цифровая обработка сигналов и ее применение», Москва, 2015, 2018 и 2020 гг.

• I Международном научно-техническом форуме «Современные технологии в науке и образовании», Рязань, 2018г.

• Всероссийской научно-технической конференции «Актуальные вопросы радиотехники и электроники», Тула, 2021г.

• XХVII Всероссийской научно-технической конференции студентов, молодых ученых и специалистов «Новые информационные технологии в научных исследованиях (НИТ-2022)», Рязань, 2022

Публикации. По тематике диссертации опубликовано 11 работ. Из них 5 статей в ведущих рецензируемых научных журналах из перечня ВАК РФ, 6 тезисов докладов на международных и всероссийских конференциях и форумах.

Личный вклад автора. Основные результаты исследований получены автором самостоятельно. В работах, опубликованных в соавторстве, соискатель внёс значительный вклад при постановке и решении задач, а также обобщении полученных результатов.

Структура и объём диссертации. Диссертация состоит из введения, четырёх глав, заключения, списка использованной литературы и приложений. Диссертация содержит 166 страниц, включает 95 рисунков, 14 таблиц, 5 приложений. Использованы ссылки на 91 источник литературы. Содержание работы

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

Далее был проведён обзор известных работ, связанных с построением адаптивных систем на основе БИХ-фильтров с настраиваемыми коэффициентами. Исследуются работы, посвященные решению проблем реализации устойчивых адаптивных фильтров, проблем сходимости целевой функции к локальному минимуму. Также рассматриваются алгоритмы, основанные на методах минимизации выходной ошибки, методах уравнения ошибок, а также алгоритм Стиглица-МакБрайда, приводится описание подходов выбора параметров адаптивных фильтров.

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

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

Было предложено два алгоритма узкополосной обработки сигналов на основе цифровых адаптивных гребенчатых БИХ-фильтров.

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

Второй алгоритм предполагает обучение адаптивного цифрового гребенчатого БИХ-фильтра. Особенностью данного подхода является

появление дополнительных полос в процессе настройки АЦГФ. На выходе эти полосы должны быть устранены при помощи сглаживающего фильтра.

В завершении данной главы приведены особенности реализации сглаживающего фильтра.

В третьей главе приведено описание задач адаптивной цифровой фильтрации в классе цепей с бесконечной импульсной характеристикой. Проведён обзор задач, решаемых с использованием адаптивной фильтрации. После этого произведён анализ основных подходов адаптивной фильтрации в задачах прямого и обратного моделирование узкополосных систем, задачах предсказания, а также задачах очистки узкополосного сигнала от широкополосного шума и широкополосного сигнала от узкополосной помехи. Для решения задач применяются как известные алгоритмы адаптации, так и предложенные автором модифицированные методы и алгоритмы на основе гребенчатых адаптивных фильтров, проводится их сравнение.

Предлагается ряд структур для решения задач адаптивной цифровой узкополосной фильтрации с использованием адаптивных гребенчатых БИХ-фильтров.

Четвёртая глава посвящена описанию реализации разработанной среды математического моделирования и реализации алгоритмов на основе цифрового адаптивного гребенчатого БИХ-фильтра.

Описаны преимущества реализации модели на основе инструментов с открытым исходным кодом. Для удобства переносимости между различными платформами, среда моделирования и её окружение были помещена в виртуальный контейнер с использованием «Docker».

Приведены рекомендации для реализации алгоритмов, основанных на математике с фиксированной точкой. Математика с фиксированной точкой, широко применяется на различных устройствах, таких как программируемы интегральные схемы (ПЛИС), цифровые сигнальные процессоры (ЦСП), графические процессоры (ГП), микроконтроллеры (МК).

Описан подход реализации алгоритма гребенчатой адаптивной фильтрации на ПЛИС с использованием высокоуровневого синтеза логических схем (НЪ$).

В заключении сформулированы основные результаты диссертационной работы, сделаны выводы.

В приложениях приведены исходные тексты алгоритмов, а также разработанной среды моделирования, а также копия акта об использовании материалов диссертации.

Глава 1. Узкополосная фильтрация с использованием цифровых гребенчатых БИХ-фильтров

1.1 Постановка задачи проектирования узкополосного БИХ-фильтра

Цифровые фильтры с бесконечной импульсной характеристикой (БИХ) имеют относительно невысокие вычислительные затраты и сниженное потреблением памяти в сравнении с фильтрами класса цепей с конечной импульсной характеристикой (КИХ). При построении цифрового фильтра с аналогичными частотными характеристиками БИХ-фильтр, как правило, имеет значительно меньший порядок [8].

БИХ-фильтры могут быть использованы в приложениях, не предъявляющих требований линейности к фазочастотной характеристики фильтра, но требующих энергоэффективности и снижения вычислительных затрат [9]. Также БИХ-фильтры хорошо подходят для применения в областях, где требуется построение фильтров с высоким значение коэффициента прямоугольности: сфера интернета вещей, портативных устройств, обработка биосигналов, обработка аудио [10].

В общем случае коэффициенты цифровых БИХ-фильтров могут быть представлены как в формате чисел с плавающей точкой, так и чисел с фиксированной точкой. Известно, что использование арифметики чисел с фиксированной точкой позволяет значительно сократить энергопотребление, повысить скорость выполнения алгоритма на ряде устройств. Поэтому БИХ-фильтры, на практике часто реализуются с использованием чисел с фиксированной точкой [8].

При этом, программная и аппаратная реализации БИХ-фильтров с использованием арифметики чисел с фиксированной точкой и ограничением разрядности представления коэффициентов фильтра приводят к ухудшению точности построения частотной характеристики. Также существует вероятность перехода одного или нескольких полюсов передаточной характеристики в неопределённые позиции, в том числе и в позиции за

пределами единичной окружности, вследствие квантования коэффициентов. Условием стабильности БИХ-фильтра является нахождение всех полюсов в пределах единичной окружности в 2-области.

Для снижения влияния ограничения разрядности коэффициентов часто используют метод разбиения передаточной функции высокого порядка на несколько фильтров первого-второго, соединённых последовательно. Однако, взаимная интерференция между звеньями неизбежно оказывает влияние на общую производительность фильтра, вплоть до полной неработоспособности структуры, усложняет реализацию и анализ полученных фильтров [11].

Альтернативным подходом к решению данной проблемы может явиться использование гребенчатых БИХ-фильтров [12].

1.1.1 Проектирование узкополосного БИХ-фильтра

Цифровой БИХ-фильтр имеет импульсную характеристику бесконечную по длине, а его выход может быть описан выражением:

N М

у(п) = а(к)у(п + ^ Ь(к)х(п - к), (1.1)

к=1 к=0

где Ь и а - коэффициенты усиления и обратной связи, М - количество нулей, а N - полюсов адаптивного фильтра.

Существует ряд наиболее широко используемых классов цифровых частотно-избирательных БИХ-фильтров: Баттерворта, Чебышева, эллиптические [13].

Фильтр Баттерворта определяется тем, что имеет максимально плоскую АЧХ в полосе пропускания. Данный тип имеет монотонную АЧХ как в полосе пропускания, так и в полосе задержания [13].

Квадрат АЧХ непрерывного ФНЧ Баттерворта имеет вид:

1нсиа)12 =-—-ш, (1.2)

1

1+Ш

где Пс - частота среза полосы пропускания.

При возрастании параметра N увеличивается крутизна АЧХ фильтра в переходной зоне, однако значение квадрата АЧХ на частоте среза всегда остается равным 1/2. При проектировании таких фильтров, как правило, задаётся частота среза Пс и порядок фильтра N.

Типичная АЧХ фильтра Баттерворта приведена на рисунке 1.1а, на рисунке 1.1б представлена соответствующая нуль-полюсная диаграмма.

о-

-80 --100

• Нули

X Полюсы X

( X X

X X

X

0.2 0.4 0.6 0.8

Нормализованная частота (хя рад/отсчет)

а б

Рисунок 1.1 - АЧХ (а) и нуль-полюсная диаграмма (б) ФНЧ

Баттерворта

Если спецификация фильтра задаётся значениями максимума ошибки аппроксимации полос пропускания и задерживания, то реализация фильтра выполняется с запасом в низкочастотной части полосы пропускания, и выше полосы задерживания [12]. При проектировании можно использовать более эффективный подход с точки зрения получения желаемой характеристики с использованием фильтра меньшего порядка. Он заключается в распределении точности аппроксимации по полосе пропускания или по полосе задерживания.

Подобный подход реализуется при проектировании фильтров Чебышева. Фильтр Чебышева первого рода характеризуется равномерной пульсацией в полосе пропускания или монотонностью в полосе задерживания.

Квадрат АЧХ фильтров Чебышева первого рода имеет вид:

1

1ВДП)|2 =

1 +

(1.3)

где - многочлен Чебышева ^го порядка, определяемый выражением:

Уы(х) = cos(N * агссоБ(х)).

(1.4)

Для проектирования конкретного фильтра задаются следующие параметры: £ - допустимая пульсация в полосе пропускания, Пс - желаемая граница полосы пропускания, N - порядок фильтра. Как правило значения £ и Пс фиксируют и после этого подбирают порядок N таким образом, чтобы удовлетворить заданным ограничениям.

АЧХ и нуль-полюсная диаграмма фильтра Чебышева первого пода приведены на рисунке 1.2а и 1.2б соответственно.

0

-30 -100

0.2 0.4 0.6 0.8

Нормализованная частота (хлрад/отсчет)

• х Нули

Полюсь

*

/ * \

х 1

X X

а б

Рисунок 1.2 - АЧХ (а) и нуль-полюсная диаграмма (б) ФНЧ Чебышева

1 рода

Фильтр Чебышева второго рода имеет монотонную АЧХ в полосе пропускания и равномерно пульсирующую АЧХ в зоне непрозрачности. Квадрат АЧХ фильтра Чебышева второго рода имеет вид:

1

шст12 =

1+

(1.5)

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

АЧХ и нуль-полюсная диаграмма фильтра Чебышева второго рода приведена на рисунке 1.3.

а б

Рисунок 1.3 - АЧХ (а) и нуль-полюсная диаграмма (б) ФНЧ Чебышева

2 рода

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

Квадрат АЧХ эллиптических фильтров имеет вид:

1

1ВДП)|2 =

1 + £2^(П)'

(1.6)

где ^ (П) - эллиптическая функция.

АЧХ и нуль полюсная диаграмма эллиптического фильтра приведены на рисунке 1.4

а б

Рисунок 1.4 - АЧХ (а) и нуль-полюсная диаграмма (б) эллиптического

ФНЧ

Данные фильтры могут быть получены из аналоговых фильтров с соответствующими названиями при помощи билинейного преобразования. Общий маршрут проектирования хорошо известен и может быть разбит на следующие шаги [14]:

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

2. Реализация аналогового фильтра-прототипа с передаточной характеристикой Яр ( 5 ) с учётом данных из шага 1.

3. Преобразование прототипа в аналоговый фильтр с передаточной характеристикой Я( 5 ).

4. Реализация цифрового фильтра Я (г) с использованием билинейного z-преобразования, которое автоматически приводит к обратному искажению частотных осей к исходному значению.

5. Квантование коэффициентов фильтра.

Все шаги могут быть реализованы в пакетах автоматизированного проектирования цифровых фильтров, таких как MATLAB, LabView, SciPy и других коммерческих и открытых продуктах. Основными входными данными при расчёте цифровых фильтров в данных пакетах являются тип проектируемого фильтра, дискретные критические частоты, а также допуски в полосах пропускания и непрозрачности. При этом все пакеты явно или неявно производят все необходимые предыскажения частот [13]. Дополнительно может быть предоставлен выбор структуры проектируемого фильтра, а также другие параметры, которые зависят от конкретного пакета проектирования.

На этапе разработки коэффициенты фильтра, как правило, рассчитываются с высокой точностью. При реализации на реальных устройствах, таких как цифровой сигнальный процессор (ЦСП),

программируемая логическая интегральная схема (ПЛИС), микроконтроллер, часто требуется представить коэффициенты с определённой разрядностью [15]. Так как расчёт коэффициентов производится с наибольшей доступной точностью представления, чаще всего это формат с плавающей точкой удвоенной точности, коэффициенты должны быть квантованы во внутренний формат устройства.

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Горюшкин Руслан Сергеевич, 2023 год

Список литературы

1. Уидроу Б., Стирнз С. Адаптивная обработка сигналов. М: Радио и связь, 1989. 440 с.

2. Грант П.М., Коуэн К.Н. Адаптивные фильтры. Москва: Мир, 1988. 392, ил. с.

3. Haykin S. Introduction to Adaptive Filters. 1 st ed. Collier Macmillan, 1984. 217 pp.

4. Diniz P. Adaptive Filtering: Algorithms and Practical Implementation. Springer, 2020. 495 pp.

5. Bellanger M. Adaptive Digital Filters. CRC Press , 2001. 464 pp.

6. Sayed A.H. Fundamentals of Adaptive Filtering. John Wiley & Sons, 2003.

7. Джиган В.И. Адаптивная фильтрация сигналов: теория и алгоритмы. Москва: Техносфера, 2013. 528 с.

8. Volkova A., Istoan M., Dinechin F.D., Hilaire T. Towards hardware IIR filters computing just right: Direct form I case study // IEEE Trans. Comput., Vol. 68, No. 4, Apr. 2019. pp. 597-608.

9. Tsai H.K., Tsai J.J.P. Robust and Computationally Efficient Digital IIR Filter Synthesis and Stability Analysis Under Finite Precision Implementations // IEEE Transactions on Signal Processing, Vol. 68, 2020. pp. 1807-1822.

10. Madisetti V.K. The Digital Signal Processing Handbook. 2nd ed. Boca Raton, FL: CRC Press, 2010.

11. Kuo S.M., Gan W.S. Digital Signal Processors: Architectures, Implementations, and Applications. Englewood Cliffs, NJ : Prentice Hall, 2005.

12. Витязев В.В., Горюшкин Р.С. Исследование устойчивости цифровых гребенчатых фильтров // Цифровая обработка сигналов и её применение DSPA 2015: Труды 17-й Международной науч.-техн. конф., Т. 1, М.: 2015.

13. Оппенгейм А., Шафер Р. Цифровая обработка сигналов. 3-е изд. Москва: Техносфера, 2012. 1048 с.

14. Taylor F.J. Digital Filters. Principles and Applications with MATLAB. John Wiley & Sons, 2012.

15. Diniz P.S.R., da Silva E., Netto S.L. Digital Signal Processing System Analysis and Design. 2nd ed. Cambridge University Press, 2010. 889 pp.

16. Ko H.J., Tsai J.P. Robust and Computationally Efficient Digital IIR Filter Synthesis and Stability Analysis Under Finite Precision Implementations // IEEE TRANSACTIONS ON SIGNAL PROCESSING, Vol. 68, 2020. pp. 1807-1821.

17. Chen B.S., Kuo C.T. Stability analysis of digital filters under finite word-length effects // Circuits, Devices and Systems, IEE Proceedings, September 1989. pp. 167-182.

18. Smith J.O. Introduction To Digital Filters With Audio Applications. W3K Publishing, 2007. 480 pp.

19. Markel J.D., Gray A.H. Linear Prediction of Speech. New York: Springer Verlag, 1976.

20. Алпатов Б.А., Витязев В.В., Степашкин А.И. Синтез цифровых резонаторов для систем узкополосной фильтрации // Радиотехника, Т. 34, № 12, 1979. С. 57-59.

21. Витязев В.В., Горюшкин Р.С. Анализ устойчивости двухкаскадной реализации узкополосного цифрового фильтра в классе БИХ-цепей // Цифровая обработка сигналов, № 4, 2017. С. 40-45.

22. Витязев В.В., Горюшкин Р.С. Анализ шумов квантования многоскоростных структур узкополосных КИХ-фильтров // Цифровая обработка сигналов, № 4, 2015. С. 35-39.

23. Витязев В.В., Муравьёв С.И., Степашкин А.И. Метод проектирования цифровых полосовых фильтров с бесконечной памятью // Радиотехника, № 2, 1984. С. 19-23.

24. Витязев В.В. Многоскоростная обработка сигналов. Москва: Горячая линия - Телеком, 2017. 336 с.

25. Antoniou A. Digital Signal Processing: Signals, Systems, and Filters. New York: McGraw Hill, 2005.

26. Carini A., Mathews V.J., Sicuranza G.L. Sufficient stability bounds for slowly varying direct-form recursive linear filters and their applocations in adaptive IIR filters. // IEEE Trans. in Signal Processing, 47, September 1999. pp. 25612567.

27. Nayeri M., Jenkins W.K. Alternative realization to adaptive IIR filters and properties of their performance surfaces // IEEE Transactions on Circuits and Systems, Vol. 36, No. 4, Apr. 1989. pp. 485-496.

28. Ho K.C. Performance of Multiple LMS Adaptive Filters in Tandem // IEEE TRANSACTIONS ON SIGNAL PROCESSING, Vol. 49, No. 11, Nov. 2001. pp. 2762-2773.

29. Shynk J.J. Adaptive IIR filtering using parallel-form realizations // IEEE Transactions on Acoustic, Speech, and Signal Processing, Vol. 37, No. 4, Apr. 1989. pp. 519-533.

30. Williamson G.A., Ashley J.P., Nayeri M. Structural issues in cascadeOfirm adaptive IIR filters. // Intrnational Conference on Acoustic, Speech and Signal Processing, Vol. 2, May 1995. pp. 1436-1439.

31. Gray A.H., Jr., Markel J.D. Digital lattice and ladder filter synthesis // IEEE Trans. Audio Electroacoustv, No. AU-21, 1973. pp. 492-500.

32. Rodriguez-Fonollosa J.A., Masgrau E. Simplified gradient calculation in adaptive IIR lattice filters // IEEE Trans. Signal Process, No. 39, 1991. pp. 17021705.

33. Shynk J.J. On lattice-form algorithms for adaptive IIR filtering // Proceedings of the IEEE International Conference on Acoustics, Speech, Signal Processing. New York, NY. 1988. pp. 1554-1557.

34. Tummala M. New adaptive normalised lattice algorithm for recursive filters // Electron. Lett, No. 24, 1988. pp. 659-661.

35. Romano J.M., Bellanger M.G. Fast least-squares adaptive notch filtering // IEEE Trans. Acoust. Speech Signal Process, No. 36, 1988. pp. 1536-1540.

36. Regalia P.A. Adaptive IIR Filtering for Signal Processing and Control. New York: Marcel Dekker, 1995.

37. Vega L.R., Rey H. A Rapid Introduction to Adaptive Filtering. Springer, 2013.

38. Shynx J.J. Adaptive IIR Filtering // IEEE Signal Processing Magazine, Vol. 6, 1989. pp. 4-21.

39. Sterns S.D. Error Surfaces of Recursive Adaptive Filters // IEEE Transactions on Acoustics, Speech, Signal Processing, No. ASSP-29, 1981. pp. 763-766.

40. Feintuch P.L. An Adaptive Recursive LMS Filter // Proceedings IEEE, Vol. 64, No. 11, November 1976. pp. 1622-1624.

41. Horvath S. A new adaptive recursive LMS filter. New York: Academic Press, 1988.

42. Fan H., Nayeri M. On Error Surface of Sufficient Order Adaptive IIR Filters: Proofs and Counter Examples to a Unimodality Conjecture // IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. Assp-37, No. 9, 1989. pp. 1436-1442.

43. Mendel J.M. Discrete Techniques of Parameter Estimation: The Equation Error Formulation. New York: Marcel Dekker, 1973.

44. Diniz P.S.R., Cousseau J.E. A family of equation-error based IIR adaptive algorithms // IEEE Proceedings on Midwest Symposium of Circuits and Systems. Lafayette, LA. 1994. pp. 1083-1086.

45. Netto S.L., Diniz P.S.R., Agathoklis P. Adaptive IIR filtering algorithms for system identification: A general framework // IEEE Trans. Educ., No. 26, 1995. pp. 54-66.

46. Cousseau J.E., Diniz P.S.R. A general consistent equation-error algorithm for adaptive IIR filtering // Signal Process., No. 56, 1997. pp. 121-134.

47. Solo V., Kong X. Adaptive Signal Processing Algorithms: Stability and Performance. Englewood Cliffs, NJ: Prentice-HaJI, 1995.

48. Sôderstrôm T., Stoica P. On the stability of dynamic models obtained by least squares identification. // IEEE Trans. Automat. Contr, No. AC-26, 1981. pp. 575-577.

49. Steiglitz K.E., McBride L.E. A technique for the identification of linear systems // IEEE Trans. Automat. Contr., Vol. 10, 1965. pp. 461-464.

50. Fan H., Doroslovawcki M. On 'global convergence' of Steiglitz-McBride adaptive algorithm // IEEE Trans. Circ. Syst.-II: Analog Digital Signal Process., Vol. 40, 1993. pp. 73-87.

51. Stoica P., Söderström T. The Steiglitz-McBride identification algorithm revisited-convergence analysis and accuracy aspects. // IEEE Trans. Automat. Contr, No. AC-26, 1981. pp. 712-717.

52. Fan H., Jenkins W.K. A new adaptive IIR filter // IEEE Trans. Circ. Syst., No. CAS-33, 1986. pp. 939-947.

53. Usevitch B.E., Jenkins W.K. Proceedings of the IEEE International Symposium of Circuits and Systems // A cascade implementation of a new IIR adaptive digital filter with global convergence and improved convergence rates. Portland, OR. 1989. pp. 2140-2142.

54. Regalia P.A. Stable and efficient lattice algorithms for adaptive IIR filtering // IEEE Trans. Signal Process, No. 40, 1992. pp. 375-388.

55. Cousseau J.E., Diniz P.S.R. A new realization of IIR echo cancellers using the Steiglitz-McBride method // Proceedings of the IEEE International Telecommunication Symposium. Rio de Janeiro, Brazil. 1994. pp. 11-14.

56. Madisetti VK, editor. The Digital Signal Processing Handbook. 2nd ed. Boca Raton, FL: CRC Press, 2010.

57. Cousseau J.E., Diniz P.S.R. A consistent Steiglitz-McBride algorithm // Proceedings of the IEEE International Symposium of Circuits and Systems. Chicago, IL. 1993. pp. 52-55.

58. Vityazev V., Goriushkin R. Analyzing the Two-Stage Structure of Narrowband IIR Filters // Zhurnal Radioelektroniki - Journal of Radio Electronics, No. 5, 2019.

59. Витязев В.В., Горюшкин Р.С. Анализ устойчивости цифровых узкополосных БИХ-фильтров, реализованных по двухкаскадной структуре // Цифровая обработка сигналов и её применение DSPA 2018: Труды 20-й Международной науч.-техн. конф. М. 2018. Т. 1. С. 184-189.

60. Горюшкин Р.С. Исследование применения адаптивных гребенчатых БИХ-фильтров в задаче очистки узкополосных сигналов от широкополосного шума // Актуальные вопросы радиотехники и электроники. Труды всероссийской научно-технической конференции. Тула. 2021. С. 121-126.

61. Витязев С.В. Адаптивная цифровая фильтрация узкополосных процессов // DSPA-2008. Международная конференция "Цифровая обработка сигналов и её применение". Москва. 2008. С. 159-161.

62. Витязев В.В., Горюшкин Р.С. Исследование адаптивного гребенчатого БИХ-фильтра // Цифровая обработка сигналов и её применение DSPA 2020: Труды 22-й Международной науч.-техн. конф. М. 2020. С. 89-92.

63. Витязев В.В. Цифровая частотная селекция сигналов. М: Радио и связь. 240 с.

64. Koshita S., Kumamoto Y., Abe M., Kawamata M. Adaptive IIR BandPass/Band-Stop Filtering Using High-Order Transfer Function and Frequency Transformation // Interdisciplinary Information Sciences, Vol. 19, No. 2, 2013. pp. 163-172.

65. RajaKumar R.V., Pal R.N. Tracking of bandpass signals using center-frequency adaptive filters // IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 38, No. 10, 1990. pp. 1710-1721.

66. Koshita S., Kumamoto Y., Abe M., Kawamata M. High-order center-frequency adaptive filters using block-diagram-based frequency transformation // IEEE

International Conference on Acoustics, Speech and Signal Processing (ICASSP). 2011. pp. 4284-4287.

67. Farhang-Boroujeny B. Adaptive Filters. Theory and Applications. 2nd ed. John Wiley & Sons Limited , 2014.

68. Manolakis D., K.V. I., Kogon S.M. Statistical and Adaptive Signal Processing: Spectral Estimation, Signal Modeling, Adaptive Filtering and Array Processing. Artech House Print on Demand, 2005. 816 pp.

69. Zaknich A. Principles of Adaptive Filters and Self-learning Systems. London: Springer, 2005.

70. Stearns S.D. Error surfaces of recursive adaptive filters // IEEE Trans. Acoust. Speech Signal Process. ASSP-29. 1981. pp. 763-766.

71. Astrom K.J., Soderstrom T. Uniqueness of the maximum likelihood estimates of the parameters of an ARMA model // IEEE Trans. Automat. Contr. AC-19. 1974. pp. 769-773.

72. Soderstrom T. On the uniqueness of maximum likelihood identification // Automatica 11. 1975. pp. 193-197.

73. Горюшкин Р.С. Решение задачи прямого моделирования узкополосных систем с использованием адаптивных гребенчатых БИХ-фильтров // Цифровая обработка сигналов, No. 3, 2021. pp. 54-57.

74. Горюшкин Р.С. Исследование адаптивного гребенчатого БИХ-фильтра в задаче прямого моделирования узкополосных систем // XXVII всероссийская научно-техническая конференция студентов, молодых ученых и специалистов «Новые информационные технологии в научных исследованиях (НИТ 2022). Рязань. 2022.

75. Витязев В.В., Горюшкин Р.С. Анализ применения адаптивных гребенчатый БИХ-фильтров в задаче выделения узкополосного сигнала на фоне широкополосного шума // Цифровая обработка сигналов, № 2, 2021. С. 42-47.

76. Frantz G. Digital signal processor trends // IEEE Micro, Vol. 6, No. 20, 2000. pp. 52-59.

77. Meyer-Baese U. Digital Signal Processing with Field Programmable Gate Arrays. Springer, 2014.

78. Дауни А. Цифровая обработка сигналов на языке Python. ДМК, 2017.

79. Matthias K., Kane S. Docker - Up and Running. 1st ed. O'Reilly, 2015. 224 pp.

80. Blum T., Kristensen M., Vinter B. 2014 IEEE 28th International Parallel & Distributed Processing Symposium Workshops // Transparent GPU Execution of NumPy Applications. 2014. pp. 1002-1010.

81. Горюшкин Р.С. Реализация цифрового БИХ-фильтра на ПЛИС средствами языка Python // Современные технологии в науке и образовании - СТН0-2018 [текст]: сб. тр. между- нар. науч.-техн. форума: в 10 т. 2018. Vol. 3.

82. ARM Corporation. AMBA AXI and ACE Protocol Specification. 2013.

83. Andrews M., Fitch R. Finite word length arithmetic computational error effects on the LMS adaptive weights // ICASSP '77. IEEE International Conference on Acoustics, Speech, and Signal Processing. 1977. pp. 628-631.

84. Xilinx. 7 Series DSP48E1 Slice. User Guide.

85. Fiala G., Scheipel T., Neuwirth W., Baunach M. FPGA-Based Debugging with Dynamic Signal Selection at Run-Time // CEUR Workshop Proceedings. 2020.

86. A. S., MacMahon S., Cherukupaly U. LightWeight IP Application Examples. Xilinx, 2014.

87. White S.A. An adaptive recursive digital filter // Proceedings of 9th Asilomar Conference on Circuits, Systems and Computers. Pacific Grove, USA. Nov. 1975. pp. 21-25.

88. David R.A. A modified cascade structure for IIR adaptive algorithms // Proceedings if 15th Asilomar Conference on Circuits, Systems and Computers. Pacific Grove, USA. May 1981. pp. 175-179.

89. D.Parikh, N.Ahmed, Stearns S.D. An adaptive lattice algorithm for recursive filters // IEEE Transactions on Acoustic, Speech, and Signal Processing, Vol. ASSP-28, No. 1, Feb. 1980. pp. 110-112.

90. Milic L. Multirate Filtering for Digital Signal Processing: MATLAB Applications. Information science reference, 2009. 397 pp.

91. McGreggor D. Mastering matplotlib. Packt Publishing, 2015. 292 pp.

Исходные тексты алгоритма проверки стабильности фильтра

Листинг 1 - Алгоритм Шура-Кона

import numpy as np def stability_procedure(coeffs): N = len(coeffs)

coeffsToCheck = np.asarray(coeffs) stable = 1

for i in range(N - 1, 0):

p = coeffsToCheck[i + 1] if np.abs(p) >= 1:

return (stable - 1) coeffsToCheck = ((coeffsToCheck[0:i - 1] - p \ * coeffsToCheck[i+1:1:-1])) / ( 1 - p*p ) print(A) return stable

Реализация алгоритма адаптивного сглаживающего фильтра

Листинг 1 - Класс, реализующий адаптивный сглаживающий фильтр на основе алгоритма частотной трансформации

import numpy as np from scipy import signal import scipy.signal as sp_signal import supportFunc as supFunc class FreqSearchFilter():

def _init_(self, M, band, mu_fsf, fs):

self.M = M self.band = band self.fs = fs self.mu_fsf = mu_fsf

self.b, self.a = sp_signal.butter(M - 1,band, \ btype='low', analog=False, output='ba', fs=fs) def filter(self, test_signal, ksi_start): M = self.M

# Pre Allocations: sig_len = len(test_signal) v_vec = np.asarray(np.zeros(M)) w_vec = np.asarray(np.zeros((M, 3))) b_vec = np.asarray(np.zeros(M)) a_vec = np.asarray(np.zeros(M)) y_vec = np.asarray(np.zeros(sig_len)) b_vec = self.b

a_vec = self.a

# Preset for ksi tuning ksi = ksi_start

psi_v_vec = np.asarray(np.zeros(M)) psi_w_vec = np.asarray(np.zeros((M, 3)))

Листинг 1 (продолжение)

psi_y = O R = 10000 nu = 0.99 mu = self.mu_fsf for n in range(sig_len): for i in range(1, M):

v_vec[i] = ksi * w_vec[i][1] - w_vec[i][2] v_vec[0] = -np.dot(a_vec[1:],\ np.transpose(v_vec[1:])) + test_signal[n] for j in range(1, M):

w_vec[j][0] = ksi * w_vec[j][1] + v_vec[j-1] y_vec[n] = np.dot(b_vec, np.transpose(v_vec)) # ksi update for q in range(1,M):

psi_v_vec[q] = w_vec[q][1] + ksi *\ psi_w_vec[q][1] - psi_w_vec[q][2] psi_v_vec[0] = -np.dot(a_vec[1:],\ np.transpose(psi_v_vec[1:]))

psi_y = np.dot(psi_v_vec, np.transpose(b_vec)) for m in range(1, M):

psi_w_vec[m][0] = w_vec[m][1] + ksi *\ psi_w_vec[m][1] + psi_v_vec[m-1] for k in range(1, M):

w_vec[k] = np.roll(w_vec[k], 1) psi_w_vec[k] = np.roll(psi_w_vec[k], 1) R = R * nu + psi_y * psi_y if ksi > 1: ksi = 1 elif ksi < -1: ksi = -1

return y_vec

Реализация алгоритмов адаптивной фильтрации цифровых адаптивных

БИХ-фильтров

Листинг 1 - Алгоритм реализации алгоритма RLS OE для адаптивного гребенчатого БИХ-фильтра

def adapt_interpolated_filtering(self, desired, test_signal,\ nu):

# Pre Allocations:

iterations_num = len(desired) # Number of analyzed samples N = self.M - 1 # Adaptive order

coeff_num = self.M + 1 + N # Number of coefficients e = np.asarray(np.zeros(iterations_num)) # Error vector theta_vec = np.asarray(np.zeros(coeff_num)) # Init theta data_vec = np.asarray(np.zeros(coeff_num)) # Data vector sd = np.zeros((coeff_num, coeff_num)) # Init Sd

# Extend input vector for nu-delay

data_vec_X = np.asarray(np.zeros((self.M + 1) * nu))

# Extend output vector for nu-delay

data_vec_Y = np.asarray(np.zeros(N * nu))

# Initial State Weight Vector

sd = 1/self.delta * np.eye(coeff_num)

x_line_vec = np.asarray(np.zeros((self.M + 1) * nu)) y_line_vec = np.asarray(np.zeros((self.M + 1) * nu)) phi_vec = np.asarray(np.zeros(coeff_num)) y_eval = np.asarray(np.zeros(iterations_num

# Main operations cycle

for i in range(iterations_num):

# print("RLS Interpolated: ", i) data_vec_X[0] = test_signal[i]

data_vec = np.concatenate((data_vec_Y[nu-1::nu],\ data_vec_X[::nu]), axis=None)

y = np.dot(np.transpose(theta_vec), data_vec) Листинг 1 (продолжение)

y_eval[i] = y

e[i] = desired[i] - y

x_line = data_vec_X[0] +\

np.dot(np.transpose(theta_vec[0:N]), x_line_vec[nu \ -1:(N+1)*nu-1:nu])

y_line = np.dot(np.transpose(theta_vec[0:N]),\

y_line_vec[nu-1:(N+1)*nu-1:nu]) - data_vec_Y[nu-1]

x_line_vec = np.roll(x_line_vec, 1)

y_line_vec = np.roll(y_line_vec, 1)

x_line_vec[0] = x_line

y_line_vec[0] = y_line

phi_vec[0:N] = y_line_vec[0:N*nu:nu]

phi_vec[N:] = -x_line_vec[0:(self.M+1)*nu:nu]

# Calculate Sd

sd_phi_den = self.lambda_coeff + \

np.dot(np.dot(np.transpose(phi_vec), sd), phi_vec) sd_phi_num = np.dot(np.outer(np.dot(sd, phi_vec),\ np.transpose(phi_vec)), sd)

sd = (1/self.lambda_coeff) * (sd - sd_phi_num/sd_phi_den)

# Coefficients update

theta_vec = theta_vec - np.dot(sd, phi_vec) * e[i]

if self.stabilization:

theta_vec[0:N] = self.stability_procedure(theta_vec[0:N])

# Update data vector

data_vec_X = np.roll(data_vec_X, 1) data_vec_Y = np.roll(data_vec_Y, 1) data_vec_Y[0] = y return e

Листинг 2 - Алгоритм реализации алгоритма LMS OE для адаптивного гребенчатого БИХ-фильтра

def adapt_interpolated_filtering(self, desired, test_signal,\ nu):

# Pre Allocations

iterations_num = len(desired) # number of analyzed samples N = self.M - 1

coeff_num = self.M + N + 1 # number of coefficients e = np.asarray(np.zeros(iterations_num)) # error vector

data_vec = np.asarray(np.zeros(coeff_num)) # data vector

theta = np.asarray(np.zeros(coeff_num)) # init theta

y_eval = np.asarray(np.zeros(iterations_num))

# Extend input vector for nu-delay

data_vec_X = np.asarray(np.zeros((self.M + 1) * nu))

# Extend output vector for nu-delay

data_vec_Y = np.asarray(np.zeros(N * nu))

# Main operations

for i in range(iterations_num): data_vec_X[0] = test_signal[i]

data_vec = np.concatenate((data_vec_Y[nu-1::nu],\

data_vec_X[::nu]), axis=None)

y = np.dot(theta, np.transpose(data_vec))

y_eval[i] = y

e[i] = desired[i] - y

theta = theta + self.mu_x * e[i] * data_vec data_vec_X = np.roll(data_vec_X, 1) data_vec_Y = np.roll(data_vec_Y, 1) data_vec_Y[0] = y if self.stabilization:

theta[0:N] = self.stability_procedure(theta[0:N]) return e

Листинг 3 - Алгоритм реализации алгоритма RLS EE для адаптивного гребенчатого БИХ-фильтра

def adapt_filtering_RLS_interpolated(self, delta, lambda_coeff,\ desired, test_signal, nu):

# Pre Allocations:

iterations_num = len(desired) # number of analyzed samples N = self.M - 1 # number of coefficients

coeff_num = self.M + N + 1 # number of coefficients

e = np.asarray(np.zeros(iterations_num)) # error vector e_ee = np.asarray(np.zeros(iterations_num)) # error vector EE y_eval = np.asarray(np.zeros(iterations_num))# evaluation data_vec = np.asarray(np.zeros(coeff_num)) # data vector data_vec_ee = np.asarray(np.zeros(coeff_num))# data vector EE theta = np.asarray(np.zeros(coeff_num)) # init theta

data_vec_X = np.asarray(np.zeros((self.M + 1) * nu))

# Extend output vector for nu-delay

data_vec_Y = np.asarray(np.zeros(N * nu))

# Extend desired vector for nu-delay

data_vec_D = np.asarray(np.zeros(N * nu))

sd = 1/delta * np.eye(coeff_num) # Init Sd

# Main operations cycle

for i in range(iterations_num): data_vec_X[0] = test_signal[i]

data_vec = np.concatenate((data_vec_Y[nu-1::nu],\ data_vec_X[::nu]), axis=None)

data_vec_ee = np.concatenate((data_vec_D[nu-1::nu],\

data_vec_X[::nu]), axis=None)

y = np.dot(theta, np.transpose(data_vec))

y_ee = np.dot(theta, np.transpose(data_vec_ee))

e[i] = desired[i] - y

e_ee[i] = desired[i] - y_ee

y_eval[i] = y

Листинг 3 (продолжение)

# Calculate Sd

# phi * transpose(phi) * Sd

sd_phi_den = lambda_coeff +\

np.dot(np.dot(np.transpose(data_vec_ee), sd), data_vec_ee) sd_phi_num = np.dot(np.outer(np.dot(sd, data_vec_ee),\ np.transpose(data_vec_ee)), sd)

sd = (1/lambda_coeff) * (sd - sd_phi_num/sd_phi_den)

# Coefficients update

theta = theta + np.dot(sd, data_vec_ee) * e_ee[i] data_vec_X = np.roll(data_vec_X, 1) data_vec_Y = np.roll(data_vec_Y, 1) data_vec_D = np.roll(data_vec_D, 1) data_vec_Y[0] = y data_vec_D[0] = y_ee if self.stabilization: theta[0:self.M] = \

self.stability_procedure(theta[0:self.M]) return e

Листинг 4 - Алгоритм реализации алгоритма LMS EE для адаптивного гребенчатого БИХ-фильтра

def adapt_interpolated_filtering_LMS(self, mu, desired,\ test_signal, nu):

# Pre Allocations

iterations_num = len(desired) # number of analyzed samples N = self.M - 1

coeff_num = self.M + N + 1 # number of coefficients

e = np.asarray(np.zeros(iterations_num)) # error vector e_ee = np.asarray(np.zeros(iterations_num)) # error vector EE data_vec = np.asarray(np.zeros(coeff_num)) # data vector data_vec_ee = np.asarray(np.zeros(coeff_num)) #data vector EE theta = np.asarray(np.zeros(coeff_num)) # init theta

Листинг 4 (продолжение)

y_eval = np.asarray(np.zeros(iterations_num))# eval vector

data_vec_X = np.asarray(np.zeros((self.M + 1) * nu))

# Extend output vector for nu-delay

data_vec_Y = np.asarray(np.zeros(N * nu))

# Extend desired vector for nu-delay

data_vec_D = np.asarray(np.zeros(N * nu))

# Main operations

for i in range(iterations_num): data_vec_X[0] = test_signal[i]

data_vec = np.concatenate((data_vec_Y[nu-1::nu],\ data_vec_X[::nu]), axis=None)

data_vec_ee = np.concatenate((data_vec_D[nu-1::nu],\

data_vec_X[::nu]), axis=None)

y = np.dot(theta, np.transpose(data_vec))

y_ee = np.dot(theta, np.transpose(data_vec_ee))

e[i] = desired[i] - y

e_ee[i] = desired[i] - y_ee

y_eval[i] = y

theta = theta + e_ee[i] * mu * data_vec_ee data_vec_X = np.roll(data_vec_X, 1) data_vec_Y = np.roll(data_vec_Y, 1) data_vec_D = np.roll(data_vec_D, 1) data_vec_Y[0] = y data_vec_D[0] = y_ee if self.stabilization:

theta[0:N] = self.stability_procedure(theta[0:N]) return e

Листинг 5 - Алгоритм реализации алгоритма Стиглица-МакБрайда для адаптивного гребенчатого БИХ-фильтра

def adapt_interpolated_filtering(self, desired, test_signal, nu):

iterations_num = len(desired) # number of analyzed samples N = self.M - 1 # Adaptive filter denominator order

coeff_num = self.M + 1 + N # Number of coefficients e_s = np.asarray(np.zeros(iterations_num)) # error vector e = np.asarray(np.zeros(iterations_num)) # error vector data_vec = np.asarray(np.zeros(coeff_num)) # Data vector theta = np.asarray(np.zeros(coeff_num)) # init theta data_vec_X = np.asarray(np.zeros((self.M + 1) * nu)) # Extend output vector for nu-delay

data_vec_Y = np.asarray(np.zeros(N * nu)) x_line_vec = np.asarray(np.zeros((self.M + 1) * nu)) d_line_vec = np.asarray(np.zeros((self.M + 1) * nu)) data_vec_s = np.asarray(np.zeros(coeff_num)) #SM data vector for i in range(iterations_num): data_vec_X[0] = test_signal[i]

data_vec = np.concatenate((data_vec_Y[nu-1::nu],\ data_vec_X[::nu]), axis=None) y = np.dot(theta, np.transpose(data_vec)) e[i] = desired[i] - y

x_line = data_vec_X[0] - np.dot(np.transpose(theta[0:N]),\ x_line_vec[nu-1:(N+1)*nu-1:nu])

d_line = desired[i] - np.dot(np.transpose(theta[0:N]),\

d_line_vec[nu-1:(N+1)*nu-1:nu])

x_line_vec = np.roll(x_line_vec, 1)

d_line_vec = np.roll(d_line_vec, 1)

x_line_vec[0] = x_line

d_line_vec[0] = d_line

data_vec_s[0:N] = d_line_vec[0:N*nu:nu]

Листинг 4 (продолжение)

data_vec_s[N:] = x_line_vec[0:(self.M+1)*nu:nu] e_s[i] = d_line - np.dot(theta, np.transpose(data_vec_s)) theta = theta + 2 * e_s[i] * self.mu * data_vec_s data_vec_X = np.roll(data_vec_X, 1)

data_vec_Y = np.roll(data_vec_Y, 1) data_vec_Y[O] = y if self.stabilization: theta[O:self.M] =\

self.stability_procedure(theta[O:self.M]) return e

Исходные тексты реализации алгоритмов адаптивной узкополосной

фильтрации на ПЛИС

Листинг 1 - Алгоритм реализации алгоритма LMS OE для адаптивного гребенчатого БИХ-фильтра на ПЛИС с использованием Xilinx HLS

static coef_t thetaVecX[M] = {0, 0, 0, 0, 0, 0, 0, 0};

static coef_t thetaVecY[M] = { 0, 0, 0, 0, 0, 0, 0, 0};

static data_t shiftRegX[M] = {0, 0, 0, 0, 0, 0, 0, 0};

static daccum_t shiftRegY[M] = {0, 0, 0, 0, 0, 0, 0, 0};

void iir_filter(data_t dataIn, dout_t desired, dout_t *dataOut);

void updateCoef ( dout_t y, dout_t desired );

void adapt_iir( data_t x, dout_t d, dout_t *y ) {

#pragma HLS INTERFACE ap_vld register port=x

#pragma HLS INTERFACE ap_vld register port=d

#pragma HLS INTERFACE ap_vld register port=y

#pragma HLS INTERFACE ap_ctrl_none port=return

#pragma HLS DATAFLOW

iir_filter(x, d, y); }

void iir_filter( data_t dataIn, dout_t desired, dout_t *dataOut ) {

#pragma HLS PIPELINE mu_t mu = 0.0001; static dout_t diff; data_t dataX; dout_t dataY; daccum_t accum = 0;

update_loop: for ( int i = 0; i < M; i++ ) { thetaVecX[i] += shiftRegX[i] * diff; thetaVecY[i] += shiftRegY[i] * diff;

}

Листинг 1 (продолжение)

filter_loop: for ( int i = M - 1; i >= 0; i-- ) { if ( i == 0 ){

shiftRegX[i] = dataIn; dataX = dataIn; dataY = 0;

}

else {

shiftRegX[i] = shiftRegX[i - 1]; shiftRegY[i] = shiftRegY[i - 1]; dataX = shiftRegX[i]; dataY = shiftRegY[i];

}

accum += ( dataX * thetaVecX[i] - dataY * thetaVecY[i] );

}

diff = ( desired - accum ) * mu; shiftRegY[0] = accum; *dataOut = accum;

}

void updateCoef ( dout_t y, dout_t desired, coef_t *thetaVecX, coef_t *thetaVecY) {

mu_t mu = 0.0001;

dout_t diff = ( desired - y ) * mu; update_loop: for ( int i = 0; i < M; i++ ) {

thetaVecX[i] += shiftRegX[i] * ( desired - y ) * mu; thetaVecY[i] += shiftRegY[i] * ( desired - y ) * mu;

}

}

Приложение 5 Копия акта об использовании материалов диссертации

•...-.. .... -Л

Прожектор ш учебной работе ФГБОУ ВО

■ - .7' , •■ V

<аИГРТУ им. В.Ф. Уткина» .■f _Корячко A.B.

/ « ОС » 0<< 2023 г.

«УТВЕРЖДАЮ»

АКТ

об использовании материалов диссертационной работы Горюшкина Руслана Сергеевича в учебном процессе

Настоящим подтверждаем, что материалы кандидатской диссертации Горюшкина P.C. использованы в учебном процессе подготовки бакалавров по направлению 11.03.02 «Инфокоммуникационные технологии и системы связи».

Полученные в диссертационной работе результаты использованы при подготовке лекционных материалов по дисциплинам «Цифровая обработка сигналов», «Цифровая обработка сигналов и сигнальные процессоры в СГ1Р».

Декан ФРТ,

Егоров A.B.

Заведующий кафедрой 'ГОР, д.т.н., профессор

Витязев В.В.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.