Найти дискретную свертку 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();
        }
    }
}

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


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

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

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