Написать программу линейной свертки двух сигналов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток я новичок в деле программирования и нужна помощь в написании программы для свертки двух сигналов. Помогите пожалуйста люди добрые. Нужен код в паскале а я пока не могу понять как его написать

Решение задачи: «Написать программу линейной свертки двух сигналов»

textual
Листинг программы
const n = 99;
 
type arr = array [0..2*n] of double;
 
procedure rd(s: string; var z: integer; var a: arr);
var i: integer;
begin
  repeat
    write('Количество отсчётов сигнала ', s, ' в диапазоне [1..', n + 1, ']: ');
    readln(z)
  until z in [1..n+1];
  dec(z);
  writeln('Введите отсчёты сигнала:');
  for i := 0 to z do
    begin
      write(s, '[', i:2, '] = ');
      readln(a[i])
    end;
  for i := z + 1 to 2 * n do a[i] := 0
end;
 
var n1, n2, m, k: integer;
    x, h, y: arr;
begin
  rd('x', n1, x);
  rd('h', n2, h);
  writeln('Линейная дискретная свёртка:');
  for k := 0 to n1 + n2 do
    begin
      y[k] := 0;
      for m := 0 to k do y[k] := y[k] + x[m] * h[k - m];
      writeln('y[', k:3, '] = ', y[k])
    end
end.

Объяснение кода листинга программы

  1. Переменная n инициализируется значением 99.
  2. Создается тип arr, который представляет собой массив из 2*n элементов типа double.
  3. Создается процедура rd, которая считывает от пользователя количество отсчетов сигнала и их значения. Затем она запрашивает ввод отсчетов сигнала для каждого из диапазонов [1..n+1]. После этого она уменьшает значение переменной z на единицу и выводит запрос на ввод отсчетов сигнала.
  4. В основной части программы вызывается процедура rd для ввода значений сигналов x и h.
  5. Выводится сообщение о линейной дискретной свертке и затем происходит цикл по всем элементам массива y. На каждом шаге цикла значение y[k] инициализируется нулем, а затем суммируется с произведением значений x[m] и h[k-m].
  6. Выводится значение y[k] для каждой пары k и m.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы