
- •1 Постановка задачи
- •2 Формализация задачи
- •2.1 Функциональная схема цифрового фильтра
- •2.2 Исходное состояние фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •2.4 Формализация определений для рабочего цикла фильтра
- •3 Разработка и описание общего алгоритма функционирования фильтра
- •4 Обоснование построения аппаратной части фильтра
- •5 Разработка и отладка программы на языке команд мк
- •5.1 Исходные определения и ручной расчет результатов работы программы: "Цифровой фильтр (нижних частот)"
- •6 Расчет быстродействия фильтра
- •7 Анализ характеристик фильтра для заданных и реальных значений коэффициентов (нули и полюса, ачх, фчх, оценка устойчивости)
- •8 Заключение (оценка результатов проектирования)
- •9 Список использованных источников
2.4 Формализация определений для рабочего цикла фильтра
2.4.1 Реализация прерываний по входу
Прерывание по внешнему входу выполняет сигнал оповещения с выхода АЦП о готовности кода текущего отсчета Хn. По прерыванию запускается подпрограмма вычисления выходного отсчета Yn (запускается рабочий цикл) цифрового фильтра.
Вектор прерывания по входу равен 0003. С этого адреса в ПЗУ загружается подпрограмма обслуживания прерывания данного типа.
2.4.2 Согласование кодов АЦП и МК
Согласование кодов АЦП и МК не требуется, так как выходной код AD7892AN-3 является арифметическим дополнительным кодом и отображает числовые значения входного знакопеременного напряжения.
2.4.3 Форма представления чисел
Представляем числовые значения отсчетов входного сигнала в виде правильной дроби с фиксированной запятой: старший разряд – знаковый, запятая, остальные двоичные разряды – числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от -1 до +1.
Коэффициенты разностного уравнения определяем как 8-разрядные числа без знака:
К1 = 0,9(10); kP1 =,11100110 (2) = Е6(16) = 0, 89843754 (10).
K2 = 0,4(10); kP2 =,01100110 (2) = 66(16) = 0, 39843752 (10).
Отличие реальных значений коэффициентов (Р) от заданных (Т) предопределяет отличие реальных характеристик фильтра от расчетных.
2.4.4 Хранение текущих данных
Необходимость хранения данных определяется видом заданного разностного уравнения. Для каждого цикла вычисления текущих выходных отсчетов Yn требуется использовать выборку входных отсчетов Xn, Xn-1, Xn-2, Xn-3 и выборку выходных отсчетов Yn, Yn-1. Все указанные отсчеты должны быть доступны для вычислений, и, следовательно, храниться в памяти МП-системы.
Требуется также вычислять 3 текущих произведения: p1n=kP1 · xn-2; p2n= kP1·хn-3; p3n=kP2 · уn-1, которые также должны храниться в памяти.
Следовательно, 8 ячеек ОЗУ определим для хранения данных в текущем цикле обработки входного сигнала (в текущем интервале дискретизации).
После вычисления выходного отсчета Yn, преобразования прямого кода в дополнительный и записи его в ОЗУ, перед приемом нового входного отсчета необходимо сдвинуть отсчеты всех выборок в памяти: n-2-й отсчет на место n-3-го, n-1-й отсчет на место n-2-го, n-й на место n-1-го. Это требуется для подготовки следующего цикла вычислений.
2.4.5 Масштабирование входных отсчетов
Если при вычислении разностного уравнения при принятом 8-разрядном формате представления данных получен числовой результат, выходящий за пределы -1, +1 имеет место переполнение разрядной сетки.
Для исключения переполнения введем масштабирование (ослабление) входных отсчетов путем их умножения на коэффициент масштабирования КМ<1, при котором вычисление разностного уравнения не дает недопустимого результата.
Коэффициент
КМ
получим, предположив, что все отсчеты
в разностном уравнении принимают
максимальные значения (-1, +1) и такие
знаки, при которых слагаемые разностного
уравнения складываются по модулю, то
есть складываются по модулю коэффициенты.
Подставив такие значения в уравнение
для вычисления Yn
и просуммировав по модулю коэффициенты,
получим Yn
max=4,2,
что является недопустимым результатом.
Отсюда заданный коэффициент масштабирования
(число без знака) равен KM=1/
Yn
max=
0,23809523
(10)
0,00111100 (2)=3C
(16) .
2.4.6 Умножение отсчета на коэффициент
При вычислении разностного уравнения и при масштабировании, перемножаются числа со знаком (отсчеты) на числа без знака (положительные числа).
Умножение множителя со знаком на множитель без знака мы реализуем на основе смены знака у отрицательного множимого, перемножения беззнаковых сомножителей с соответствующей сменой знака у произведения.