Sie haben Ihre Definition von Kausalität falsch. Sie ist eigentlich viel einfacher und viel intuitiver. Ein kausales System ist ein System, in dem der Output nicht von zukünftigen Werten des Inputs abhängt. Diese Eigenschaft ist nicht auf lineare Systeme beschränkt und kann auf Systeme im Allgemeinen angewendet werden. Hier einige Beispiele zur Veranschaulichung:
Kausales lineares zeitinvariantes System:
$$y = x – 2x + 0.5y$$$
Hier hängt $y$ nur von aktuellen und früheren Werten von $x$ und $y$ ab.
Nichtkausales lineares zeitinvariantes System:
$$y = \frac{1}{2}x + \frac{1}{2}x$$
Auch bekannt als zentraler gleitender Durchschnitt, ist diese Funktion nichtkausal, weil für die Ausgabe $y$ der Term $x$ in die Zukunft unserer Eingabe schaut.
Kausales nichtlineares zeitinvariantes System:
$$y = \cos(x)$$
Das ist das von Ihnen angegebene Beispiel. Wie Sie vielleicht schon erraten haben, ist dieses System kausal, da wir nie auf eine zukünftige Eingabe schauen. Tatsächlich ist es sogar noch spezieller als das. Da die aktuelle Ausgabe nur von der aktuellen Eingabe abhängt (nicht von vergangenen oder zukünftigen Eingaben), nennt man dieses System ein gedächtnisloses System.
Kausales lineares zeitvariantes System:
$$y = (n+1)x$$
Dieses Beispiel habe ich mir ausgedacht, um es etwas aufzulockern. Auf den ersten Blick sieht es so aus, als ob dieses System nicht kausal ist, weil es diesen $(n+1)$-Term gibt. Aber das macht nichts, denn es handelt sich nicht um einen Zeitindex von $x$. Wir betrachten immer noch nur den aktuellen Wert der Eingabe und blicken nicht in die Zukunft. Dies ist auch ein Beispiel für ein gedächtnisloses System.
Ein kniffliges kausales nichtlineares zeitveränderliches System:
$$y = e^nx + \ln\left(\left|x\right|+1\right) – \pi y$$
Es ist klar, dass dies wegen des Terms $y$ ein nichtkausales System ist, oder? Falsch! Es handelt sich um eine klassische Definition eines rekursiven Kausalsystems, bei dem einige Terme umgeordnet wurden. Wir bringen es in drei Schritten in eine bessere Standardform:$$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$$$$y = \frac{e^nx + \ln\left(\left|x\right|+1\right) – y}{\pi}$$
Die vorletzte Zeile wurde durch Ersetzen von $k=n+1$ erreicht. Der Trick dabei ist, dass es eine Beziehung zwischen den Ausgaben zu verschiedenen Zeitpunkten gibt. Aber wenn man es einmal herausgefunden hat, hängt kein Output jemals vom zukünftigen Wert eines Inputs relativ zu sich selbst ab. Die Nichtlinearität und die Zeitvarianz wurden eingeführt, um die Sache interessanter und anspruchsvoller zu machen. Vergewissere dich, dass du verstehst, was hier steht.
Wie du siehst, kann Kausalität eine Eigenschaft aller möglichen Systeme sein, und es gibt noch viele weitere lustige und bizarre Beispiele, die man sich ausdenken kann.
Lassen Sie uns nun dazu kommen, Ihr Paradoxon aufzulösen. Der Schlüssel liegt in der Erkenntnis, dass Ihre Definitionen von Kausalität und Linearität (und vielleicht auch von Zeitinvarianz) ein wenig verstrickt und verworren sind. Die Lösung des Paradoxons ist so einfach wie das Hinzufügen des Wortes „linear“ in Ihre beiden Definitionen (die Zeitinvarianz spielt ebenfalls eine subtile Rolle). So geht’s.
Definition 1: Ein lineares System ist dann und nur dann kausal, wenn der Output $y$ eine Funktion einer Linearkombination von Inputs $x$ ist, so dass $k \ge0$.
Das liegt daran, dass nicht alle Systeme Linearkombinationen von Inputs sind. Lineare Systeme schon. Ein kausales System hängt nur von vergangenen und aktuellen Eingaben ab, daher ist ein kausales lineares System eine lineare Kombination von aktuellen und früheren Eingaben. Eigentlich, um mit der Definition genau zu sein, sind lineare Systeme Linearkombinationen sowohl von Eingaben als auch von Ausgaben, und in kausalen linearen Systemen können Ausgaben zum Zeitpunkt $n$ nicht von einer Eingabe zum Zeitpunkt $m \gt n$ abhängen.
Auch,
Definition 2: Ein lineares zeitinvariantes System ist dann und nur dann kausal, wenn die Impulsantwort $h=0$ für alle $n<0$ ist.
Dies ist auch recht intuitiv. Alle Einträge von $h$ für $k \ge 0$ sind die Koeffizienten, mit denen man aktuelle und vergangene Werte von $x$ multipliziert, um den aktuellen Output zu erhalten (ob das System rekursiv ist, ist in diesem Fall irrelevant). Beachten Sie, dass diese Definition nur für lineare, zeitinvariante Systeme sinnvoll ist! Das liegt daran, dass es die Faltung nur für solche Systeme gibt. Sehen wir uns an, warum Linearität notwendig ist. Wenn $h \ne 0$ ist, dann trägt $x$ zu $y$ bei, und das ist es, was es nicht kausal macht. Das ist wahr, denn in linearen Systemen geht nichts hinein und nichts heraus. Für nichtlineare Systeme (wie in deinem Beispiel) gilt das im Allgemeinen nicht, so dass diese Definition nicht zutrifft.
Das System muss auch zeitinvariant sein, weil es nicht vollständig durch seine Impulsantwort definiert werden kann, es sei denn, es ist vollständig LTI. Wenn man eine Impulsfunktion $\delta $ durch das System$$y = x + (n+1)x,$$ laufen lässt, erhält man eine Ausgabe, die selbst ein Impuls ist (kausal… richtig?). Das System ist jedoch eindeutig nicht kausal. Deshalb ist Zeitinvarianz so wichtig. Wenn Sie eine verschobene Impulsfunktion $\delta$ für $m \ne 0$ laufen lassen, beginnt sich ihre nicht-kausale Natur zu manifestieren.
Also, alles Gerede beiseite, Ihr System ist vollkommen kausal, aber Ihre Definitionen gelten nur für lineare Systeme, während Ihr System nicht-linear ist. Die korrekte Definition eines kausalen Systems ist, dass ein Ausgang $y$ nicht vom Eingang $x$ abhängen kann, wenn $k \gt 0$.