Отчет по лабораторной работе №2
Рубрика Микропроцессоры | 15 мая 2009 12:13 | admin
Отчет по лабораторной работе №2
«Цифровая фильтрация»
Задание:
1. Составить схему алгоритма и процедуру сглаживания входного массива выхода объекта управления, используя результаты работы №1
2. Вывести на печать исходный массив и сглаженный
.
Исходные данные:
|
7 |
0; 0; 0; 0; 0,36; 0,66; 0,9; 1,1; 1,26; 1,38; 1,5; 1,58; 1,66; 1,72; 1,76; 1,8; 1,82; 1,86; 1,9; 1,92; 1,94; 1,96 |
Листинг программы:
{Лабораторная работа 2 студента гр. 107433 Скращука А.Л.}
program laba_2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
a: array [1..22] of Real = (0, 0, 0, 0, 0.36, 0.66, 0.9, 1.1, 1.26, 1.38, 1.5, 1.58, 1.66, 1.72, 1.76, 1.8, 1.82, 1.86, 1.9, 1.92, 1.94, 1.96);
var
z1, z2, z3: Boolean;
y: array [1..22] of Real;
e, k0, xv, xn: Real;
i, Error, n1, c: Integer;
procedure DigitalFiltration;
var
i, s: Integer;
begin
for s := 1 to 22 do
begin
y[s] := a[s];
if a[s] <> 0 then Break;
end;
for i := s + 1 to 22 do
begin
if error >= 3 then
begin
Writeln(‘Sboi dannih’);
Halt;
end;
z1 := (a[i] >= xn) and (a[i] <= xv) and (abs(a[i] – a[i - 1]) <= e);
if not z1 then
begin
Inc(Error);
y[i] := y[i - 1];
end
else
begin
z2 := z1 and (a[i] = 0);
if z2 then Inc(n1) else Inc(c);
y[i] := a[i];
z3 := z1 and (a[i] <> 0) and (c > 0);
if z3 then y[i] := (y[i - 1] + a[i]) / 2;
end;
end;
end;
begin
k0 := a[22] / 0.98;
e := 0.5 * k0;
xv := 1.5 * k0;
xn := 0;
Error := 0;
n1 := 0;
c := 0;
Writeln(‘Usilenie k0 = ‘, k0:0:3);
Writeln(‘Pogreshnost” e = ‘, e:0:3);
Writeln(‘Granitzi ‘, xn:0:3,’ <= X <= ‘, xv:0:3);
Writeln;
DigitalFiltration;
Writeln(‘ Vhodn | Filtr’);
Writeln(‘———+———-’);
for i := 1 to 22 do
Writeln(‘ ‘, a[i]:0:2, ‘ | ‘, y[i]:0:3);
Writeln;
Writeln(‘Zaderzhka ‘, n1);
Readln;
end.
Вывод результатов:
Usilenie k0 = 2.000
Pogreshnost’ e = 1.000
Granitzi 0.000 <= X <= 3.000
Vhodn | Filtr
———+———-
0.00 | 0.000
0.00 | 0.000
0.00 | 0.000
0.00 | 0.000
0.36 | 0.360
0.66 | 0.510
0.90 | 0.705
1.10 | 0.903
1.26 | 1.081
1.38 | 1.231
1.50 | 1.365
1.58 | 1.473
1.66 | 1.566
1.72 | 1.643
1.76 | 1.702
1.80 | 1.751
1.82 | 1.785
1.86 | 1.823
1.90 | 1.861
1.92 | 1.891
1.94 | 1.915
1.96 | 1.938
Zaderzhka 0