Смекни!
smekni.com

Цифровой фильтр высокой частоты (стр. 4 из 4)

;---------------------------------------------------------------------------------------------------------------

OutputData: MACRO

DK_PK_Rez

MOV OutPort, SumH

SETB WR

CLR WR

ENDM

************************ ПРОГРАММА ************************

.CODE ;Секция кода, располагается в СSEG

;Таблица векторов прерываний

;Прерывание RESET - стартовый адрес при сбросе микроконтроллера

ORG 0h

LJMP Init ;инициализация программы

;Прерывание TIMER0 - Прерывание таймера/счетчика 0

ORG 000Bh

LJMP Run

*****************************************************************

;Программа инициализации

InitSect: SECTION ;Секция инициализации

Init: InitSteck

InitInt

InitTimer

InitCoeff

InitPSW

ClearXn

ReloadTimer

MainProgramm

*****************************************************************

RunSect: SECTION ;Секцияисполнения

Run: RunACP

ReloadTimer

SavePSW

CheckACP

InputData

PrepareData

ComputeSample

ShiftL

OutputData

PrepareCycl

ReloadPSW

RETI

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

Сосчитаем число машинных циклов, необходимых для вычисления положительного и отрицательного входных отсчетов:

Положительный: 400 машинных циклов

Отрицательный: 418 машинных циклов

Построим импульсную и переходную характеристики фильтра в программе MatLab и сравним их со значениями вычисленными программно:

№ отчета g(t)MatLab g(t)3Ch (6010) g(t) g(t)Округл g(t)
0 0,0234 0168h 0,0234375 0100h 0,0166
1 0,0117 00B4h 0,01171875 0000h 0
2 -0,0664 83FCh -0,06640625 8300h -0,05
3 0,0547 0348h 0,0546875 0300h 0.05
4 0,0859 0528h 0,0859375 0500h 0,0833
5 -0,293 9194h -0,29296875 9100h -0,2833
6 0,395 97ACh переполнение 9700h переполнение
7 -0,293 9194h -0,29296875 9100h -0,2833
8 0,0859 0528h 0,0859375 0500h 0,0833
9 0,0547 0348h 0,0546875 0300h 0.05
10 0,0664 83FCh -0,06640625 8300h -0,05
11 0,0117 00B4h 0,01171875 0000h 0
12 0,0234 0168h 0,0234375 0100h 0,002037

№ отчета h(t)MatLab h(t)3Ch (6010) h(t) h(t)Округл h(t)
0 0,0234 0168h 0,0234375 0100h 0,0166
1 0,0352 021Сh 0,03515625 0200h 0,0333
2 -0,0313 81E0h -0,03125 8100h -0,0166
3 0,0234 0168h 0,0234375 0100h 0,0166
4 0,109 0690h 0,109375 0600h 0,1
5 -0,184 8B04h -0,18359375 8B00h - 0,1833
6 0,211 A2B0h переполнение A200h переполнение
7 -0,082 B444h переполнение B400h переполнение
8 0,00391 AF1Ch переполнение AF00h переполнение
9 0.0586 ABD4h переполнение AB00h переполнение
10 -0.00781 AFD0h переполнение AF00h переполнение
11 0.00391 AF1Ch переполнение AF00h переполнение
12 0,0273 ADB4h переполнение AD00h переполнение

По полученным результатам можно сказать, что программа фильтра работает правильно. Однако при относительно больших значениях, происходит переполнение. Из этого следует вывод, что фильтр будет функционировать только при малых входных отсчетах. Или же следует предусмотреть защиту от переполнения, однако это не входит в задачу курсового проекта.


Заключение

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


Список литературы

1. Л.М. Гольденберг, Ю.П. Левчук, М.Н. Поляк Цифровые фильтры. М.: Связь, 1974

2. Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы. М.: Радио и связь, 1989

3. Соколов Ю.П. Микроконтроллеры семейства MSC-51: Архитектура, программирование, отладка: Учебное пособие / Рязанский государственная радиотехническая академия. Рязань, 2007

4. Сальников Н.И. Цифровые устройства и микропроцессоры: Методические указания к курсовому проекту / Рязанский государственные радиотехнический университет. Рязань, 2007


* Графические материалы взяты из соответствующей номеру литературы.