Konvoluce dvou časových signálů v MATLABu
Konvoluce
Operace konvoluce je definována jako integrál nebo součet v diskrétních případech, přes rozsah funkcí f (T) * g (tT) vzhledem k T. Při pohybu rozsahu funkce f je každý bod vynásoben a druhá funkce v g. V časové oblasti je konvoluce intenzivní výpočetní operací, nicméně po transformaci do kmitočtové domény Fourierovou transformací se konvoluce zjednoduší na násobení.
Integrovaná funkce
Funkce "conv" nebo jeho dvourozměrná varianta "conv2 ()" mohou být použity s lehkostí a efektivitou pro spouštění signálů v MATLABu, obvykle se předpokládá, že signály jsou v časové nebo prostorové doméně, na rozdíl od domény První dva argumenty jsou dva signály, které mají být konvolvovány, nebo signál a filtr. Třetí argument je argument, který definuje velikost výstupu. Platné možnosti jsou "plné", "stejné" nebo "platné "(" plná ", " stejná "nebo" platná ").
mixed_signal = conv (signál1, signál2, 'same'); new_image = conv2 (image1, image2, 'plný');
Doména času
Provedení konvoluce v časové oblasti může být užitečné, abyste pochopili, jak tato operace funguje:
% dvoudrátových signálů, fyg my_length = délka (f) + délka (g) - 1; výsledek = nuly (my_length, 1);
pro i = 1: my_length pro j = 1: délka (f) jestliže {(i-j + 1)> 0 & g (i-j + 1); koncového konce
Doména frekvence
Signály v časové oblasti mohou být transformovány do kmitočtové oblasti pomocí transformace Fourier. MATLAB implementuje rychlou Fourierovu transformaci pomocí funkce "ffft ()". Ve frekvenční oblasti mohou být dva signály smíchány pomocí multiplikace bodů operátorem ". *".
% pro dva signály, f a g F = fft (f); G = fft (g); U = F. * G; u = ifft shift (ifft (U));