1 Příklady konvoluce1 Jiří Holčík Nejdříve zopakování – definiční vztahy a vlastnosti Poznámka: V této kapitolce se nebudeme zabývat praktickým využitím konvolučního vztahu, k tomu přistoupíme později. Zde se pokusíme pouze objasnit principy výpočtu, příp. vysvětlíme vlastnosti konvoluční posloupnosti/funkce v závislosti na vlastnostech vstupů. Na tomto místě rozumíme konvolucí funkční vztah mezi dvěma funkcemi, resp. posloupnostmi téhož argumentu, který nemusí nezbytně vyjadřovat časovou závislost tak, jak předpokládáme zde. (Konvoluční vztah se používá např. i pro modifikaci funkce rozložení pravděpo- dobnosti.) Primární obecný definiční integrační vztah pro spojitou nezávislou proměnou má tvar x(t) = x1(t) ∗ x2(t) = � x1(τ) ∞ −∞ . x2(t − τ). dτ, (1) kde funkce x2(t) se nazývá konvoluční jádro. Jeho diskrétní varianta, kterou se budeme nadále téměř výhradně zabývat, je x(n) = x1(n) ∗ x2(n) = � x1(m). x2(n − m) ∞ m=−∞ (2) Pro kauzální2 posloupnosti, tj. takové, pro které platí x(n) = 0 pro n < 0 se konvoluční vztah mění na (viz obr.1) .)mn(x).m(x)n(x)n(x)n(x n 0m 2121 ∑= −=∗= (3) Obr.1 Interval výpočtu konvoluce dvou kauzálních posloupností 1 Konvoluce (lat. convolutus – stočený, sbalený, ovinutý, namotaný, smotaný; con- s, dohromady; volvere otáčení, kroužení, motání) ~ usuzování, odvozování výroků z jiných souvislostí. Podle i nternetového slovníku SCS.ABZ.CZ také „spleť” či „spletení”. Všechny tyto významy souvisí se způsobem výpočtu konvoluční funkce. 2 Kauzální je takový systém, jehož výstup v každém časovém okamžiku t0 závisí pouze na průběhu vstupní veličiny x(t) pro t ≤ t0. Jinými slovy, hodnota výstupu systému v každém okamžiku závisí pouze na vstupu v daném okamžiku a jeho průběhu v minulosti, nikoliv na budoucích hodnotách vstupní veličiny. Systém, který tento požadavek nesplňuje, nazýváme nekauzální, příp. anticipativní. Zprostředkovaně jako kauzální označujeme takové posloupnosti, pro které platí x(n) = 0 pro n < 0. 2 V reálných podmínkách při zpracování reálných dat samozřejmě nejsou posloupnosti x1(n) a x2(n) nekonečné, nýbrž mají konečnou délku. Předpokládejme obecně N1 vzorků v případě posloupnosti x1(n) a N2 vzorků v případě posloupnosti x2(n). Dále položme x1(n) = 0 pro n ∉ 〈0, N1‒1〉 a analogicky x2(n) = 0 pro n ∉ 〈0, N2 ‒1〉. V tom případě je Posloupnost x(n), jež je výsledkem konvoluce, lze považovat za posloupnost x1(n) modifikovanou vlastnostmi konvolučního jádra (x2(n)). Jak vyplývá hned z dále uvedeného komutativního zákona, význam obou vstupních posloupností lze zaměnit. Význam konvoluce lze vnímat ještě i jinak – jako váhovaný, tzv. klouzavý průměr posloupnosti x1(m) v čase n, přičemž váhování je dáno v čase invertovanou jádrovou posloupností x2(‒m) posunutou o čas n. Pro konvoluci platí následující zákony: • komutativní zákon x1(n) ∗ x2(n) = x2(n) ∗ x1(n); (5) • distributivní zákon x1(n) ∗ [x2(n) + x3(n)] = x1(n) ∗ x2(n) + x1(n) ∗ x3(n); (6) • asociativní zákon x1(n) ∗ [x2(n) ∗ x3(n)] = [x1(n) ∗ x2(n)] ∗ x3(n); (7) • zákon o posunu v čase Je-li x1(n) ∗ x2(n) = c(n), pak x1(n) ∗ x2(n − N) = c(n − N), x1(n − N) ∗ x2(n) = c(n − N)  a x1(n − N1) ∗ x2(n − N2) = c(n − N1 − N2). (8) • šířková vlastnost konvoluce Pokud j sou doby t rvání/šířky (tj. počty vzorků v ne nulové s ekvenci) pos loupností x1(n) a x2(n) konečné, např. N1 v případě posloupnosti x 1(n) a N 2 pro x 2(n), je počet vzorků výsledné konvoluční posloupnosti obou originálních pos loupností rovna N1 + N2 ‒ 1. • konvoluce posloupnosti s jednotkovým impulzem Výsledkem konvol uce pos loupnosti x(n) s jednotkovým impulzem je posloupnost x(n). Z definice konvol uce vy plývá (obr.2), že ∑ ∞ −∞= −δ=δ m )mn().m(x)n(*)n(x . (9) Jak pl yne i z obr.2 součin jednotkového impulzu s posloupností x(n) je roven hodnotě vzorku posloupnosti x(n) v poloze, do které je (4) Obr.2 Geometrická reprezentace konvoluce posloupnosti x(n) s jednotkovým impulzem 3 jednotkový impulz posunutý. Můžeme tedy podle obr.2 psát, že x(n) = … + x(‒1).δ(n+1) + x(0).δ(n) + x(1).δ(n‒1) + x(2).δ(n‒2) + …= = ∑ x(m)∞ m=−∞ δ(n − m). (10) Protože δ(n‒m) reprezentuje jednotkový impulz posunutý oproti počátku o m vzorků, je suma ve vztazích (9) i (10) rovna hodnotě x(m) pro m = n, tj. x(n). Tedy x(n) ∗ δ(n) = x(n). (11) Jak je vidět, s pravidlem pro konvoluci posloupnosti s jednotkovým impulzem souvisí i to v poznámce uvedené pěkné české slovo „spleť“. Další opakování – algoritmy výpočtu Základním postupem výpočtu konvoluce je ten, který vyplývá z definice. Spočívá v součtu možných dílčích součinů prvků posloupnosti x1 a v čase invertované a o n prvků posunuté posloupnosti x2 (obr.3). Příklad 1 Podle definičního vztahu spočítejte konvoluci dvou konečných posloupností x1(n) = {1, 2, 3, 2, 1} a x2(n) = {1, 2, ‒1}. Řešení: x1(n) x2(‒m) x2(1‒m) x2(2‒m) x2(3‒m) x2(4‒m) x2(5‒m) x2(6‒m) 1 2 3 2 1 ‒1 2 1 ‒1 2 1 ‒1 2 1 ‒1 2 1 ‒1 2 1 ‒1 2 1 ‒1 2 1 x(0)= 1 x(1)= 4 x(2)= 6 x(3)= 6 x(4)= 2 x(5)= 0 x(6)= ‒1 Ve výsledné posloupnosti x(n) = {1, 4, 6, 6, 2, 0, -1} je zřejmá platnost šířkového pravidla – posloupnost x1(n) má 5 prvků, posloupnost x2(n) tři prvky a výsledná posloupnost x(n) má 5 + 3 ‒ 1 = 7 prvků. Dále je ze způsobu výpočtu vidět, že na začátku a konci výpočtu nedochází k plnohodnotnému součtu tří součinů, tak jak odpovídá délce posloupnosti x2(n). Tedy na začátku a konci výsledné posloupnosti x(n) se vyskytuje přechodný děj o délce, která odpovídá délce kratší posloupnosti mínus jedna. Pro výpočet konvoluce dvou konečných posloupností se také občas uvádí následující výpočetní schéma: {x10, x11, … , x1,N1} * {x20, x21, …, x2,N2} = = (x10.x20) (x10.x21) …………… ……… (x10.x2,N2) (x11.x20) (x11.x21) ………….. (x11.x2,N2-1) (x11.x2,N2) (x12..x20) (x12.x21) …. (x12.x2,N2-2) (x12.x2,N2-1) (x12.x2,N2) ⁞ ⁞ ⁞ ⁞ (x1,N1.x2,N2-3) (x1,N1.x2,N2-2) (x1,N1.x2,N2-1) (x1,N1.x2,N2) součet dílčích součinů v jednotlivých sloupcích Obr.3 Schéma výpočetního algoritmu konvoluce konečných posloupností 4 Příklad 2 Pro posloupnosti zadané v Příkladu 1 vypočtěte jejich konvoluci pomocí výše uvedeného schématu. Řešení: {1, 2, 3, 2, 1} * {1, 2, ‒1} = 1 2 ‒1 2 4 ‒2 3 6 ‒3 2 4 ‒2 1 2 ‒1 x(n) = {1, 4, 6, 6, 2, 0, ‒1} Zde nelze než konstatovat, že oba způsoby výpočtu vedou k témuž výsledku. Posledním algoritmem pro konvoluční výpočet je maticová varianta podle ná sledujícího vztahu, vhodná především pro softwarové implementace. Předpokládejme, že posloupnost x1 má prvky x1(n) = {x10, x11, …, x1,N1} a posloupnost x2 prvky x2(n) = {x20, x21, …, x2,N2}. Konvoluční výpočet je realizován násobením řádkového vektoru obsahujícího prvky posloupnosti x1 diagonální maticí s počtem řádků rovným počtu prvků posloupnosti x1 a počtem sloupců určeným délkou výsledné konvoluční posloupnosti, tj. N1+N2‒1. Matice obsahuje prvky posloupnosti x2 uspořádanými diagonálně s prvním prvkem na hlavní diagonále. Zbylé prvky matice jsou doplněny nulami (obr.4). {x10, x11, x12, …, x1,N1}*{x20, x21, x22, …, x2,N2} = Obr.4 Výpočet konvoluce dvou posloupností pomocí maticového počtu Příklad 3 Pro posloupnosti zadané v Příkladu 1 vypočtěte jejich konvoluci pomocí maticového počtu. Řešení: {1, 2, 3, 2, 1} * {1, 2, ‒1} = [1, 2, 3, 2, 1]· ⎣ ⎢ ⎢ ⎢ ⎡ 1 0 0 0 0 2 1 0 0 0 −1 2 1 0 0 0 −1 2 1 0 0 0 −1 2 1 0 0 0 −1 2 0 0 0 0 −1⎦ ⎥ ⎥ ⎥ ⎤ = = [1·1+2·0+3·0+2·0+1·0; 1·2+2·1+3·0+2·0+1·0; 1·(‒1)+2·2+3·1+2·0+1·0; 1·0+2·(‒1)+3·2+ +2·1+ 1·0; 1·0+2·0+3·(‒1)+2·2+1·1; 1·0+2·0+3·0+2·(‒1)+1·2; 1·0+2·0+3·0+2·0+1·(‒1)] = = {1, 4, 6, 6, 2, 0, ‒1}. 5 A když už jsme si všechno potřebné zopakovali, tak se dejme do počítání (a taky přemýšlení o tom co počítání přineslo). Příklad 4 Začněme příkladem výpočtu konvoluce dvou funkcí se spojitým časem (a bude to skoro poslední případ, kdy se v této kapitole budeme zabývat funkcemi spojitými v čase). Určete průběh konvoluce dvou stejných (co do velikosti i doby trvání) obdélníkových funkcí se spojitým časem. Řešení: Nejdříve trochu ne příliš matematické úvahy. Tvar zadaných funkcí lze nahlédnout na obr.4a. Předpokládáme, že doba trvání obou obdélníků je T a jejich výška A. Protože oba obdélníky j sou j ednorázové, ne má s myslu s e z abývat úvahami, co předchází a následuje po jejich bezprostřední vzájemné interakci. Lze tedy začít v poloze zobrazené na obr.4b, kdy je funkce x2(t) právě jen invertovaná v čase. Posun funkce x2(t) z této iniciační polohy způsobuje, že součin obou funkcí již není nulový a s růstem posunu roste i plocha/integrál vymezená/ý i ntervalem j ejich nenulového součinu (obr.4c). Tento interval začíná na počátku časové osy (τ = 0) a zvětšuje se s hodnotou posunu t. Ta nenulová součinová plocha roste lineárně s velikostí posunu t a maxima nabývá právě když obě obdélníkové funkce tzv. lícují, tj. když se funkce x2(t) posunula přesně o dobu svého trvání, tedy pro x2(T‒τ). Od tohoto okamžiku s e pl ocha vymezená nenulovým součinem obou funkcí bude zmenšovat, opět lineárně s časem a časový interval bude definován 〈t‒T, T〉. Hodnota výsledné konvoluční funkce proto klesne k nule v čase 2T, kdy už vzájemný přesah obou obdélníků bude nulový. Na základě uvedeného rozboru můžeme přikročit k výpočtu. Definiční integrál x(t) = x1(t) ∗ x2(t) = � x1(τ) ∞ −∞ . x2(t − τ). dτ, se rozdělí na dva případy: a) pro čas v intervalu 〈0, T〉 a b) v intervalu 〈T, 2T〉. ad a) t ∈ 〈0, T〉 x(t) = x1(t) ∗ x2(t) = � x1(τ) t 0 . x2(t − τ). dτ = = � A t 0 . A. dτ = A2 . [τ]0 t = A2 . t. Dosadíme-li obě mezní hodnoty časového intervalu, pak dostáváme pro t = 0 hodnotu konvoluční funkce x(t) = 0 a pro t = T x(t) = A2 T. Mezi těmito dvěma mezními hodnotami je konvoluční funkce lineárně rostoucí s časem podle vztahu x(t) = A2 t tak, jak jsme očekávali ve výše uvedeném rozboru. ad b) t ∈ 〈T, 2T〉 x(t) = x1(t) ∗ x2(t) = � x1(τ) T t−T . x2(t − τ). dτ = � A T t−T . A. dτ = A2 . [τ]t−T T = = A2 . (T − t + T) = A2 . (2T − t). Obr.4 Ilustrace výpočtu konvoluce podle zadání Příkladu 4. Je užitečné si uvědomit rozdíl mezi proměnnými t (proměnná výsledné konvoluční funkce a tím i současně proměnná časového posunu) a τ (integrační proměnná). 6 Dosadíme-li opět mezní hodnoty časového intervalu, pak pro t = T logicky dostáváme tutéž hodnotu jako ve výše uvedeném případu x(T) = A2 T a pro t = 2T je hodnota konvoluční funkce opět nulová x(2T) = 0. Průběh konvoluční funkce v tomto dílčím intervalu bude s časem lineárně klesající. Konvoluční funkce je nenulová v intervalu 〈0, 2T〉. Lze tedy konstatovat, že pro funkce spojité v čase je šířka (doba trvání) výsledné konvoluční funkce dána součtem dob trvání obou dílčích funkcí. Příklad 5 Zde si ověřme, že výsledky získané v přechozím příkladu platí i pro posloupnosti s diskrétním časem. Tedy určeme konvoluci posloupností x1(n) = x2(n) = {2, 2, 2, 2, 2} pro n ∈ 〈0, 4〉 a rovné nule pro n ∉ 〈0, 4〉. Řešení: Použijme (a bude to tak ve všech následujících příkladech) algoritmus vyplývající z definičního vztahu. Zbylé dva postupy lze použít pro samostatné procvičení a posléze se lze rozhodnout, který z algoritmů se ukáže jako nejlepší z hlediska snadnosti a přehlednosti výpočtu. Výsledná konvoluční posloupnost x(n) = {4, 8, 12, 16, 20, 16, 12, 8, 4 } je opět lineárně rostoucí, resp. klesající před a po okamžiku, kdy nastává úplné překrytí obou posloupností, tj. pro n= 4. První a poslední hodnota posloupnosti x(n) nejsou nulové, což vyplývá z v čase diskrétního charakteru dat. Nulové hodnoty by samozřejmě předcházely a následovaly před první a poslední hodnotou posloupnosti x(n). Maximální hodnota posloupnosti x(4) = 20 je dána součinem odpovídajících si hodnot obou posloupností a počtu jejích prvků (N1 = N2 = 5). Počet nenulových prvků výsledné posloupnosti N = 9 je N1 + N2 – 1, šířková vlastnost vskutku platí. součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 2 2 2 2 2 x2(‒m) 2 2 2 2 2 n=0 4 = 4 x2(1‒m) 2 2 2 2 2 n=1 4+4 = 8 x2(2‒m) 2 2 2 2 2 n=2 4+4+4 = 12 x2(3‒m) 2 2 2 2 2 n=3 4+4+4+4 = 16 x2(4‒m) 2 2 2 2 2 n=4 4+4+4+4+4 = 20 x2(5‒m) x2(6‒m) x2(7‒m) x2(8‒m) 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 n=5 4+4+4+4 = 16 n=6 4+4+4 = 12 n=7 4+4 = 8 n=8 4 = 4 7 Co by se stalo, pokud by délky obou vstupních posloupností nebyly stejné? Příklad 6 Určete konvoluční posloupnost posloupností x1(n) = {1, 1, 1, 1, 1} a x2(n) = {1, 1, 1}. Řešení: Přímo počítejme: Ve výsledné posloupnosti můžeme vidět tři hodnoty v jejím středu (x(n) = 3, pro n = 2,3,4), které jsou určeny všemi třemi prvky posloupnosti x2(n). Této části posloupnosti předcházejí, resp. ji následují sekvence určené nikoliv ze všech prvků, pouze z jednoho, resp. dvou vzorků. O této počáteční, příp. koncové části výsledné konvoluční posloupnosti říkáme, že představují přechodný děj, střední část reprezentuje ustálený děj. Z tohoto pohledu ve výsledné konvoluční posloupnosti z Příkladu 5 ustálený stav reprezentuje pouze jeden jediný vzorek x(4). Počet vzorků výstupní posloupnosti N=7, což je N1 + N2 – 1. Šířková vlastnost konvoluce tedy stále platí. Co by se stalo, pokud bychom posloupnosti x1(n) a x2(n) zaměnili? Příklad 7 Určete konvoluční posloupnost posloupností x1(n) = {1, 1, 1} a x2(n) = {1, 1, 1, 1, 1}. Řešení: Opět přímo počítejme: Všechno, co bylo uvedeno pro výsledky Příkladu 6 platí i v tomto případě. Znamená to, že si stále můžeme být jistí platností komutativního zákona. součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 1 1 1 1 1 x2(‒m) 1 1 1 n=0 1 = 1 x2(1‒m) 1 1 1 n=1 1+1 = 2 x2(2‒m) 1 1 1 n=2 1+1+1 = 3 x2(3‒m) 1 1 1 n=3 1+1+1 = 3 x2(4‒m) 1 1 1 n=4 1+1+1 = 3 x2(5‒m) x2(6‒m) 1 1 1 1 1 1 n=5 1+1 = 2 n=6 1 = 1 součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 1 1 1 x2(‒m) 1 1 1 1 1 n=0 1 = 1 x2(1‒m) 1 1 1 1 1 n=1 1+1 = 2 x2(2‒m) 1 1 1 1 1 n=2 1+1+1 = 3 x2(3‒m) 1 1 1 1 1 n=3 1+1+1 = 3 x2(4‒m) 1 1 1 1 1 n=4 1+1+1 = 3 x2(5‒m) x2(6‒m) 1 1 1 1 1 1 1 1 1 1 n=5 1+1 = 2 n=6 1 = 1 8 Příklad 8 Určete konvoluční posloupnost dvou jednotkových skoků, tj. posloupností x1(n) = {1, 1, 1, 1, 1, …} a x2(n) = {1, 1, 1, 1, 1, …}, pro n = 0, 1, 2, 3, … . Řešení: Opět přímo počítejme: Výsledkem konvol uce dvou diskrétních jednotkových skoků je nekonečná lineárně rostoucí posloupnost. V podstatě téhož výsledku bychom dosáhli ve spojitém čase (obr.5). V tom případě je x(t) = x1(t) ∗ x2(t) = � x1(τ) ∞ −∞ . x2(t − τ). dτ = = � σ(τ). σ(t − τ). dτ. ∞ −∞ Protože jednotkový skok náleží do třídy kauzálních funkcí, můžeme pro jejich konvoluci psát x(t) = ∫ σ(τ). σ(t − τ). dτ = t 0 ∫ 1.1. dτ = t 0 [τ]0 t = t. součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 1 1 1 1 1 1 1 1 1… x2(‒m) … 1 1 1 n=0 1 = 1 x2(1‒m) … 1 1 1 1 n=1 1+1 = 2 x2(2‒m) … 1 1 1 1 1 n=2 1+1+1 = 3 x2(3‒m) … 1 1 1 1 1 n=3 1+1+1+1 = 4 x2(4‒m) … 1 1 1 1 1 n=4 1+1+1+1+1 = 5 x2(5‒m) x2(6‒m) x2(7‒m) x2(8‒m) ⁞ … 1 1 1 1 1 1 … 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 1 … 1 1 1 1 1 1 1 1 1 ⁞ n=5 1+1+1+1+1+1 = 6 n=6 1+1+1+1+1+1+1 = 7 n=7 1+1+1+1+1+1+1+1 = 8 n=8 1+1+1+1+1+1+1+1+1 = 9 ⁞ ⁞ ⁞ Obr.5 Konvoluce dvou jednotkových skoků ve spojitém čase 9 Příklad 9 Určete konvoluční posloupnost diskrétního jednotkového skoku x1(n) = σ(n) = {1, 1, 1, …} s konečnou obdélníkovou posloupností, např. x2(n) = {1, 1, 1}. Řešení: V tomto případě je výsledkem nekonečná (díky jednotkovému skoku) konstantní (díky konečné obdélníkové posloupnosti) posloupnost, která následuje přechodný děj, jehož délka je standardně dána počtem vzorků obdélníkové posloupnosti N2 – 1. Příklad 10 (pro samostatné procvičení) Vypočtěte konvoluční posloupnost diskrétního jednotkového skoku x1(n) = σ(n) = {1, 1, 1, …} s konečnou posloupností x2(n) = {1, ‒1}. Průběh vypočtené konvoluční posloupnosti vy- světlete. Řešení: x(n) = {1, 0, 0, 0, 0, 0, …}. Příklad 11 Určete konvoluční posloupnost nekonečné posloupnosti x1(n) = {1, 0, ‒1, 0, 1, 0, ‒1, 0, 1, 0, ‒1, …} s posloupností x2(n) = {1, 0, 0, 0, 1}. Řešení: součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 1 1 1 1 1 1 1 ……. x2(‒m) 1 1 1 n=0 1 = 1 x2(1‒m) 1 1 1 n=1 1+1 = 2 x2(2‒m) 1 1 1 n=2 1+1+1 = 3 x2(3‒m) 1 1 1 n=3 1+1+1 = 3 x2(4‒m) 1 1 1 n=4 1+1+1 = 3 x2(5‒m) x2(6‒m) ⁞ 1 1 1 1 1 1 ⁞ n=5 1+1+1 = 3 n=6 1+1+1 = 3 ⁞ ⁞ ⁞ součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 1 0 ‒1 0 1 0 ‒1 0 1 0 ‒1 0 x2(‒m) 1 0 0 0 1 n=0 1 = 1 x2(1‒m) 1 0 0 0 1 n=1 0+0 = 0 x2(2‒m) 1 0 0 0 1 n=2 0+0-1 = ‒1 x2(3‒m) 1 0 0 0 1 n=3 0+0+0+0 = 0 x2(4‒m) 1 0 0 0 1 n=4 1+0+0+0+1 = 2 x2(5‒m) x2(6‒m) x2(7‒m) x2(8‒m) x2(9‒m) x2(10‒m) x2(11‒m) 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 n=5 0+0+0+0+0 = 0 n=6 -1+0+0+0-1 = ‒2 n=7 0+0+0+0+0 = 0 n=8 1+0+0+0+1 = 2 n=9 0+0+0+0+0 = 0 n=10 -1+0+0+0-1 = ‒2 n=11 0+0+0+0+0 = 0 ⁞ ⁞ ⁞ ⁞ ⁞ 10 Posloupnost x1(n) je periodická s periodou T = 4 vzorky, pátý vzorek začíná novou periodu. Této periodicitě odpovídá počet vzorků posloupnosti x2(n), přičemž první a poslední vzorek představuje váhový koeficient, který vzhledem ke své poloze zdůrazňuje právě periodicitu posloupnosti x1(n). Proto je výsledná konvoluční posloupnost v ustáleném stavu (pro n ≥ 4) rovněž periodická s toutéž periodou jako x1(n). Ustálený stav následuje za přechodným dějem o délce N2‒1, tj. 4 vzorky. Příklad 12 Určete konvoluční posloupnost nekonečné posloupnosti x1(n) = {1, 0, ‒1, 0, 1, 0, ‒1, 0, 1, 0, ‒1, …} s posloupností x2(n) = {1, 0, 0, 0, ‒1}. Řešení: Na rozdíl od Příkladu 11 mají v tomto případě nenulové prvky (první a pátý) posloupnosti x2(n) opačné znaménko, tzn. že periodicita posloupnosti x1(n) je potlačována, což je z výsledné konvoluční posloupnosti naprosto zřejmé; po krátkém přechodném zakmitnutí na jejím začátku. Příklad 13 (zase jen pro samostatné procvičení) Vypočtěte konvoluční posloupnost nekonečné posloupnosti x1(n) = {1, 0, ‒1, 0, 1, 0, ‒1, 0, 1, 0, ‒1, …} s posloupnostmi a) x2a(n) = {1, 0, 1} a b). x2b(n) = {1, 0, ‒1}, c) x2c(n) = {‒1, 0, 1}; d) x2d(n) = {0, 1, 0, ‒1}. Průběh výsledných posloupností vysvětlete. Řešení: a) xa(n) = {1, 0, 0, 0, 0, 0, 0, 0, 0, …}; b) xb(n) = {1, 0, ‒2, 0, 2, 0, ‒2, 0, 2, …}; c) xc(n) = {‒1, 0, 2, 0, ‒2, 0, 2, 0, ‒2, …}; d) xc(n) = {0, 1, 0, ‒2, 0, 2, 0, ‒2, 0, 2, …}. součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti x(n) x1(m) 1 0 ‒1 0 1 0 ‒1 0 1 0 ‒1 0 x2(‒m) ‒1 0 0 0 1 n=0 1 = 1 x2(1‒m) ‒1 0 0 0 1 n=1 0+0 = 0 x2(2‒m) ‒1 0 0 0 1 n=2 0+0‒1 = ‒1 x2(3‒m) ‒1 0 0 0 1 n=3 0+0+0+0 = 0 x2(4‒m) ‒1 0 0 0 1 n=4 ‒1+0+0+0+1 = 0 x2(5‒m) x2(6‒m) x2(7‒m) x2(8‒m) x2(9‒m) x2(10‒m) x2(11‒m) ‒1 0 0 0 1 ‒1 0 0 0 1 ‒1 0 0 0 1 ‒1 0 0 0 1 ‒1 0 0 0 1 ‒1 0 0 0 1 ‒1 0 0 0 1 n=5 0+0+0+0+0 = 0 n=6 1+0+0+0‒1 = 0 n=7 0+0+0+0+0 = 0 n=8 ‒1+0+0+0+1 = 0 n=9 0+0+0+0+0 = 0 n=10 1+0+0+0‒1 = 0 n=11 0+0+0+0+0 = 0 ⁞ ⁞ ⁞ ⁞ ⁞ 11 Příklad 14 Určete konvoluční posloupnost nekonečné lineárně rostoucí posloupnosti x1(n) = {1, 2, 3, 4, 5, 6, 7, 8, 9, …} s posloupnostmi a) x2a(n) = {1, 1}; b) x2b(n) = {1, 1, 1} a c) x2c(n) = {1, ‒1}. Řešení: a) součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti xa(n) xa(n)/2 x1(m) 1 2 3 4 5 6 7 8 9 … x2a(‒m) 1 1 n=0 1 = 1 = 0,5 x2a(1‒m) 1 1 n=1 2+1 = 3 = 1,5 x2a(2‒m) 1 1 n=2 3+2 = 5 = 2,5 x2a(3‒m) 1 1 n=3 4+3 = 7 = 3,5 x2a(4‒m) 1 1 n=4 5+4 = 9 = 4,5 x2a(5‒m) x2a(6‒m) x2a(7‒m) x2a(8‒m) ⁞ 1 1 1 1 1 1 1 1 ⁞ n=5 6+5 = 11 = 5,5 n=6 7+6 = 13 = 6,5 n=7 8+7 = 15 = 7,5 n=8 9+8 = 17 = 8,5 ⁞ ⁞ ⁞ ⁞ b) součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti xb(n) xb(n)/3 x1(m) 1 2 3 4 5 6 7 8 9 … x2b(‒m) 1 1 1 n=0 1 = 1 = 0,33 x2b(1‒m) 1 1 1 n=1 2+1 = 3 = 1,0 x2b(2‒m) 1 1 1 n=2 3+2+1 = 6 = 2,0 x2b(3‒m) 1 1 1 n=3 4+3+2 = 9 = 3,0 x2b(4‒m) 1 1 1 n=4 5+4+3 = 12 = 4,0 x2b(5‒m) x2b(6‒m) x2b(7‒m) x2b(8‒m) ⁞ 1 1 1 1 1 1 1 1 1 1 1 1 ⁞ n=5 6+5+4 = 15 = 5,0 n=6 7+6+5 = 18 = 6,0 n=7 8+7+6 = 21 = 7,0 n=8 9+8+7 = 24 = 8,0 ⁞ ⁞ ⁞ ⁞ c) součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti xc(n) x1(m) 1 2 3 4 5 6 7 8 9 … x2c(‒m) ‒1 1 n=0 1 = 1 x2c(1‒m) ‒1 1 n=1 2 ‒ 1 = 1 x2c(2‒m) ‒1 1 n=2 3 ‒ 2 = 1 x2c(3‒m) ‒1 1 n=3 4 ‒ 3 = 1 x2c(4‒m) ‒1 1 n=4 5 ‒ 4 = 1 x2c(5‒m) x2c(6‒m) x2c(7‒m) x2c(8‒m) ⁞ ‒1 1 ‒1 1 ‒1 1 ‒1 1 ⁞ n=5 6 ‒ 5 = 1 n=6 7 ‒ 6 = 1 n=7 8 ‒ 7 = 1 n=8 9 ‒ 8 = 1 ⁞ ⁞ ⁞ 12 Pokud jsou hodnoty všech prvků posloupnosti x2(n) kladné, reprezentuje výpočet každého prvku výsledné konvoluční posloupnosti součet, resp. průměr (pokud výsledek součtu podělíme počtem vzorků posloupnosti x2(n)) prvků posloupnosti x1(n). Protože se poloha posloupnosti x2(n) posouvá, nazýváme tento způsob výpočtu konvoluční posloupnosti klouzavý průměr (angl. Moving Average, zkr. MA). Vzhledem k tomu, že hodnoty posloupnosti x1(n) rostou lineárně s diferencí jedna, tak hodnoty prvků výsledné posloupnosti také lineárně porostou, přičemž diference mezi sousedními prvky bude v případě kumulačního výpočtu rovna délce posloupnosti x2(n), v případě výpočtu průměru jsou výsledné hodnoty vztaženy k délce posloupnosti x2(n) a proto rovny jedné. (Vše uvedené samozřejmě neplatí pro přechodné děje na začátku výsledné posloupnosti.) V případě c) představuje konvoluční výpočet klouzavou diferenci mezi sousedními vzorky posloupnosti x1(n) a ta je zcela jasně jednotková. Příklad 15 Mějme posloupnost x1(n) = {1, 0, 1, ‒2, 1, 0, 1, ‒2, 1, 0, …} (obr.6a) danou součtem dvou dílčích posloupností x11(n) = {0, 1, 0, ‒1, 0, 1, 0, ‒1, 0, 1, …} (obr.6b) a x12(n) = {1, ‒1, 1, ‒1, 1, ‒1, 1, ‒1, 1, ‒1, …} (obr.6c). Určete konvoluční posloupnost posloupnosti x1(n) s pos loupnostmi a ) x 2a(n) = {1, 0, ‒1, 0}; b) x2b(n) = {1, ‒1}. Řešení: Posloupnost x1(n) vytvořená součtem obou dílčích periodických posloupností je opět periodická s periodou odpoví dající de lší z obou pe riod ( 4 vzorky) dílčích posloupností, nicméně je v ní patrný i významný příspěvek posloupnosti x12(n) s vyšší frekvencí. Poznámka: Vyzkoušejte, jaký tvar by měla posloupnost x1(n), pokud by posloupnost x11(n) začínala až jedničkou, tj. byla by {1, 0,‒1, 0, 1, 0,‒1, 0, 1, 0, …}. To, abyste si ověřili jak se může do výsledné směsi harmonických složek promítnout změna jejich počátečních fází. Posloupnost x2a(n) obsahuje hodnoty (doplnění nulou na konci má pouze formální důvod, výsledek konvol uce by byl v podstatě týž, i kdyby byla posloupnost pouze tříprvková, t j. x’2a(n) = {1, 0, ‒1}), které odpovídají právě jedné periodě posloupnosti x11(n), zatímco posloupnost x2b(n) hodnoty, odpovídající jedné periodě posloupnosti x12(n). Jak lze vysledovat z číselných výsledků i z jejich grafického zobrazení na obr.7, charakteru posloupností x2a(n) i x2b(n) odpovídají v obou případech i výsledky konvolučních výpočtů. V případě konvoluce s posloupností x2a(n) je naprosto zřejmé, že výsledná posloupnost tvarově kopíruje tvar složky x11(n) – kromě přechodného děje na začátku (teoreticky bychom mohli spekulovat, zda přechodný děj trvá dva či tři vzorky, vzhledem k nule na konci posloupnosti x2a(n)). Maximální a minimální hodnoty ve výsledné posloupnosti xa(n) (2, ‒2) jsou ve srovnání s extrémními hodnotami posloupnosti x2a(n) dvojnásobné, což je v tomto případě způsobeno dvěma nenulovými jednotkovými prvky posloupnosti x2a(n). a) b) c) Obr.6 Zadaná posloupnost a) x1(n) a její dílčí b) složky x11(n) a c) x12(n) -3 -2 -1 0 1 2 1 2 3 4 5 6 7 8 9 10 -2 -1 0 1 2 1 2 3 4 5 6 7 8 9 10 -2 -1 0 1 2 1 2 3 4 5 6 7 8 9 10 13 Tvar výsledné posloupnosti xb(n) konvoluce x1(n) a x2b(n) není ve srovnání s předchozím případem tak ideální, nicméně i zde je patrné zvýraznění složky s vyšší frekvencí a) součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti xa(n) x1(m) 1 0 1 ‒2 1 0 1 ‒2 1 0 x2a(‒m) 0 ‒1 0 1 n=0 1 = 1 x2a(1‒m) 0 ‒1 0 1 n=1 0+ 0 = 0 x2a(2‒m) 0 ‒1 0 1 n=2 1+ 0 ‒ 1 = 0 x2a(3‒m) 0 ‒1 0 1 n=3 ‒2+ 0 + 0+ 0 = ‒2 x2a(4‒m) 0 ‒1 0 1 n=4 1+ 0 ‒ 1+ 0 = 0 x2a(5‒m) x2a(6‒m) x2a(7‒m) x2a(8‒m) x2a(9‒m) ⁞ 0 ‒1 0 1 0 ‒1 0 1 0 ‒1 0 1 0 ‒1 0 1 0 ‒1 0 1 ⁞ n=5 0+ 0 + 2+ 0 = 2 n=6 1+ 0 ‒ 1+ 0 = 0 n=7 ‒2+ 0 + 0+ 0 = ‒2 n=8 1+ 0 ‒ 1+ 0 = 0 n=9 0+ 0 + 2+ 0 = 2 ⁞ ⁞ ⁞ b) součet realizovatelných součinů vzorků posloupnosti, tj. hodnoty výsledné konvoluční posloupnosti xb(n) x1(m) 1 0 1 ‒2 1 0 1 ‒2 1 0 … x2b(‒m) ‒1 1 n=0 1 = 1 x2b(1‒m) ‒1 1 n=1 0 ‒ 1 = ‒1 x2b(2‒m) ‒1 1 n=2 1 + 0 = 1 x2b(3‒m) ‒1 1 n=3 ‒2 ‒ 1 = ‒3 x2b(4‒m) ‒1 1 n=4 1 + 2 = 3 x2b(5‒m) x2b(6‒m) x2b(7‒m) x2b(8‒m) x2b(9‒m) ⁞ ‒1 1 ‒1 1 ‒1 1 ‒1 1 ‒1 1 ⁞ n=5 0 ‒ 1 = ‒1 n=6 1 + 0 = 1 n=7 ‒2 ‒ 1 = ‒3 n=8 1 + 2 = 3 n=9 0 ‒ 1 = ‒1 ⁞ ⁞ ⁞ 14 a) b) c) Obr.7 Výsledky konvoluce s posloupnostmi a) xa(n) a b) xb(n) v porovnání se vstupní posloupností c) x1(n) (také obr.6a) -3 -2 -1 0 1 2 3 1 2 3 4 5 6 7 8 9 10 -4 -3 -2 -1 0 1 2 3 4 1 2 3 4 5 6 7 8 9 10 -3 -2 -1 0 1 2 1 2 3 4 5 6 7 8 9 10