MATLAB'da iki zaman işaretinin konvolüsyonu

MATLAB zaman alanı veya frekans fonksiyonları sunar.

kıvrım

Konvolüsyon işlemi, T'ye göre f (T) * g (tT) fonksiyon aralığı boyunca, ayrık durumlarda integral veya toplam olarak tanımlanır. Bir fonksiyonun menzilini hareket ettirirken, her bir nokta, bir çarpımla çarpılır. g içinde ikinci işlev. Zaman dilimi içinde, evrişim yoğun bir hesaplama işlemidir, ancak Fourier dönüşümü ile frekans alanına dönüştürüldükten sonra, evrişim çarpmalara basitleştirilmiştir.

Entegre işlev

"Conv () veya iki boyutlu varyant" conv2 () "fonksiyonları, MATLAB'deki sinyalleri yaymak için kolaylık ve verimlilik ile kullanılabilir, genellikle sinyallerin alanın tersine, zamansal veya uzaysal alanda olduğu varsayılır. İlk iki argüman, konvolte edilecek iki sinyal veya bir sinyal ve bir filtredir. Üçüncü argüman, çıktının boyutunu tanımlayan bir argümandır. Geçerli seçenekler "dolu", "aynı" veya "geçerli" dir. "(" tam ", " eşit "veya" geçerli ").

mixed_signal = conv (sinyal1, sinyal2, 'aynı'); new_image = conv2 (image1, image2, 'full');

Zamanın alanı

Zaman etki alanındaki kıvrımın gerçekleştirilmesi, bu işlemin nasıl çalıştığını anlamak için yararlı olabilir:

iki adet 1-D sinyal ile%, fyg my_length = uzunluk (f) + uzunluk (g) - 1; sonuç = sıfırlar (my_length, 1);

i = 1 için: j = 1 için my_length: uzunluk (f), eğer ((i-j + 1)> 0 && (i-j + 1) <uzunluk (g)) sonucu (i) = f (j) * g (i-j + 1); uç bitiş

Frekans alanı

Zaman alanındaki sinyaller Fourier dönüşümü kullanılarak frekans alanına dönüştürülebilir. MATLAB, "ffft ()" işlevini kullanarak hızlı bir Fourier dönüşümü uygular. Frekans alanında, operatöre ". *" Tarafından bir nokta çarpımı kullanılarak iki sinyal karıştırılabilir.

İki sinyal için%, f ve g F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));