Разработка подпрограммы на языке ассемблера для ЦСП ADSP-2189, реализующей цифровой фильтр

Страницы работы

13 страниц (Word-файл)

Содержание работы

Министерство образования  и науки РФ

НГТУ

Кафедра ССОД

Курсовой проект

по дисциплине

«Микроконтроллеры» (раздел «Сигнальные процессоры»)

Факультет: АВТ                                                                       Преподаватель:

Группа:       АТ-23                                                                               Квеглис С.В.

Студент:     Фёдоров Е.В.

Вариант:     31

Новосибирск 2005

ОГЛАВЛЕНИЕ

1 Задание. 3

2 Общий вид алгоритма работы программы.. 4

3 Распределение ресурсов процессора. 5

4 Исходный текст программы.. 6

5 Характеристики фильтра. 7

6 Оценка быстродействия. 12

7 Выводы.. 13


1 Задание

Разработать подпрограмму на языке ассемблера для ЦСП ADSP-2189, реализующую цифровой фильтр, каждый i-й отсчёт импульсной характеристики которого задаётся выражением:

,

где ,

где - треугольное окно, а К – весовой коэффициент, определяемый из условия .

            Отсчёты входного сигнала x(n) хранятся в кольцевом массиве X длинной L. Отсчёты выходного сигнала y(n) сохраняются в кольцевом массиве Y длинной L. Отсчёты импульсной характеристики h(i) хранятся в памяти программ в массиве h длинной M (разрабатываемая подпрограмма должна использовать уже готовые значения h(i), а не вычислять их самостоятельно). Подпрограмма должна работать в поточном режиме (при каждом вызове подпрограмма формирует один отсчёт выходного массива, допускается сохранение контекста подпрограммы в специально отведённой области памяти). Адреса обрабатываемых элементов массивов X и Y передаются в подпрограмму через переменные    X_point и Y_point. Адреса начала массива h передаётся в подпрограмму через переменную h_addr.

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

L=2048;

M=64;

=0.15;

x(n), y(n) и h(i) – числа в формате 1.15.


2 Общий вид алгоритма работы программы

            Необходимо реализовать цифровой КИХ-фильтр. Уравнение выхода для КИХ-фильтра:

. То есть разрабатываемая программа должна осуществлять свёртку входного сигнала с импульсной характеристикой фильтра. Подпрограмма conv осуществляет свёртку одного отсчёта входного сигнала с импульсной характеристикой (результатом этой операции является один отсчёт выходного сигнала).


3 Распределение ресурсов процессора

Отсчёты входного сигнала хранятся в памяти данных в кольцевом массиве X длиной 2048 байт.

Отсчёты выходного сигнала хранятся в памяти данных в кольцевом массиве Y длиной 2048 байт.

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

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

Подпрограмма возвращает вычисленное значение выходного сигнала через переменную Y_point, находящуюся в памяти данных.

            Основная  программа в процессе работы использует арифметико-логическое устройство (ALU).

            Использование регистров ALU AX0, AY0 обусловлено ограничением, запрещающим использования команд, содержащих два операнда находящихся в памяти. В частности  AX0 используется для записи адреса массива X в переменную X_point, AY0 используется для записи адреса массива h в переменную h_addr. Так же AX0 используется для записи значения содержащегося в переменной Y_point в соответствующую ячейку массива Y. Регистр результата AR используется в процессе модификации значения указателя хранящегося в X_point (при этом так же используется регистр AX0).

            Подпрограмма conv использует умножитель накопитель (MAC).

            Регистры MAC MX0 и MY0 содержат значения импульсной характеристики и входного сигнала используемые в умножении с накоплением при вычислении свёртки. Регистр результата MR1 содержит результат, записываемый в переменную Y_point.

Похожие материалы

Информация о работе