Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
цифра моя.doc
Скачиваний:
13
Добавлен:
17.09.2019
Размер:
553.98 Кб
Скачать

5.1 Исходные определения и ручной расчет результатов работы программы: "Цифровой фильтр (нижних частот)"

Разностное уравнение представим в виде:

yn = xn + xn-1+ 0,9xn-2 +0,9xn-3+ 0,4уn-1 = хn +xn-1 + k1 xn-2 + k1xn-3 +k2 уn-1;

k1 = 0,9; k2 = 0,4.

1) Реализуемый коэффициент масштабирования kМР (число без зна­ка) при 8-разрядном формате беззнаковых коэффициентов:

kМ = 0,239095(10); kМР = 0,001111(2) = 3C(16) ≈ 0,234375 (10).

2) Реализуемые коэффициенты разностного уравнения k1, k2 (числа без знака) при 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).

3) Код АЦП для положительного входного отсчёта максимальной амплитуды (немасштабированный отсчёт):

xn = 01111111(2) = 7F(16).

4) Масштабированный входной положительный отсчёт максималь­ной амплитуды:

xn = kMP xn = 0,001111(2) · 0,1111111(2) = 3C(16) · 7F(l6) ≈ 1D(16) = 0,0011101(2)=

=+0,227 (10).

5) Зададим состояние памяти для положительных входных отсчетов и отрицательных выходных отсчётов максимальной амплитуды:

Адрес ячейки памяти

Содержимое ячейки памяти

0800 h (порт РA РФ55)

xn = 7F(l6)

немасштабированный входной отсчет

30h

Вычисляется программой в текущем цикле:

xn = 1D(16) = 0,0011101(2)= +0,227 (10) масштабированный входной отсчет

31h

xn-1 = 1D(16) = 0,0011101(2)= +0,227 (10)

32h

xn-2 = 1D(16) = 0,0011101(2)= +0,227 (10)

33h

xn-3 = 1D(16) = 0,0011101(2)= +0,227 (10)

40h

Вычисляется программой в текущем цикле: yn=7E(16)

41h

yn-1 = 1D(16) = 0,0011101(2)= +0,227 (10)

50h

Вычисляется программой в текущем цикле:

p1n =04(16)

51h

Вычисляется программой в текущем цикле:

P2n =28(16)

52h

Вычисляется программой в текущем цикле:

P3n =28(16)

6) Получим произведение p1n:

p1n = kP1 xn-2 = E6(16)·1D16)=0,1110011(2)·0,0011101(2)= 0,0001101 (2)=1A(16)=0,203123(10).

6.1) Получим произведение p2n:

p2n = kP1 xn-3 = E6(16)·1D16)=0,1110011(2)·0,0011101(2)=0,0001101(2)=1A(16)=0,203123(10).

7) Получим произведение p3n:

P3n= kP2 yn-1= 66(16) · 1D16)=0,0110011(2)·0,0011101(2)=0B(16)=0,00001011(2)=0,090277(10).

8) Вычислим выходной отсчёт:

ynn+xn-1+k1xn-2+k1xn-3+k2уn-1=1D(16)+1D(16)+1A(16)+1A(16)+B(16)=79(16)=

=0,1111001(2)=+0,950523 (10).

Полученные расчётные значения следует рассматривать как кон­трольные при сопоставлении с результатами, которые вычисляет программ­ный отладчик. Расчетные значения и соответствующие им значения, вычисляемые программой, идентичны программа работает правильно (без переполнения и логических ошибок).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]