Komputery

Konwolucja w Matlabie z przykładami kodu

Autor: Laura McKinney
Data Utworzenia: 3 Kwiecień 2021
Data Aktualizacji: 13 Móc 2024
Anonim
How to Perform a Convolution in MATLAB | MATLAB Tutorial
Wideo: How to Perform a Convolution in MATLAB | MATLAB Tutorial

Zawartość

Zwoje dyskretne, ciągłe i okrężne mogą być wykonywane w Matlab® w ciągu kilku sekund, pod warunkiem posiadania odpowiedniego kodu i kilku innych podstawowych rzeczy.

Ten samouczek ma na celu:

  • Zademonstruj w uproszczony sposób niezbędne komponenty kodu używanego do wykonywania konwolucji w Matlabie.
  • Wizualizuj wyniki, wykreślając wykresy zawiłych funkcji.

Ten samouczek jest ułożony w następującej kolejności:

  1. Kontynuuje splot.
  2. Dyskretny splot.
  3. Okrągły splot.

Logika:

Prosta koncepcja Twojego kodowania powinna polegać na:

1. Zdefiniuj dwie funkcje dyskretne lub konturowe.

2. Przekształć je za pomocą funkcji Matlab „conv ()”

3.Wykreśl wyniki za pomocą funkcji „subplot ()”.


Kontynuuje konwolucję w Matlabie

Pokażemy to za pomocą dwóch funkcji kontynuacji:

  1. Przebieg impulsu. Oznaczone funkcją „square ()”. To jest wejście x (t) do systemu.
  2. Przejściowa odpowiedź kondensatora. Oznaczone równaniem postaci a * e1 / RC * t. Można to uznać za odpowiedź impulsową h (t) systemu.

Matlab Code for Convolution

odcień = 0; tfinal = 0,05; tstep = 0,0005; t = tint: tstep: tfinal; x = 4 * kwadrat (500 * t, 50); // Użyj tutaj wybranej funkcji. subplot (3, 1, 1); działka (t, x); h = 400 * exp ((-400 * t)); // Użyj wybranej funkcji. subplot (3, 1, 2); działka (t, h); t2 = 2 * tint: tstep: tfinal * 2; // Funkcja złożona wymaga pełnego wykreślenia szerszego zakresu. y = konw (x, h) * tstep; subplot (3, 1, 3); działka (t2, y);

Wiersz 1-5: Zdefiniuj zakres wartości na osi czasu.

Wiersz 7: Fala prostokątna jest inicjalizowana za pomocą funkcji Matlab 'kwadrat()'ma amplitudę 4, ω = 500 rad / s, a cykl pracy 50%.


Wiersz 9:Wątek poboczny() dzieli okno wyjściowe, aby pomieścić 3 wykresy na jednym ekranie, tj. tworzy tabelę z 3 wierszami i 1 kolumną (kolumnami), a następnie ostatni argument w wątek poboczny() wybiera 1 działkę do dalszej obróbki.

Wiersz 10: działki x (t).

Linia 12-15: Definiowana jest odpowiedź impulsowa układu h (t). Wątek poboczny() wybiera drugi wykres i wykreśla na nim h (t).

Wiersz 18: Dla wynikowej funkcji zawiłej zdefiniowano nowy zakres.

Wiersz 19-22: x (t) jest ostatecznie splecione z h (t), a następnie wykreślone w tym nowym zakresie. Dodano * tstep, aby odpowiednio dostosować oś x i y.

Dyskretna konwolucja w Matlabie

Wykonywanie dyskretnego splotu w programie Matlab jest bardzo proste i nieskomplikowane. Wystarczy zdefiniować dyskretne wartości każdej funkcji, a następnie zastosować funkcję ”konw. ()”na obu tych funkcjach.


Kod Matlab dla dyskretnej konwolucji

a = -1; // To jest początkowa wartość czasu dla x (t). b = 0; // Początkowa wartość czasu dla h (t). x = [2 -1 1]; h = [3 2 1]; subplot (3, 1, 1); t = a: a + długość (x) -1; // tstep nie jest tutaj wymagany. rdzeń (t, x); subplot (3, 1, 2); t = b: b + długość (h) -1; łodyga (t, h); y = konw (x, h); subplot (3, 1, 3); t = a + b: a + b + length (y) -1; łodyga (t, y);

Wiersz 4-5: Zdefiniuj dyskretne wartości dla x (t) i h (t).

Wiersz 8, 12 i 18: Zdefiniuj zakres dla osi czasu na wykresach, które mają być następnie wykreślane za pomocą trzon() funkcji (jeśli kreślenie nie jest wymagane, możesz pominąć te kroki).

Circular Convolution w Matlabie

Okrągły splot można wykonać w następujących krokach:

  1. Weź dyskretną transformatę Fouriera dwóch wektorów.
  2. Pomnóż dwie transformacje.
  3. Weź odwrotną dyskretną transformatę Fouriera iloczynu, a wynikiem jest splot kołowy dwóch wektorów.

Kod Matlab dla splotu kołowego

// Zdefiniuj dwa wektory dla splotu kołowego x = [2 5 4 1]; y = [1 4 3]; // Zeropad vectrs uptill 4 + 3-1 xpad = [x zeros (1, 6-length (x))]; ypad = [y zeros (1, 6-length (y))]; // Pomnóż ffts obu wektorów i weź idft produktu ccirc = ifft (fft (xpad). * Fft (ypad)); // Teraz wykres wynikowy (ccirc, 'fill') ylim ([0 35]) title ('Circular Convolution of xpad and ypad');

Pamiętaj, Aby Przeczytać

Popularne Publikacje

Samouczek dotyczący łączenia w programie Excel
Komputery

Samouczek dotyczący łączenia w programie Excel

Neha je t pecjali tą od oprogramowania, który pecjalizuje ię w do to owywaniu i wdrażaniu u ługi erviceNow. Lubi pi ać artykuły zkoleniowe. łownikowa definicja terminu powiązać to „połączenie (rz...
Recenzja Samsung Chromebook Plus
Komputery

Recenzja Samsung Chromebook Plus

Eric uwielbia wy tawiać recenzje produktów. Ma nadzieję, że udo tępniane przez niego informacje pomogą ludziom dokonać inteligentnych zakupów.Mam wy tarczająco długie doświadczenie w po iada...