Курсовая Работа Микропроцессорная техника. БЗС1901 Радаев А.О. Курсовая работа. Московский технический университет связи и информатики
Скачать 1.04 Mb.
|
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ Кафедра Многоканальные телекоммуникационные системы Курсовая работа Выполнил: студент группы БЗС1901 Радаев А.О. Проверил: С.С. Шаврин Москва 2022 1 Исходные данные На рисунке 1 показано задание на проектирование КИХ-фильтра. Рисунок 1 - Задание на проектирование в виде амплитудно-частотной и фазо-частотной характеристик Порядок фильтра n = 79. 2 Процесс расчета КИХ-фильтра Найдем уравнения для каждой прямой, аппроксимируя заданные АЧХ и ФЧХ: Результаты аппроксимации 41 точек показаны в табл. 1. Таблица 1 Аппроксимация АЧХ и ФЧХ
Постоим график действительной и мнимой части от АЧХ и ФЧХ, использовав формулу: , В таблице 2 представлены значения действительной и мнимой частей. Таблица 2 Значения мнимой и действительной частей АЧХ и ФЧХ
Построим с помощью математического пакета MathLab график реальной части комплексного коэффициента передачи по полученным ранее точкам, а также график мнимой части КЧХ в диапазоне от 0 до Fд/2 (4000 Гц). Рисунок 2 - Действительная часть КЧХ в диапазоне 0 ≤ 𝑓 < 𝐹д/2 Рисунок 3 - Мнимая часть КЧХ в диапазоне 0 ≤ 𝑓 < 𝐹д/2 Дополним полученные графики до полной частоты дискретизации (8000 Гц), отразив их зеркально. При отражении мнимой части необходимо также поменять знак на противоположный. Рисунок 4 - Действительная часть КЧХ в диапазоне 0 ≤ 𝑓 < 𝐹д Рисунок 5 - Мнимая часть в диапазоне 0 ≤ 𝑓 < 𝐹д 3. Произведем обратное преобразование Фурье для нахождения импульсной характеристики КЧХ фильтра с помощью математического пакета MathLab: % преобразование Фурье % с приведением результатов вычисления % отсчетов импульсной характеристики % к формату, предназначенному для подключения % к программе реализации цифрового фильтра % на базе 16-разрядных процессоров (ADSP-2181) re_spec = []; im_spec = []; for i=1:1:80 re_spec = [re_spec, 0]; im_spec = [im_spec, 0]; end for k=1:80 w=2.*%pi.*(k-1)./80; x=0; y=0; for j=1:80 x=x+Re3(j).*cos(w.*(j-1))+Im3(j).*sin(w.*(j-1)); y=y-Re3(j).*sin(w.*(j-1))+Im3(j).*cos(w.*(j-1)); end re_spec(k)=x./80.*32768; im_spec(k)=y./80.*32768; end N =0:1:79; scf(5); plot(N,re_spec); Результаты расчета отсчетов импульсной характеристики фильтрa по рассматриваемому примеру представлены в виде графика на рис. 6. Рисунок 6 - Импульсная характеристика фильтра 4. Разработка программы на языке ассемблера процессора ADSP-2181. Реализация программы фильтра, работающего в реальном времени, потребует ликвидации процедуры зацикливания программы и разбиения программы на 3 части. Одна ее часть включена в общую программу в раздел объявления и инициализации переменных. Вторая часть в основную программу, а третья часть оформлена как подпрограмма, ассоциированная с таймерным прерыванием. .SECTION/DM vars; .var/circ signal[80] = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; .SECTION/PM varsp; .var/circ impr[80] = "g_re.dat"; .SECTION/PM program; jump start; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; start: i4 = impr; l4 = length(impr); i0 = signal; l0 = length(signal); m4 = 1; m0 = 0; m1 = 1; my0 = pm(i4,m4); do out until forever; mx0 = IO(0); dm(i0,m1)= mx0, mr = 0; cntr = 78; do filter until ce; filter: mr = mr + mx0 * my0 (ss), mx0 = dm(i0,m1), my0 = pm(i4,m4); mr = mr + mx0 * my0(ss), mx0 = dm(i0,m0), my0 = pm(i4,m4); mr = mr + mx0 * my0(ss), my0 = pm(i4,m4); mr = mr(rnd); if mv sat mr; out: IO(1) = mr1; jump start; Правильность программы проверим, подав на вход фильтра единичный импульс с максимальной амплитудой, т.е. число 32767. На выходе фильтра получаем массив значений импульсной характеристики, значит, программа работает корректно. Рисунок 7 - Единичный импульс. Рисунок 8 - Импульсная характеристика 5. Инвертируем нашу импульсную характеристику, зашумим и подадим на вход фильтра: Рисунок 9 - Зашумленная импульсная характеристика Рисунок 10 - Зашумленная импульсная характеристика на выходе фильтра Исходя из рисунков видно, что фильтр справляется с шумами. 6. Для исследования АЧХ полученного цифрового фильтра в CoolEdit были сформированы синусоиды частотой 600 Гц, 1200 Гц, 1800 Гц, 2200 Гц, 2800 Гц, 3400 Гц и длительностью 0.1 с. Сигналы, полученные на выходе фильтра представлены ниже. Рисунок 11- Синусоида с частотой 600Гц на выходе фильтра Рисунок 12 - Синусоида с частотой 1200Гц на выходе фильтра Рисунок 13 - Синусоида с частотой 1800Гц на выходе фильтра Рисунок 14 - Синусоида с частотой 2200Гц на выходе фильтра Рисунок 15 - Синусоида с частотой 2800Гц на выходе фильтра Рисунок 16 - Синусоида с частотой 3400Гц на выходе фильтр Вывод:В данной курсовой работе был разработан цифровой фильтр с КИХ на микропроцессоре ADSP2181. Расчетная импульсная характеристика совпадает с импульсной характеристикой полученной при подаче на вход программы единичного импульса. Также была проведена проверка АЧХ фильтра с помощью подачи синусойд с частотами в контрольных точках (значения АЧХ:1,0.6,0.2,0,0.4,0). Из полученных результатов можно сделать вывод что фильтр работает правильно. |