Aveți o definiție greșită a cauzalității. Este de fapt mult mai simplă și mult mai intuitivă. Un sistem cauzal este un sistem în care ieșirea nu depinde de valorile viitoare ale intrării. Această proprietate nu este exclusivă sistemelor liniare și se poate aplica sistemelor în general. Iată câteva exemple pentru a ilustra ideea:
Sistem liniar cauzal invariant în timp:
$$y = x – 2x + 0,5y$$$
Aici $y$ depinde doar de valorile curente și anterioare ale lui $x$ și $y$.
Sistem liniar ne-causal invariant în timp:
$$y = \frac{1}{2}x + \frac{1}{2}x$$$
Cunoscută și sub numele de medie mobilă centrală, această funcție este ne-causală deoarece, pentru ieșirea $y$, termenul $x$ trage cu ochiul în viitorul intrării noastre.
Sistem cauzal neliniar invariabil în timp:
$$y = \cos(x)$$
Acesta este exemplul pe care l-ați furnizat. După cum probabil ați ghicit până acum, deoarece nu ne uităm niciodată la o intrare viitoare, acest sistem este cauzal. De fapt, este chiar mai special decât atât. Deoarece ieșirea curentă este o funcție doar de intrarea curentă (nu de intrările trecute sau viitoare), acest sistem se numește sistem fără memorie.
Sistem cauzal liniar variabil în timp:
$$y = (n+1)x$$$
Am inventat-o pe aceasta pentru a fi oarecum o provocare pentru creiere. La prima vedere, se poate părea că acest sistem este non-causal deoarece există acest termen $(n+1)$. Dar acest lucru nu contează pentru că nu este un indice temporal al lui $x$. În continuare ne uităm doar la valoarea curentă a datelor de intrare și nu ne uităm înainte. Acesta este, de asemenea, un exemplu de sistem fără memorie.
Un sistem cauzal neliniar înșelător care variază în timp:
$$y = e^nx + \ln\left(\left|x\right|+1\right) – \pi y$$$
Este clar că acesta este un sistem non-causal din cauza termenului $y$, nu? Greșit! Aceasta este o definiție clasică a unui sistem cauzal recursiv cu câțiva termeni rearanjați. Vom proceda pentru a o aduce într-o formă mai standard în trei etape:$$y = e^nx + \lnn\left(\left|x\right|+1\right) – \pi y$$$$\pi y = e^nx + \ln\left(\left|x\right|+1\right) – y$$$$\pi y = e^nx + \ln\left(\left|x\right|+1\right) – y$$$$\pi y = e^nx + \ln\left(\left|x\right|+1\right) – y$$$$y = \frac{e^nx + \ln\left(\left|x\right|+1\right) – y}{\pi}$$
Apenultima linie a fost obținută prin înlocuirea lui $k=n+1$. Șmecheria aici este că există o relație între ieșirile la momente diferite. Dar, odată ce ați rezolvat-o, nicio ieșire nu depinde vreodată de valoarea viitoare a unei intrări în raport cu ea însăși. Neliniaritatea și variația în timp au fost introduse pentru a face acest lucru mai distractiv și mai provocator. Asigurați-vă că înțelegeți ce spune acesta.
Cum puteți vedea, cauzalitatea poate fi o proprietate a tot felul de sisteme și există mult mai multe exemple amuzante și bizare cu care se poate veni.
Acum să trecem la rezolvarea paradoxului dumneavoastră. Cheia constă în a vă da seama că definițiile dvs. de cauzalitate și liniaritate (și poate și de invarianță temporală) un pic încurcate și confuze. Rezolvarea amuzantă a paradoxului este la fel de simplă ca și adăugarea cuvântului liniar în ambele dumneavoastră definiții (invariabilitatea timpului va juca, de asemenea, un rol subtil). Iată cum.
Definiția 1: Un sistem liniar este cauzal dacă și numai dacă ieșirea $y$ este o funcție a unei combinații liniare de intrări $x$ astfel încât $k \ge0$.
Aceasta pentru că nu toate sistemele sunt combinații liniare de intrări. Sistemele liniare sunt. Un sistem cauzal depinde numai de intrările trecute și curente, prin urmare un sistem liniar cauzal este o combinație liniară de intrări curente și anterioare. De fapt, pentru a fi exacți cu definiția, sistemele liniare sunt combinații liniare atât de intrări, cât și de ieșiri, iar în sistemele liniare cauzale ieșirile la momentul $n$ nu pot depinde de o intrare la momentul $m \gt n$.
De asemenea,
Definiția 2: Un sistem liniar invariant în timp este cauzal dacă și numai dacă răspunsul la impuls$h=0$ pentru toți $n<0$.
Aceasta este de asemenea destul de intuitivă. Toate intrările lui $h$ pentru $k \ge 0$ sunt coeficienții cu care se înmulțesc valorile curente și trecute ale lui $x$ pentru a obține ieșirea curentă (dacă sistemul este sau nu recursiv este irelevant pentru acest caz). Observați că această definiție are sens numai pentru sistemele liniare invariante în timp! Acest lucru se datorează faptului că convoluția există numai pentru acestea. Să vedem de ce este necesară liniaritatea. Dacă aveți $h \ne 0$, atunci $x$ contribuie la $y$ și asta este ceea ce îl face să fie non-causal. Acest lucru este adevărat deoarece, în sistemele liniare, dacă nu intră nimic, atunci nu iese nimic. Acest lucru nu este, în general, adevărat pentru sistemele neliniare (ca în exemplul pe care l-ați dat), astfel încât această definiție nu s-ar aplica.
Sistemul trebuie, de asemenea, să fie invariant în timp, deoarece nu poate fi definit complet prin răspunsul său la impulsuri, cu excepția cazului în care este complet LTI. Dacă rulați o funcție de impuls $\delta $ prin sistemul $$y = x + (n+1)x,$$ veți obține o ieșire care este ea însăși un impuls (cauzal… corect?). Cu toate acestea, sistemul este în mod clar non-causal. Acesta este motivul pentru care este importantă invarianța în timp. Atunci când executați o funcție de impuls decalată $\delta$ pentru $m \ne 0$, natura sa non-causală începe să se manifeste.
Deci, lăsând la o parte toate discuțiile, sistemul dvs. este perfect cauzal, dar definițiile dvs. se aplică doar sistemelor liniare, în timp ce sistemul dvs. este neliniar. Definiția corectă a unui sistem cauzal este că orice ieșire $y$ nu poate depinde de intrarea $x$ unde $k \gt 0$.
.