האבולוציה של שני אותות בזמן MATLAB

MATLAB מציע פונקציות תחום זמן או תדירות.

פיתול

פעולת הסיבולת מוגדרת כאינטגרל או כסכום במקרים בודדים, על פני טווח של פונקציות f (T) * g (tT) ביחס ל- T. בזמן הזזת טווח הפונקציה f, כל נקודה מוכפלת הפונקציה השנייה ב g. בתחום הזמן, קונבולוציה היא פעולת חישוב אינטנסיבית, אולם לאחר הפיכתו לתחום התדרים על ידי טרנספורמציה של פורייה, הקונבולוציה פשוטה יותר להכפלות.

פונקציה משולבת

הפונקציות "Conv () או הווריאנט הדו-ממדי שלה" Conv2 () ", יכולות לשמש בקלות וביעילות לשילוב אותות ב- MATLAB, יש להניח כי האותות נמצאים בתחום הזמני או המרחבי, בניגוד לתחום שתי הארגומנטים הראשונים הם שני האותות שיש לתמרן, או האות והמסנן. הטענה השלישית היא טיעון המגדיר את גודל הפלט. האפשרויות התקפות הן "מלאות", "אותו" או "תקף" ("מלא", "שווה" או "תקף").

mix_signal = המרה (אות 1, אות 2, 'אותו'); new_image = Conv2 (image1, image2, 'full');

תחום זמן

ביצוע קונבולוציה בתחום הזמן יכול להיות שימושי כדי להבין איך הפעולה הזו פועלת:

% על ידי שני אותות 1-D, fyg my_length = אורך (f) + אורך (g) - 1; תוצאה = אפסים (my_length, 1);

עבור i = 1: my_length עבור j = 1: אורך (f) אם (i-j + 1)> 0 && (i + j + 1) <אורך (g)) תוצאה (i) = f (j) * g (i-j + 1); ח ח

תחום התדר

את האותות בתחום הזמן ניתן להפוך את תחום התדר באמצעות טרנספורמציה פורייה. MATLAB מיישמת טרנספורמציה מהירה של פורייה באמצעות הפונקציה "ffft ()". בתחום התדרים, שני אותות יכולים להיות מעורבים באמצעות כפל נקודה על ידי המפעיל ". *".

% עבור שני אותות, f ו- g F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));