<marco />
← Tutti gli articoli
12 min di lettura

Processi stocastici e sistemi LTI: ogni processo stazionario è rumore bianco filtrato

segnaliprogrammazione

Negli articoli precedenti abbiamo descritto un processo stocastico stazionario nel tempo e in frequenza. Ora lo facciamo passare attraverso un sistema LTI. Il risultato è il collegamento che serve per tutta l'identificazione: un processo stazionario si può vedere come rumore bianco filtrato da un sistema dinamico.

Problema

Mettiamo un processo stocastico u(t)u(t) in ingresso a un sistema LTI:

  • l'ingresso è stazionario in senso debole, con media mum_u e autocovarianza γuu(τ)\gamma_{uu}(\tau);
  • il sistema è asintoticamente stabile, con funzione di trasferimento razionale G(z)G(z), risposta all'impulso g(t)g(t) e guadagno statico μ=G(1)\mu = G(1).

L'uscita si ottiene come sempre con la convoluzione:

y(t)=∑i=0∞g(i) u(t−i)y(t) = \sum_{i=0}^{\infty} g(i)\, u(t-i)

Se l'ingresso è casuale, anche l'uscita lo è. La domanda è: che processo esce? Ha media costante? È ancora stazionario? Che autocovarianza e che spettro ha?

Come esempio useremo un sistema con un solo polo in 0,80{,}8:

G(z)=11−0,8 z−1,y(t)=0,8 y(t−1)+u(t)G(z) = \frac{1}{1 - 0{,}8\,z^{-1}}, \qquad y(t) = 0{,}8\,y(t-1) + u(t)

Ogni uscita è l'80% della precedente più l'ingresso nuovo. Con un impulso in ingresso l'uscita vale 1,0,8,0,64,…1, 0{,}8, 0{,}64, \dots, quindi la risposta all'impulso è g(i)=0,8ig(i) = 0{,}8^i. Il guadagno statico si ottiene ponendo z=1z = 1: μ=G(1)=1/(1−0,8)=5\mu = G(1) = 1/(1 - 0{,}8) = 5.

Valore atteso

Si parte dalla convoluzione e si prende il valore atteso. Il valore atteso è lineare, quindi passa dentro la somma. Ogni termine diventa la media dell'ingresso, che vale sempre mum_u perché l'ingresso è stazionario:

E[y(t)]=∑i=0∞g(i) E[u(t−i)]=mu∑i=0∞g(i)\mathbb{E}[y(t)] = \sum_{i=0}^{\infty} g(i)\, \mathbb{E}[u(t-i)] = m_u \sum_{i=0}^{\infty} g(i)

Resta la somma della risposta all'impulso, che è proprio il guadagno statico. Infatti G(z)=∑ig(i) z−iG(z) = \sum_i g(i)\, z^{-i}, e in z=1z = 1 diventa G(1)=∑ig(i)=μG(1) = \sum_i g(i) = \mu. Quindi:

E[y(t)]=μ mu\mathbb{E}[y(t)] = \mu\, m_u

La media dell'uscita è la media dell'ingresso moltiplicata per il guadagno statico, e non dipende da tt.

Nell'esempio, con un rumore bianco di media 0,50{,}5 in ingresso, l'uscita ha media 5⋅0,5=2,55 \cdot 0{,}5 = 2{,}5.

Autocovarianza e Stazionarietà

La media dell'ingresso non cambia le covarianze, quindi si può supporre mu=0m_u = 0. Si moltiplica l'uscita all'istante t+τt + \tau, scritta come convoluzione, per l'ingresso all'istante tt, e si prende il valore atteso. Il valore atteso passa dentro la somma, e ogni termine è un'autocovarianza dell'ingresso:

γuy(τ)=E[u(t) y(t+τ)]=∑i=0∞g(i) E[u(t) u(t+τ−i)]=∑i=0∞g(i) γuu(τ−i)\gamma_{uy}(\tau) = \mathbb{E}\bigl[u(t)\, y(t+\tau)\bigr] = \sum_{i=0}^{\infty} g(i)\, \mathbb{E}\bigl[u(t)\, u(t+\tau-i)\bigr] = \sum_{i=0}^{\infty} g(i)\, \gamma_{uu}(\tau - i)

La cross-covarianza tra ingresso e uscita dipende solo dal lag τ\tau, perché γuu\gamma_{uu} dipende solo dal lag. Con lo stesso conto, moltiplicando per l'uscita invece che per l'ingresso:

γyy(τ)=E[y(t) y(t+τ)]=∑i=0∞g(i) E[y(t) u(t+τ−i)]=∑i=0∞g(i) γyu(τ−i)\gamma_{yy}(\tau) = \mathbb{E}\bigl[y(t)\, y(t+\tau)\bigr] = \sum_{i=0}^{\infty} g(i)\, \mathbb{E}\bigl[y(t)\, u(t+\tau-i)\bigr] = \sum_{i=0}^{\infty} g(i)\, \gamma_{yu}(\tau - i)

Anche l'autocovarianza dell'uscita dipende solo da τ\tau, perché γyu(τ)=γuy(−τ)\gamma_{yu}(\tau) = \gamma_{uy}(-\tau) dipende solo dal lag. Media costante e autocovarianza che dipende solo dal lag: l'uscita è stazionaria. È un teorema:

Se u(t)u(t) è un processo stazionario e G(z)G(z) è asintoticamente stabile, anche y(t)y(t) è un processo stazionario.

C'è una precisazione pratica. Il conto suppone che l'ingresso sia applicato da sempre, da t=−∞t = -\infty. Nella realtà parte da un istante preciso, e l'uscita diventa stazionaria solo dopo un transitorio, quando l'effetto delle condizioni iniziali si è spento. La stabilità garantisce che si spenga.

Spettro dell'uscita

Passando in frequenza, le convoluzioni diventano prodotti, e si ottiene il risultato centrale:

Γyy(ω)=∣G(ejω)∣2 Γuu(ω)\Gamma_{yy}(\omega) = \bigl|G(e^{j\omega})\bigr|^2\, \Gamma_{uu}(\omega)

e in termini di trasformata Zeta

Φyy(z)=G(z) G(z−1) Φuu(z)\Phi_{yy}(z) = G(z)\, G(z^{-1})\, \Phi_{uu}(z)
Dimostrazione: lo spettro dell'uscita

Le due relazioni nel tempo sono convoluzioni con gg, quindi in frequenza diventano prodotti con G(ejω)G(e^{j\omega}):

Γuy(ω)=G(ejω) Γuu(ω),Γyy(ω)=G(ejω) Γyu(ω)\Gamma_{uy}(\omega) = G(e^{j\omega})\, \Gamma_{uu}(\omega), \qquad \Gamma_{yy}(\omega) = G(e^{j\omega})\, \Gamma_{yu}(\omega)

Per la proprietà della densità cross-spettrale, Γyu(ω)=Γuy(−ω)\Gamma_{yu}(\omega) = \Gamma_{uy}(-\omega). Sostituendo:

Γyy(ω)=G(ejω) Γuy(−ω)=G(ejω) G(e−jω) Γuu(−ω)=∣G(ejω)∣2 Γuu(ω)\begin{aligned} \Gamma_{yy}(\omega) &= G(e^{j\omega})\, \Gamma_{uy}(-\omega) \\ &= G(e^{j\omega})\, G(e^{-j\omega})\, \Gamma_{uu}(-\omega) \\ &= \bigl|G(e^{j\omega})\bigr|^2\, \Gamma_{uu}(\omega) \end{aligned}

Nell'ultimo passaggio, G(e−jω)G(e^{-j\omega}) è il complesso coniugato di G(ejω)G(e^{j\omega}), perché i coefficienti di GG sono reali, e Γuu\Gamma_{uu} è pari. Per la trasformata Zeta il conto è lo stesso, con z−1z^{-1} al posto di −ω-\omega.

Il sistema modula lo spettro dell'ingresso: le frequenze dove ∣G(ejω)∣|G(e^{j\omega})| è grande vengono amplificate, le altre attenuate. È la stessa risposta in frequenza dei segnali deterministici, ma al quadrato, perché lo spettro è una potenza.

Nell'esempio, con un rumore bianco WN(0,1)\text{WN}(0, 1) in ingresso, Γuu(ω)=1\Gamma_{uu}(\omega) = 1 e

Γyy(ω)=1∣1−0,8 e−jω∣2=11,64−1,6cos⁡ω\Gamma_{yy}(\omega) = \frac{1}{\bigl|1 - 0{,}8\,e^{-j\omega}\bigr|^2} = \frac{1}{1{,}64 - 1{,}6\cos\omega}

Il denominatore si calcola con Eulero: 1−0,8 e−jω=(1−0,8cos⁡ω)+j 0,8sin⁡ω1 - 0{,}8\,e^{-j\omega} = (1 - 0{,}8\cos\omega) + j\,0{,}8\sin\omega, e il modulo quadro è (1−0,8cos⁡ω)2+0,64sin⁡2ω=1−1,6cos⁡ω+0,64 (cos⁡2ω+sin⁡2ω)=1,64−1,6cos⁡ω(1 - 0{,}8\cos\omega)^2 + 0{,}64\sin^2\omega = 1 - 1{,}6\cos\omega + 0{,}64\,(\cos^2\omega + \sin^2\omega) = 1{,}64 - 1{,}6\cos\omega.

Con cos⁡ω=1,0,−1\cos\omega = 1, 0, -1 vale 1/0,04=251/0{,}04 = 25 a ω=0\omega = 0, 1/1,64=0,611/1{,}64 = 0{,}61 a π/2\pi/2 e 1/3,24=0,311/3{,}24 = 0{,}31 a π\pi: il polo vicino a z=1z = 1 trasforma un rumore piatto in un processo dominato dalle basse frequenze. Il grafico confronta la formula con lo spettro stimato, con il metodo di Bartlett, dall'uscita di una simulazione:

0,1 1 10 100 0 π/2 π ω (rad/campione) Γyy(0) = 25 ingresso: Γuu = 1 Γyy(π) ≈ 0,31 |G|²·Γuu (teoria) stima dai dati simulati

La varianza dell'uscita si ottiene in due modi, che devono coincidere:

  • in frequenza, come area sotto lo spettro divisa per 2π2\pi. Con l'integrale noto 12π∫−ππdωa−bcos⁡ω=1a2−b2\frac{1}{2\pi}\int_{-\pi}^{\pi} \frac{d\omega}{a - b\cos\omega} = \frac{1}{\sqrt{a^2 - b^2}} si ottiene 1/1,642−1,62=1/0,36=2,781/\sqrt{1{,}64^2 - 1{,}6^2} = 1/0{,}36 = 2{,}78;
  • nel tempo, perché con un rumore bianco in ingresso i campioni u(t−i)u(t-i) sono incorrelati, e le varianze dei termini della convoluzione si sommano: λ2∑ig(i)2\lambda^2 \sum_i g(i)^2, che con λ2=1\lambda^2 = 1 vale ∑i0,64i\sum_i 0{,}64^i, una serie geometrica: 1/(1−0,64)=2,781/(1 - 0{,}64) = 2{,}78.

La simulazione dà 2,80.

Ogni processo stazionario è rumore bianco filtrato

Il teorema si può leggere al contrario. Se in ingresso c'è un rumore bianco e(t)∼WN(0,1)e(t) \sim \text{WN}(0, 1), lo spettro dell'uscita è esattamente ∣G(ejω)∣2|G(e^{j\omega})|^2. Allora un processo stazionario y(t)y(t) con spettro Γyy(ω)\Gamma_{yy}(\omega) si può rappresentare come l'uscita di un sistema G(z)G(z) asintoticamente stabile, alimentato da rumore bianco, purché

∣G(ejω)∣2=Γyy(ω)\bigl|G(e^{j\omega})\bigr|^2 = \Gamma_{yy}(\omega)

Un G(z)G(z) razionale così esiste sempre quando anche lo spettro è razionale, cioè un rapporto di polinomi in cos⁡ω\cos\omega. È il caso di tutti i processi che useremo.

Scrivendo la convoluzione, il processo è una combinazione lineare di infiniti campioni di rumore bianco, pesati dalla risposta all'impulso:

y(t)=∑j=0∞g(j) e(t−j)=g(0) e(t)+g(1) e(t−1)+g(2) e(t−2)+…y(t) = \sum_{j=0}^{\infty} g(j)\, e(t-j) = g(0)\,e(t) + g(1)\,e(t-1) + g(2)\,e(t-2) + \dots

Questa forma si chiama MA(∞)\text{MA}(\infty), e sarà il punto di partenza delle famiglie di modelli del prossimo articolo.

C'è anche un uso pratico: simulare un processo. Se si conosce, o si stima, lo spettro di un fenomeno e si trova un G(z)G(z) stabile e causale con quel modulo quadro, si possono generare al computer quante realizzazioni si vogliono. Basta produrre una sequenza di numeri casuali incorrelati e filtrarla con G(z)G(z).

Esempio in Python: simulare un rumore bianco filtrato
python
import numpy as np
from scipy.signal import lfilter

e = np.random.default_rng().normal(0, 1, 10_000)  # rumore bianco WN(0, 1)
y = lfilter([1], [1, -0.8], e)                    # y(t) = 0.8 y(t-1) + e(t)

Modello generale

Ora si può tornare all'impostazione dell'articolo sui processi stocastici e darle una forma precisa. L'ingresso che non si può misurare sarà proprio un rumore bianco e(t)e(t).

  • Serie temporali. La serie y(t)y(t) è un processo stazionario, che si rappresenta come rumore bianco filtrato: y(t)=H(z) e(t)y(t) = H(z)\, e(t). Il filtro del rumore si indica con H(z)H(z), per distinguerlo dal sistema fisico G(z)G(z).
  • Sistemi ingresso/uscita. L'uscita è la somma dell'effetto dell'ingresso noto e di un disturbo stazionario, a sua volta rumore bianco filtrato:
y(t)=G(z) u(t)+H(z) e(t)y(t) = G(z)\, u(t) + H(z)\, e(t)

L'obiettivo dell'identificazione sarà stimare G(z)G(z) e H(z)H(z) dai dati. Le due funzioni hanno però una natura diversa. G(z)G(z) descrive un sistema fisico reale. H(z)H(z) ed e(t)e(t) invece non esistono fisicamente: sono uno strumento matematico per descrivere tutto quello che G(z)G(z) non riesce a spiegare del legame tra u(t)u(t) e y(t)y(t).

  • Se un processo stazionario entra in un sistema LTI asintoticamente stabile, l'uscita è stazionaria, dopo un transitorio.
  • La media dell'uscita è E[y]=G(1) mu\mathbb{E}[y] = G(1)\, m_u: la media dell'ingresso per il guadagno statico.
  • Lo spettro dell'uscita è Γyy(ω)=∣G(ejω)∣2 Γuu(ω)\Gamma_{yy}(\omega) = |G(e^{j\omega})|^2\, \Gamma_{uu}(\omega): il sistema modula lo spettro dell'ingresso con il quadrato della sua risposta in frequenza.
  • Con rumore bianco in ingresso, Γyy(ω)=λ2 ∣G(ejω)∣2\Gamma_{yy}(\omega) = \lambda^2\, |G(e^{j\omega})|^2. Viceversa, ogni processo stazionario con spettro razionale si può rappresentare come rumore bianco filtrato da un G(z)G(z) stabile: y(t)=∑jg(j) e(t−j)y(t) = \sum_j g(j)\, e(t-j).
  • Il modello generale sarà y(t)=G(z) u(t)+H(z) e(t)y(t) = G(z)\,u(t) + H(z)\,e(t): GG descrive il sistema fisico, HH ed ee il disturbo.