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

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

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

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

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

textual
Листинг программы
  1. const n = 99;
  2.  
  3. type arr = array [0..2*n] of double;
  4.  
  5. procedure rd(s: string; var z: integer; var a: arr);
  6. var i: integer;
  7. begin
  8.   repeat
  9.     write('Количество отсчётов сигнала ', s, ' в диапазоне [1..', n + 1, ']: ');
  10.     readln(z)
  11.   until z in [1..n+1];
  12.   dec(z);
  13.   writeln('Введите отсчёты сигнала:');
  14.   for i := 0 to z do
  15.     begin
  16.       write(s, '[', i:2, '] = ');
  17.       readln(a[i])
  18.     end;
  19.   for i := z + 1 to 2 * n do a[i] := 0
  20. end;
  21.  
  22. var n1, n2, m, k: integer;
  23.     x, h, y: arr;
  24. begin
  25.   rd('x', n1, x);
  26.   rd('h', n2, h);
  27.   writeln('Линейная дискретная свёртка:');
  28.   for k := 0 to n1 + n2 do
  29.     begin
  30.       y[k] := 0;
  31.       for m := 0 to k do y[k] := y[k] + x[m] * h[k - m];
  32.       writeln('y[', k:3, '] = ', y[k])
  33.     end
  34. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы