Du har din definition af kausalitet forkert. Det er faktisk meget enklere og meget mere intuitivt. Et kausalt system er et system, hvor output ikke afhænger af fremtidige værdier af input. Denne egenskab er ikke udelukkende lineære systemer og kan gælde for systemer i almindelighed. Her er et par eksempler til illustration af pointen:
Kausalt lineært tidsinvariant system:
$$$y = x – 2x + 0,5y$$$
Her afhænger $y$ kun af de nuværende og tidligere værdier af $x$ og $y$.
Nonkausal lineært tidsinvariant system:
$$$y = \frac{1}{2}x + \frac{1}{2}x$$$$
Også kendt som et centralt glidende gennemsnit, er denne funktion ikkekausal, fordi for output $y$, kigger $x$-terminen ind i fremtiden for vores input.
Kausalt ikke-lineært tidsinvariant system:
$$$y = \cos(x)$$$
Det er det eksempel, du gav. Som du måske allerede har gættet, da vi aldrig ser på et fremtidigt input, er dette system kausalt. Faktisk er det endnu mere specielt end det. Fordi det aktuelle output kun er en funktion af det aktuelle input (ikke tidligere eller fremtidige input) kaldes dette system et memorieløst system.
Kausalt lineært tidsvarierende system:
$$$y = (n+1)x$$$
Jeg har fundet på dette for at være lidt af en brainteaser. Ved første øjekast kan det se ud som om, at dette system er ikke-kausal, fordi der er dette $(n+1)$-term. Men det er ligegyldigt, fordi det ikke er et tidsindeks for $x$. Vi ser stadig kun på den aktuelle værdi af input og kigger ikke fremad. Dette er også et eksempel på et hukommelsesløst system.
Et tricky kausalt ikke-lineært tidsvarierende system:
$$$y = e^nx + \ln\left(\left|x\right|+1\right) – \pi y$$$
Det er klart, at dette er et ikke-kausalt system på grund af $y$-terminen, ikke sandt? Forkert! Dette er en klassisk definition af et rekursivt kausalsystem med nogle få omarrangerede termer. Vi fortsætter med at bringe den i en mere standardiseret form i tre trin:$$y = e^nx + \ln\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|right) – y}{\pi}$$$
Næstsidste linje blev opnået ved at indsætte $k=n+1$. Tricket her er, at der er en sammenhæng mellem udgangene på forskellige tidspunkter. Men når man først har regnet det ud, afhænger intet output nogensinde af den fremtidige værdi af et input i forhold til sig selv. Ikke-linearitet og tidsvarians blev smidt ind for at gøre det sjovere og mere udfordrende. Sørg for at forstå, hvad den her siger.
Som du kan se, kan kausalitet være en egenskab ved alle slags systemer, og der er mange flere sjove og bizarre eksempler, man kan komme med.
Nu skal vi til at løse dit paradoks. Nøglen ligger i at indse, at dine definitioner af kausalitet og linearitet (og måske også tidsinvarians) er en smule sammenfiltrede og forvirrede. At løse paradokset på en morsom måde er så let som at tilføje ordet lineær i begge jeres definitioner (tidsinvarians vil også spille en subtil rolle). Her er hvordan.
Definition 1: Et lineært system er kausalt, hvis og kun hvis output $y$ er en funktion af en lineær kombination af input $x$, således at $k \ge0$.
Det er fordi ikke alle systemer er lineære kombinationer af input. Lineære systemer er. Et kausalt system afhænger kun af tidligere og nuværende input, og derfor er et kausalt lineært system en lineær kombination af nuværende og tidligere input. For at være præcis med definitionen er lineære systemer faktisk lineære kombinationer af både input og output, og i kausale lineære systemer kan output på tidspunktet $n$ ikke afhænge af et input på tidspunktet $m \gt n$.
Også
Definition 2: Et lineært tidsinvariant system er kausalt, hvis og kun hvis impulsresponset$h=0$ for alle $n<0$.
Denne er også ret intuitiv. Alle poster i $h$ for $k \ge 0$ er de koefficienter, hvormed man multiplicerer aktuelle og tidligere værdier af $x$ for at få det aktuelle output (om systemet er rekursivt er irrelevant i dette tilfælde). Bemærk, at denne definition kun giver mening for lineære tidsinvariante systemer! Det skyldes, at konvolution kun findes for disse. Lad os se, hvorfor linearitet er nødvendig. Hvis du har $h \ne 0$, så bidrager $x$ til $y$, og det er det, der gør det ikke-kausal. Dette er sandt, fordi i lineære systemer gælder det, at hvis intet går ind, så går intet ud. Dette gælder generelt ikke for ikke-lineære systemer (som i det eksempel, du gav), så denne definition ville ikke gælde.
Systemet skal også være tidsinvariant, fordi det ikke kan defineres fuldstændigt af dets impulsrespons, medmindre det er fuldt ud LTI. Hvis du kører en impulsfunktion $\delta $ gennem systemet $$$y = x + (n+1)x,$$vil du få et output, som selv er en impuls (kausalt… ikke sandt?). Men systemet er tydeligvis ikke kausalt. Det er derfor, at tidsinvarians er vigtig. Når du kører en forskudt impulsfunktion $\delta$ for $m \ne 0$, begynder dens ikke-kausale karakter at manifestere sig.
Så, alt snak til side, dit system er perfekt kausalt, men dine definitioner gælder kun for lineære systemer, mens dit system er ikke-lineært. Den korrekte definition af et kausalt system er, at ethvert output $y$ ikke kan afhænge af input $x$, hvor $k \gt 0$.