MATLAB ist eine Software für Engineering Simulation , Signalverarbeitung, mathematische Operationen und Datenanalyse. Faltung ist eine mathematische Operation, die zwei Funktionen mischt zusammen . MATLAB stellt Verfahren zum Falten zwei Zeitsignale im Zeit - oder Frequenzbereich . Sie können integrierte Funktionen zur Zeit -Signale in MATAB falten , oder Ihren eigenen Code schreiben , damit Sie verstehen die Faltung Betrieb . Faltung
Faltungsoperation wird als Integral oder die Summe in diskrete Fälle definiert sind, über den Bereich von der Funktion f (T) * g ( tT ) bezüglich T. Während der Bewegung über die Auswahl einer Funktion f wird jeder Punkt durch eine zweite Funktion g multipliziert . In der Zeit - Domain ist eine Faltung rechenintensiv Betrieb ; . Jedoch nach der Transformation in den Frequenzbereich mit einer Fourier-Transformation, Faltung vereinfacht Multiplikationen
eingebaute Funktion
" conv ( ) " oder die zweidimensionale Variante " conv2 () "-Funktionen verwendet werden, um einfach und effizient , um Signale in MATLAB convolve werden. Es wird in der Regel davon ausgegangen, dass die Signale in der Zeit - oder Raum - Domäne sind , wie in den Frequenzbereich gegenüber. Die ersten beiden Argumente sind die beiden Signale zu gefaltet werden , oder ein Signal und ein Filter . Das dritte Argument ist eine Form Argument, das die Größe der Ausgabe definiert . Gültige Optionen sind " voll", " gleich" oder "gültig"
mixed_signal = conv ( Signal1 , signal2 , ' gleichen '); . New_image = conv2 ( Bild1 , Bild2 , ' voll ');
Time-Domain
funktioniert zwar Faltung im Zeitbereich , kann es sinnvoll sein , zu verstehen , wie die Faltung Betrieb Werke < . br>
% für zwei 1-D Signale , f und gmy_length = length ( f) + Länge ( g) - 1; result = Nullen ( my_length , 1);
für i = 1: my_lengthfor j = 1: Länge ( f) if (( i- j +1) > 0 && (i- j +1) Frequency - Domain
Zeitsignale in den Frequenzbereich mit Hilfe der Fourier-Transformation transformiert werden. MATLAB implementiert eine schnelle Fourier-Transformation in der " fft () "-Funktion zu transformieren. Im Frequenzbereich lassen sich zwei Signale gemischt mit punktweise Multiplikation mit dem Operator werden
% Für zwei Signale , f und gF = fft ( f) "*. "; . G = fft ( g ); U = F * G; . u = ifftshift ( ifft (U)) ;