Splot dwóch sygnałów czasowych w MATLAB
Konwolucja
Operacja splotu jest definiowana jako całka lub suma w dyskretnych przypadkach, w zakresie funkcji f (T) * g (tT) względem T. Podczas przesuwania zakresu funkcji f, każdy punkt jest mnożony przez druga funkcja wg W dziedzinie czasu splot jest intensywną operacją obliczeniową, jednak po przekształceniu go w domenę częstotliwości przez transformację Fouriera, splatanie upraszcza się do multiplikacji.
Zintegrowana funkcja
Funkcje "conv () lub jego dwuwymiarowy wariant" conv2 () "mogą być używane z łatwością i wydajnością w celu splatania sygnałów w MATLAB, zwykle przyjmuje się, że sygnały są w domenie czasowej lub przestrzennej, w przeciwieństwie do domeny Pierwsze dwa argumenty to dwa sygnały, które mają być spajane, lub sygnał i filtr. Trzeci argument jest argumentem określającym rozmiar wyjścia. Prawidłowe opcje to "pełny", "ten sam" lub "ważny". "(" pełny ", " równy "lub" prawidłowy ").
mixed_signal = conv (signal1, signal2, 'same'); new_image = conv2 (image1, image2, 'full');
Domena czasu
Wykonanie splotu w dziedzinie czasu może być przydatne, aby zrozumieć, jak działa ta operacja:
% za pomocą dwóch sygnałów 1-D, fyg my_length = length (f) + length (g) - 1; result = zera (my_length, 1);
dla i = 1: my_length dla j = 1: length (f) if ((i-j + 1)> 0 && (i-j + 1) <length (g)) result (i) = f (j) * g (i-j + 1); koniec końcówki
Domena częstotliwości
Sygnały w dziedzinie czasu mogą być przekształcane do dziedziny częstotliwości za pomocą transformacji Fouriera. MATLAB implementuje szybką transformację Fouriera za pomocą funkcji "ffft ()". W dziedzinie częstotliwości dwa sygnały mogą być mieszane za pomocą mnożenia punktowego przez operatora ". *".
% dla dwóch sygnałów, fiw F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));