
- •Содержание
- •1. Постановка задачи
- •2. Формализация задачи
- •2.1 Функциональная схема цифрового фильтра
- •2.2 Исходное состояние фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •2.3.1 Частота синхронизации мк
- •2.3.2 Настройка таймера – счетчика т/с0
- •2.3.3 Настройка прерываний
- •2.4.4 Хранение текущих данных
- •2.4.5 Масштабирование входных отсчетов
- •2.4.6 Умножение отсчета на коэффициент
- •3. Разработка и описание общего алгоритма функционирования фильтра
- •4. Обоснование построения аппаратной части фильтра
- •5. Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчёт результатов работы программы: "Цифровой фильтр (режекторный)"
- •6. Расчет быстродействия фильтра
- •7. Анализ характеристик фильтра для заданных и реальных значений коэффициентов (нули и полюса, ачх, фчх, оценка устойчивости)
- •8. Заключение (оценка результатов проектирования)
- •9. Список использованных источников.
- •Приложение а (схема мп-системы на базе мк кр1830ве31).
- •Приложение б (список условных сокращений).
Исходные определения и ручной расчёт результатов работы программы: "Цифровой фильтр (режекторный)"
Разностное уравнение представим в виде:
yn = xn +1.19xn-2 +0,017 уn-2 = хn + k1 xn-2 + k2 уn-2; k1 =1,19, k2 = 0,017.
1) Реализуемый коэффициент масштабирования kМР (число без знака) при 8-разрядном формате беззнаковых коэффициентов:
kМ = 0,45310376(10); kМР = ,01110011 (2) =73(16) = 0,44921875(10).
2) Реализуемые коэффициенты разностного уравнения k1, k2 (числа без знака) при 8-разрядном формате беззнаковых коэффициентов:
k1 = 0,19(10); kP1 =,00110000 (2) =30(16) = 0,1875(10).
k2 = 0,017(10); kP2 =,00000100 (2) = 04 (16) = 0,015625(10).
3) Код АЦП для положительного входного отсчёта максимальной амплитуды (немасштабированный отсчёт):
xn = 0'1111111(2) = 7F(16).
4) Масштабированный входной положительный отсчёт максимальной амплитуды:
xn = kMP xn = ,01110011(2) · 0'1111111(2) = 73(16) · 7F(l6) ≈ 39(16) = 0'00111001(2)= =+0,445312510).
5) Зададим состояние памяти для положительных входных отсчетов и отрицательных выходных отсчётов максимальной амплитуды:
Адрес ячейки памяти |
Содержимое ячейки памяти |
7000h (порт РA РУ55) |
x немасштабированный входной отсчёт |
30h |
Вычисляется программой в текущем цикле:
x масштабированный входной отсчёт |
31h |
x
|
32h |
x
|
40h |
Вычисляется программой в текущем цикле:
y
=7C |
41h |
y |
42h |
y |
50h |
Вычисляется программой в текущем цикле: P1n= 0A(16) |
51h |
Вычисляется программой в текущем цикле: P2n= 0(16)
|
6) Получим произведение p1n:
p1n = kP1 xn-2 = 30(16) · 39(16) =0011 0000 (2) · 0011 1001(2) ≈ 0A(16) =0000 1010(2) =
= +0.0390625 (10).
7) Получим произведение p2n:
P2n = kP2 yn-2 = 04(16) · 39(16) =0000 0100 (2) ·0011 1001(2) ≈ 0(16) = 0000 0000(2) =
= +0 (10).
8) Вычислим выходной отсчёт:
yn = xn + xn-2+p1n + p2n = 39(16) +39(16) + 0A(16) + 0(16) = 7C(16) = 0111 1100(2) =
=+0.96875 (10)
Полученные расчётные значения следует рассматривать как контрольные при сопоставлении с результатами, которые вычисляет программный отладчик. Расчетные значения и соответствующие им значения, вычисляемые программой, идентичны - программа работает правильно (без переполнения и логических ошибок).
6. Расчет быстродействия фильтра
Быстродействие фильтра в рабочем режиме оценим как время, необходимое для выполнения всех операций, требуемых для получения входного отсчета, вычисления выходного, выдачи его в выходной порт, подготовки следующего цикла. Для проектируемого фильтра это время складывается как сумма затрат времени на преобразование аналогового входного отсчета в код, обработку прерывания от Т/С0 и обработку прерывания от входа .
Длительность машинного цикла МК (1 мкс) постоянная, поэтому затраты времени на обработку прерываний можно оценивать количеством требуемых для этого машинных циклов.
При расчете суммарного количества машинных циклов для рабочего режима фильтра следует учесть, что разработанная программа содержит разветвления по знаку обрабатываемого отсчета (команды JC). Умножение отрицательного отсчета более длительно по времени. Время выполнения рабочего цикла максимально в том случае, когда все обрабатываемые отсчеты отрицательны.
Таким образом, для выполнения одного цикла работы проектируемого фильтра ТФ (с момента прерывания от Т/С0 до выхода на метку STOP) требуемое время равно:
ТФ=76ТМЦ + ТАЦП = 77,3 мкс < ТД = 100 мкс,
где ТАЦП =1,3 мкс – время преобразования в АЦП.
Условие фильтрации аналогового сигнала в реальном времени выполняется с запасом в 22,7 мкс.