Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EKZAMEN_MiTsOS.docx
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
7 Мб
Скачать
☆

18.Реализация нерекурсивного цифрового фильтра на цсп adsp2181

Достоинством нерекурсивных фильтров являются: абсолютная устойчивость, простота и возможность получения линейной фазо-вой характеристики [2, 3]. При реализации фильтра во временной области вычисляется дискретная свертка Y (kТ) = ∑ h (пТ) * х [(k - п)Т ], где h (пТ) - коэффициенты импульсной характеристики фильтра, определяющие АЧХ и ФЧХ фильтра;n меняется от 0 до N - 1, где N - порядок фильтра. Например, для N = 3 имеем разностное уравнение у(п) = h(0) х(п) + h( 1) x(n-1) + h( 2) х(п- 2), где х(п) представляет последнюю входную выборку, х(n-1) - предпоследнюю входную выборку, а х(п-2) - предпредпоследнюю входную выборку. Схема фильтра показана на рис 1.8. Данные на вход фильтра поступают с АЦП через последовательный порт ЦСП. Для хранения данных и коэффициентов фильтра выделяются N ячеек памяти данных и N ячеек памяти программ. В процессорах, имеющих две памяти данных, коэффициенты записываются во вторую память данных. Во время инициализации значения ячеек памяти данных обнуляются. Для получения выходного отсчета необходимо N раз выполнить типовую операцию MAC. На сигнальных процессорах фильтры реализуются в программном виде [5, 6, 8]. Программа состоит из трех частей: главного модуля, подпрограммы инициализации flt.init и подпрограммы фильтрации (см. рис. 4.1). Главный модуль обеспечивает синхронизацию ввода/вывода данных через последовательный порт процес-сора. При этом задаются частоты тактовой и кадровой синхронизации, получаемые делением внутренней тактовой частоты ГТИ. Возможно использование внешней синхронизации. Ввод данных выполняется по сигналам прерываний. В главном модуле программы flt_routine объявляются адреса подпрограмм proc_start и init_start, производится установка регистров последовательного порта и загрузка векторов прерываний и вызывается подпрограмма инициализации. В подпрограмме инициализации объявляется мет-ка входа в подпрограмму init_start, объявляются буферы данных data_buffer и коэффициентов coef_buffer. Входные выборки хранятся в памяти данных, а коэффициенты фильтра в памяти программ. Также задаются возвращаемые значения - состояние регистров начала работы подпрограммы, изменяемые параметры - состояние регистров, используемых в подпрограмме. Для обработки изменений в буфере данных используется циклическая адресация.

Далее вызывается подпрограмма фильтрации fir_proc, выполняющая базовую операцию свертки для очередного отсчета входных данных с приемного регистра порта RXO. Выходной отсчет данных записывается в передающий регистр последовательного порта ТХО. Все коэффициенты и значения данных при фильтрации представляются в формате 1.15. В программе содержатся параметры вызова: начальный адрес данных, порядок фильтра (длина цикла), начальный адрес буфера коэффициентов и значения регистров-модификаторов; возвращаемые значения и изменяемые регистры SI, МХО, MYO, MR, CNTR. Время вычислений для фильтра порядка N составляет (N + 6) Ти.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]