Мысловский Э.В. Цифровые сигнальные процесссоры (2003) (1264219), страница 16
Текст из файла (страница 16)
Наличие более высокочастотных сигналов (ωτ>120)приводит к появлению паразитных низкочастотных составляющих, отсутствующих вовходном колебании (эффект наложения). Поэтому цифровому фильтру долженпредшествовать аналоговый режектор.В примере приведена программа трансверсального КИХ – фильтраЗадание:1.Разработайте программу полосового КИХ-фильтра с полосой пропускания109от 20Гц до 10кГц.2.Разработайте программу режекторного КИХ-фильтра с полосой задержки от5кГц до 15кГц.3.Измерить время выполнения программы, приведенной в примере, иколичество MIPS, которые занимает эта программа.4.Оформить отчет.110Лабораторная работа №3 «Реализация БИХ - фильтра на языке С»Цель работы:Освоение средств языка С для разработки ПО для ЦСПТеоретическое введение:БИХ фильтром или рекурсивным фильтром называется фильтр, осуществляющийвзвешенное суммирование ряда отсчетов входного сигнала и взвешенное суммированиевыходных отсчетов:yi=a0xi+a1xi-1+...+anxi.n+ b0yi+b1yi-1+...+bmyi.mТаким образом, рекурсивный фильтр - это фильтр с бесконечной импульснойхарактеристикой {hk}.Структура фильтра изображена на рис.
6.2.xa0Z-1Z-1Z-1+a1yb0b1a2...b2...anbmZ-1Z-1Z-1Рис. 6.2. Структура БИХ-фильтраОсновными элементами фильтра служат устройства задержки отсчетныхзначений на один интервал дискретизации (Z-1), а также масштабные звенья,выполняющиевцифровойформеоперацииумножениянасоответствующиекоэффициенты.С выходов масштабных звеньев сигналы поступают на сумматор, на выходекоторого образуется отсчет выходного сигнала.В примере приведена программа рекурсивного БИХ - фильтра111Поскольку использование языков высокого уровня позволяет ускорить разработкупрограмм, а так же обеспечивает многоплатформенность (на уровне исходного кода),автор рекомендует, как можно более активно использовать в разработках языки высокогоуровня.Задание:1.Написать и отладить на языке С программу полосового БИХ - фильтра сполосой пропускания от 20Гц до 10кГц.2.Написать и отладить на языке С программу режекторного БИХ - фильтра сполосой задержки от 5 кГц до 15кГц.3.Измерить время выполнения программы, приведенной в примере, иколичество MIPS, которые занимает эта программа4.Оформить отчет112Лабораторная работа №4 «Быстрое преобразование Фурье»Цель работы:Практическое изучение основ спектрального анализаТеоретическое введение:Операция скремблирования (инвертирования бит) широко используется впрограммах вычисления быстрого преобразования Фурье (БПФ).Математическая постановка задачи.Выражение для преобразования Фурье имеет следующий вид:Дискретное преобразование Фурье (ДПФ) ориентировано на дискретные илицифровые вычисления при дискретизации по времени и частоте.
Оно ограниченовычислениями в конечном множестве дискретных точек, представляющих данные, иобразуется квантованием временных t и w, отсюда:Прямая оценка ДПФ требует большой вычислительной мощности, длякомплексных величин:113Отсюда следует, что прямая оценка ДПФ требует 4N2 умножений и примерностолько же сложений. В этой оценке игнорируются вычисления, включающие синус икосинус, которые вычисляются особо, причем вычисление может быть выполненозаранее. Данную постановку задачи можно изложить в матричном виде, более близком креализации в режиме распараллеливания вычислений:Постановка задачи в матричной формеДана матрица w размерности NxN вида:Очевидно, она симметричная в силу свойств экспоненты.Дискретным преобразованием Фурье комплексного вектора а будет комплексныйвектор b вида: b = wa илиИными словами, операция вычисления ДПФ вектора сводится к нахождениюпроизведения матрицы на вектор в комплексной области. Значит, в наиболее простомслучае это вычисление может производиться однослойной адаптивной нейросети,содержащей 2n нейронов с входами каждый.Нейронная модельПредпосылками эффективного приложения параллельных алгоритмов длявычисления являются [16]:•полная адекватность алгоритма ДПФ нейробазису, (в данном случаеалгоритм содержит только операции сложения и умножения);•выполнение на нейронных сетях операций умножения и сложения заодинаковое время (это один из тезисов построения нейронных алгоритмов), что позволяетобойтись без декомпозиции алгоритма типа БПФ и позволяет вычислять ДПФ любой114размерности;•ДПФ является одной из базовых операций во многих задачах обработкисигналов и может использоваться в силу своей адекватности нейронному базису дляпостроения универсального нейрокомпьютера для обработки сигналов (сжатия идекодирования информации и др.).Классическим вариантом использования параллельных нейросетевых алгоритмовдля вычисления спектра является использование нейросети с нейронами типа «Адалин»(adaptive linear neuron - адаптивная модель нейрона) для реализации дискретногопреобразования Фурье.
Адалин представляет собой единичный многовходовой нейрон безнелинейного преобразования (функции активации) с контуром настройки весовыхкоэффициентов, изображенный на рис. 1.Рисунок 1. Структурная схема нейрона типа «Адалин»Адаптивный подбор весовых коэффициентов осуществляется в процессеминимизации квадратичной ошибки, определяемой по формуле (11).Алгоритмы обучения нейросети типа «Адалин»В связи с выполнением условия непрерывности целевой функции (11) сталовозможным применение алгоритма градиентного обучения.Возьмем в качестве критерия оптимизации минимум среднеквадратическойошибки.115функционал оптимизации будет иметь вид: F = {e}2(U).Далее, записав градиентную обучающую процедуру для обучения весовыхкоэффициентов Адалина:Из (12) и (13) следует, что:Недостатком приведенной структуры с точки зрения практической реализацииявляется отсутствие фиксированной разомкнутой системы, производящей вычислениедискретного преобразования Фурье любого заданного вектора за фиксированное числотактов.
Для каждого вектора происходит свой процесс настройки. Время обученияопределяется начальными значениями весов и динамикой процесса минимизациисреднеквадратической ошибки. Число итераций в общем случае можно лишь оценить сразличной степенью достоверности.Полученные в ходе моделирования оценки спектров отдельных типовых сигналовпозволяют сформировать набор векторов вход-выход, который в дальнейшем может бытьиспользован, как для обучения (в данном случае реализации для ДПФ нейроалгоритма),так и для последующего контроля правильности (адекватности) созданной уточненнойпрограммной модели.Полученные в ходе моделирования оценки спектров отдельных типовых сигналовпозволяют сформировать набор векторов вход-выход, который в дальнейшем может бытьиспользован, как для обучения (в данном случае реализации для ДПФ нейроалгоритма),так и для последующего контроля правильности (адекватности) созданной уточненнойпрограммной модели.
Проведение начального моделирования на базе типовых пакетовпозволяет лучше понять алгоритм функционирования, его суть и качественно оценитьзависимость между входными и выходными параметрами. Переход к построению116программной модели позволяет полностью отработать алгоритмический базис (всевычислительные процедуры создаются внутри модели) и оценить числовые погрешности,что достигается переводом всех данные в модели в определённую разрядную сетку.
Еслиошибка оказывается несущественной, т.е. сигнал не будет пересекать границу принятиярешения, разрядности выбраны правильно, в противном случае их следует пересмотреть.Программная модель, разработана на языке C++, включает три компонента:fft.h - комплект функций, реализующих ДПФ.module.h - комплект функций визуализации.nfft.cpp - основной модуль модели.input.sig - входной векторoutput.sig - выходной векторЛистинг программной модели представлен в таблице 1.117118119120121122Задание:1.Измерить время выполнения программы, приведенной в примере, иколичество MIPS, которые занимает эта программа.2.Написать и отладить на языке С программу БПФ.3.Оформить отчет123Приложение1. Порядок проведения лабораторных работ1.Получить у преподавателя номера выполняемых работ и номер.2.Подключить EZ-KIT к COM-порту компьютера3.Подключить разъем питания4.Нажать клавишу Reset5.По листингу приведенному в каждой лабораторной работе разработатьблок-схему реализуемого алгоритма6.Ввести и отладить программу, приведенную в листинге7.Оценить результаты работы программы (для работ №№1-3 оценкаосуществляется путем просмотра соответствующих регистров, для работ №№4-5 оценкапроизводится по векторам, которые необходимо получить у преподавателя)8.Отключить EZ-KIT от компьютера9.Отключить питание EZ-K.IT10.Оформить отчет2.