Konvolusi dua sinyal waktu dalam MATLAB

Konvolusi

Operasi konvolusi didefinisikan sebagai integral atau jumlah dalam kasus diskrit, pada rentang fungsi f (T) * g (tT) berkenaan dengan T. Ketika memindahkan rentang fungsi f, setiap titik dikalikan dengan fungsi kedua di g. Dalam domain waktu, konvolusi adalah operasi komputasi yang intensif, namun, setelah mengubahnya menjadi domain frekuensi melalui transformasi Fourier, konvolusi disederhanakan menjadi multiplikasi.

Fungsi terintegrasi

Fungsi "conv (), atau varian dua dimensi" conv2 () ", dapat digunakan dengan mudah dan efisien untuk menggabungkan sinyal di MATLAB. Biasanya diasumsikan bahwa sinyal berada dalam domain temporal atau spasial, berlawanan dengan domain dari dua argumen pertama adalah dua sinyal yang akan dililitkan, atau sinyal dan filter. Argumen ketiga adalah argumen yang mendefinisikan ukuran output. Pilihan yang valid adalah "penuh", "sama" atau "valid "(" penuh ", " sama "atau" valid ").

mixed_signal = conv (signal1, signal2, 'same'); new_image = conv2 (image1, image2, 'full');

Domain waktu

Melakukan konvolusi dalam domain waktu dapat berguna untuk memahami cara kerja operasi ini:

% untuk dua sinyal 1-D, fyg my_length = panjang (f) + panjang (g) - 1; hasil = nol (my_length, 1);

untuk i = 1: my_length untuk j = 1: panjang (f) if ((i-j + 1)> 0 && (i-j + 1) hasil <panjang (g)) (i) = f (j) * g (i-j + 1); end end end

Domain frekuensi

Sinyal dalam domain waktu dapat ditransformasikan ke domain frekuensi menggunakan transformasi Fourier. MATLAB mengimplementasikan transformasi Fourier cepat menggunakan fungsi "ffft ()". Dalam domain frekuensi, dua sinyal dapat dicampur menggunakan perkalian titik menggunakan Operator ". *".

% untuk dua sinyal, fyg F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));

Artikel Menarik