Материалы к лабораторной работе № 4 ”Рекурсивный фильтр”
Одной из стандартных операций цифровой обработки сигналов является фильтрация. Эта операция обычно реализуется с использованием разностного уравнения. Реализация разностного уравнения требует сдвига, масштабирования и суммирования входных/выходных отсчетов для получения обработанного отсчета. Базовые операции в ADSP-21xx оптимизированы для эффективной реализации разностного уравнения.
Цифровые фильтры классифицируются как КИХ (фильтр с конечной импульсной характеристикой; FIR- Finite-duration Impulse Response) и БИХ (фильтр с бесконечной импульсной характеристикой; IIR - Infinite-duration Impulse Response) фильтры. КИХ фильтры характеризуются как СС (скользящее среднее; Moving Average (MA)) фильтры и реализация их разностных уравнений сводится к операции линейной свертки. БИХ фильтры, с другой стороны, характеризуются как рекурсивные или АР (авторегрессия; Auto Regressive (AR)) фильтры и реализуются линейным разностным уравнением с постоянными коэффициентами. В разделе “Рекурсивный фильтр” мы будем изучать версию программы для имитатора, которая позволит рассмотреть импульсную и переходную характеристики рекурсивного фильтра первого порядка.
Наиболее важной программной концепцией в этом разделе является многофункциональная инструкция. Процессор ADSP-2101 может выполнять умножение/ накопление, чтение памяти данных и чтение памяти программ в одном командном цикле. Внутренняя архитектура построена вокруг этой концепции для эффективной реализации DSP-приложений, так как реализация разностных уравнений для СС и АР фильтров требует использования операций умножения/накопления с последовательным сохранением данных; одна инструкция умножения помещена внутри цикла для того, чтобы эффективно реализовать фильтр.
Рекурсивный фильтр
АР фильтр является рекурсивным и описывается уравнением:
y(n)= b0 x(n) + å ak y(n-k)
k=1
В нижеследующей программе, используя имитатор, мы будем получать импульсную и переходную характеристики рекурсивного фильтра первого порядка, заданного уравнением:
y(n)=b*x(n)+(1-b)* y (n-1).
Аналоговым прототипом такого фильтра является интегрирующая RC-цепь с постоянной времени t = RC. Как известно, время установления переходной характеристики RC-цепи составляет 2.2t. В цифровом варианте t » T/b, где T – период следования отсчётов.
Программа REC_FILT.DSP содержится в файле Описание ЛР4.docв приложении
Если x(n) - последовательность импульсов имеет вид дельта-функции d(n), тогда выходная последовательность фильтра y(n) является импульсной характеристикой. Так, как эта последовательность бесконечная, программа вычисляет только несколько первых отсчетов. Когда последовательность x(n) имеет вид единичного скачка 1(t), выходная последовательность y(n) представляет собой переходную характеристику фильтра.
. Фактически, d(t) и 1(t) могут быть смоделированы выбором соответствующей входной последовательности x(n). Заметим, что в дробном формате 1.15, значение 1 аппроксимируется значением 0х7FFF. Поэтому, в этой программе необходим только один кольцевой буфер - для выходной последовательности y(n). Коэффициент b сохраняется в регистре MY0, в то время как регистр MR инициализируется 0. Уравнение фильтра моделируется c использованием двух многофункциональных инструкций. В цикле вычисляются 10..12 отсчётов выходной характеристики.
Запустите имитатор и загрузите программу REC_FILT.DXE. Мы можем выполнить ее в пошаговом режиме и пронаблюдать работу различных регистров или выполнить программу полностью в режиме прогона. Выполнение программы остановится при попытке имитатора выполнить неопределенную команду в памяти программы. Когда это произойдет, просмотрите область памяти данных, соответствующую буферу dm_y и проверьте, что в этом буфере содержатся значения, соответствующие импульсной характеристике. Входные и выходные последовательности нужно отобразить на графике вместе или друг под другом.
Чтобы получить на выходе фильтра отсчёты переходной характеристики фильтра, нужно подать на вход фильтра единичный скачок 1(t) В дискретном виде нужно подать последовательность входных отсчётов единичной величины, начиная с x(0). Переработайте или замените файл xin.dat и повторите этапы создания, загрузеи и выполнения программы REC_FILT.DXE
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.