Методики реализации алгоритмов нерекурсивной и рекурсивной фильтрации на отладочных комплектах ADSPBF-533 EZKIT-Lite (Методические указания к выполнению лабораторных работ № 5, 6), страница 5

Подпрограмма фильтрации принятых данных

Рис. 2.2. Алгоритм программы реализации КИХ-фильтра

Система обработки аудио данных состоит из аудио кодека AD1836 и процессора обработки сигналов ADSP-BF533. схема подключения кодека и процессора показана на рисунке 3. Как видно из рисунка для обмена данными необходимо: произвести настройку кодека, используя SPI-совместимый последовательный порт, произвести настройку последовательного порта SPORT0 процессора на обмен данными с кодеком в соответствии режимом настройки самого кодека. При настройке кодека необходимо, перед загрузкой данных, произвести сброс микросхемы. Вывод сброса подключен к порту A микросхемы флеш-памяти, поэтому для сброса кодека необходимо инициализировать внешнюю шину для обмена данными с модулями флеш-памяти. Только после этого возможно получение доступа к выводам портов памяти. Для реализации всех указанных выше процедур использован проект C_Talkthrough_TDM, поставляемый вместе со средой разработки в качестве примера программы настройки процессора на обмен данными с кодеком. В проекте C_Talkthrough_TDM реализованы все функции настройки подсистем процессора и настройка кодека, необходимая для обмена данными. В обработчике прерывания последовательного порта Sport0_RX_ISR() вызывается подпрограмма обработки принятых данных Process_Data(). По умолчанию, в подпрограмме обработки происходит простое присвоение переменным, хранящим передаваемые на кодек значения данных, принятых с кодека. Однако, достаточно просто встроить в указанную подпрограмму код, реализующий необходимую обработку данных. Таким образом, проект C_Talkthrough_TDM представляет собой очень удобную основу  для построения программ обработки сигналов звукового диапазона и он составляет основу проекта, реализующего алгоритм нерекурсивного фильтра.

Проект демонстрирующий работу нерекурсивного фильтра состоит из следующих файлов: main.c – содержит основную функцию main(), в которой производится вызов подпрограмм настройки всех задействованных подсистем процессора и кодека AD1836 на необходимый режим работы; Initialize.c – содержит реализации всех функций настроек подсистем процессора и кодека; ISR.c – содержит обработчик прерывания последовательного порта SPORT0, в котором вызывается подпрограмма обработки принятых данных Process_Data(); Process_data.c – содержит функцию обработки данных Process_Data() и подпрограмму реализующию алгоритм фильтра с конечной импульсной характеристикой fir(), вызываемую из подпрограммы Process_Data(). Также в файле Process_data.c содержаться переменные, определяющие структуру фильтра: длина фильтра – taps, коэффициенты фильтра – coeffs[], линия задержки фильтра – state[]. Подпрограмма fir() реализует КИХ-фильтр, схема которого изображена на рис. 2.1. Как видно из рисунка КИХ-фильтр состоит из коэффициентов (обозначенных bi), линии внутреннего состояния фильтра и сумматора, на выходе которого формируется результат фильтрации. Работу фильтра можно описать следующим образом: при поступлении очередного отсчета Xk на вход фильтра происходит умножение его на коэффициент b0 фильтра, а также перемножение каждого коэффициента на соответствующий элемент линии задержки, в которой хранятся предудыщие входные отстчеты. Результаты всех перемножений поступают на вход сумматора, на выходе которого формируется выходной отсчет фильтра. После этого происходит сдвиг элементов линии задержки фильтра на один. Нулевому элементу линии задержки присваивается текущий входной отсчет. В подпрограмме fir() полностью реализуется описанный выше алгоритм работы КИХ-фильтра. Для примера в проекте представлен нерекурсивный фильтр 21 порядка с частотой среза 1 кГц. Коэффициенты фильтра рассчитаны при помощи программы Matlab.

3. Порядок выполнения работы

3.1. В пакете Matlab рассчитать нерекурсивный фильтр с характеристиками, заданными в индивидуальном задании (таблица 4.1.)

3.2. Собрать измерительную установку, изображенную на рисунке 2.2.

3.3. Запустить среду разработки Visual DSP и открыть проект Fir.

3.4. Установить на выходе специального измерительного генератора (СИГ) незашумленный сигнал амплитудой 1 В и частотой 500 Гц. Параметры сигнала проконтролировать осциллографом.