Отчет по лабораторной работе №2

 

Отчет по лабораторной работе №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

Метки: , , , , , ,