Найти дискретную свертку 2 сигналов - C#
Формулировка задачи:
Нужно найти дискретную свертку 2 дискретных сигналов Xk i Yk
расчеты делаются по формуле
здесь должно быть два входных массива и чтобы значения сигналов вводились с консоли
здесь значения сигналов приведены для примера
здесь нужно написать программу, которая считает дискретную свертку двух сигналов
Решение задачи: «Найти дискретную свертку 2 сигналов»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Convolution { class Convolution { private int[] x; private int[] y; public void Initialization() { x=new [] {1,2,3}; y=new [] {1,3,5}; Console.WriteLine("Были введены следующие векторы:\n"); Console.WriteLine("Вектор х:"); foreach (int i in x) Console.WriteLine(i); Console.WriteLine("\nВектор у:"); foreach (int i in y) Console.WriteLine(i); } private int[] DefineConvolution()//x должно быть большей (либо равной) длины { bool full=false; y = y.Reverse().ToArray(); int[] result=new int[x.Length+y.Length-1]; int resultIndex=0; for (int r = 0; r !=0||!full ; r++) { if (r > x.Length - 1) full = true; if(full) r -= 2; for (int j = 0; j < r+1; j++) result[resultIndex] += x[j]*y[y.Length-1-r+j]; resultIndex++; } return result; } public void ShowResult() { Console.WriteLine("\nИх свёртка равна вектору:"); foreach (int i in DefineConvolution()) Console.WriteLine(i); Console.Read(); } } } namespace Convolution { class Program { static void Main() { Convolution convolution=new Convolution(); convolution.Initialization(); convolution.ShowResult(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д