Министерство образования и науки РФ
НГТУ
Кафедра ССОД
Курсовой проект
по дисциплине
«Микроконтроллеры» (раздел «Сигнальные процессоры»)
Факультет: АВТ Преподаватель:
Группа: АТ-23 Квеглис С.В.
Студент: Фёдоров Е.В.
Вариант: 31
1 Задание. 3
2 Общий вид алгоритма работы программы.. 4
3 Распределение ресурсов процессора. 5
4 Исходный текст программы.. 6
5 Характеристики фильтра. 7
6 Оценка быстродействия. 12
7 Выводы.. 13
Разработать подпрограмму на языке ассемблера для ЦСП 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.
Необходимо реализовать цифровой КИХ-фильтр. Уравнение выхода для КИХ-фильтра:
. То есть разрабатываемая программа должна осуществлять свёртку входного сигнала с импульсной характеристикой фильтра. Подпрограмма conv осуществляет свёртку одного отсчёта входного сигнала с импульсной характеристикой (результатом этой операции является один отсчёт выходного сигнала).
Отсчёты входного сигнала хранятся в памяти данных в кольцевом массиве 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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.