Esercizio - estensione e segnali causali
In questa pagina 5
Testo (dispense del corso Teoria dei Segnali, UniPD, Es. 2.4A e 2.4B, con l'Esempio 2.4A).
- 2.4A. I segnali e abbiano rispettivamente estensione ed . Dimostrare che ha estensione .
- 2.4B. Verificare che un segnale è causale se e solo se .
- Esempio 2.4A. L'intersezione è un'estensione del prodotto , ma il prodotto può avere un'estensione minima più piccola, e può anche essere identicamente nullo: trovare esempi.
Teoria usata: Segnali a tempo continuo - definizioni e trasformazioniUn segnale a tempo continuo è una funzione complessa di variabile reale $s:\mathbb R\to\mathbb C$ (reale se $s=s^*$). Si descrive con parte reale e immaginaria oppure con modulo e fase (valore principale in $(-\pi,\pi]$). Sui segnali si fanno tre operazioni elementari: ribaltamento $s(-t)$, traslazione $s(t-t_0)$ e cambio di scala $s(at)$. Ogni segnale si scompone in una parte pari e una dispari, in una reale e una immaginaria, in una hermitiana e una antihermitiana. Estensione e durata dicono dove il segnale è diverso da zero; i segnali con estensione nel semiasse positivo sono causali.Segnali a tempo continuo - definizioni e trasformazioni →, Segnali notevoli - gradino, rect, tri, sinc ed esponenzialiI segnali di uso più frequente sono la costante, la sinusoide $A_0\cos(2\pi f_0t+\varphi_0)$ e l'esponenziale complesso $Ae^{i2\pi f_0t}$ (periodici, a potenza finita), il gradino $\mathbf 1(t)$ e il segno, e gli impulsi a energia finita: $\operatorname{rect}$ (area $D$), $\operatorname{tri}$, $\operatorname{sinc}$ (area $1$), la gaussiana $e^{-\pi t^2}$ e gli esponenziali smorzati. Per ciascuno si sanno a memoria forma, area ed energia; gli altri segnali si ottengono da questi con traslazioni, scalature, somme e differenze.Segnali notevoli - gradino, rect, tri, sinc ed esponenziali →.
Le definizioni
- Un segnale è a durata limitata se esiste un intervallo fuori dal quale . Quell'intervallo si chiama estensione e la sua lunghezza durata.
- L'estensione non è unica: ogni intervallo più grande di un'estensione è ancora un'estensione (se fuori da lo è anche fuori da ). Diventa univoca prendendo il più piccolo intervallo con quella proprietà (estensione minima).
- Per segnali non limitati si usano anche (estensione limitata solo a sinistra), , oppure tutto .
- Un segnale è causale se per , cioè se .
- Il gradino vale per e per , con per la regola dell'emivalore.
(Es. 2.4A) L'estensione di una somma
Tesi. è un'estensione di , cioè per ogni fuori da .
Dimostrazione. Sia un istante che non appartiene all'unione . Allora e (essere fuori dall'unione significa essere fuori da entrambi gli insiemi). Per la definizione di estensione:
- ;
- .
Dunque .
Tre osservazioni che completano il discorso.
- Se i due intervalli sono staccati l'unione non è un intervallo. Esempio: (vale per , estensione ) e (estensione ): la somma è nulla fuori dai due intervalli. Se si vuole un'estensione che sia un intervallo si prende il più piccolo intervallo che li contiene entrambi, , di durata .
- L'unione non è in generale l'estensione minima: i due segnali possono cancellarsi. Esempio con (vale per ) e . Il segnale vale per e per : ha estensione minima , uguale a quella di , quindi . Ma la somma è , che ha estensione minima , più piccola. Controllo numerico: : , , somma ; : , , somma (cancellazione).
- Caso estremo: dà , con qualunque .
Grafico interattivo: Es. 2.4A: s(t) = rect(t/2) (estensione [−1,1]) e r(t) = rect(t) − rect(t/2) (estensione [−1,1]) si cancellano per 1/2 < |t| < 1: la somma s + r = rect(t) ha estensione [−1/2,1/2], più piccola dell'unione
(Es. 2.4B) Causale se e solo se
L'idea: moltiplicare per lascia invariato il segnale dove (cioè per ) e lo azzera dove (per ). Il segnale è la parte causale di : coincide con per ed è nulla per .
() Se è causale allora . Si confrontano i due membri in tre zone.
- : , e perché il segnale è causale ✓.
- : ✓.
- : è un punto isolato e il suo valore è fissato dalla regola dell'emivalore. Il prodotto è zero a sinistra di , e a destra tende a : per la regola vale . Il segnale , che a sinistra è , ha per la stessa regola : i due valori coincidono ✓. (Se è continua in allora forza e non c'è nessun salto. Non va invece usato il prodotto dei due numeri , che darebbe un valore diverso: il valore in un solo punto non cambia nessun integrale, ma il prodotto di segnali va inteso con questa regola.)
() Se allora è causale. Per si ha , che è la definizione di causale.
Esempi con numeri.
- è causale e , perché (i valori e elevati al quadrato non cambiano). In entrambi valgono ; in entrambi .
- non è causale: in vale , e infatti vale in , quindi . La parte causale di è .
- La rampa è la parte causale della retta .
Complemento (Esempio 2.4A): l'estensione di un prodotto
Perché l'intersezione è un'estensione. Se allora è fuori da almeno uno dei due insiemi, quindi oppure , e il prodotto . Dunque è un'estensione di ✓.
Ma può essere più grande di quella minima. Due controesempi, entrambi con segnali fatti di :
(a) Prodotto non nullo con estensione più piccola. e . Il primo termine di vale per ; il secondo vale quando , cioè per . Quindi per , per e per : l'estensione minima è (c'è un "buco" tra e ). Il segnale ha estensione minima . L'intersezione è , ma il prodotto vale solo per (dove e ) e altrove: la sua estensione minima è , di durata la metà.
Grafico interattivo: Esempio 2.4A (a): s(t) = rect(t/2) − rect(2(t−1/4)) (buco tra 0 e 1/2), r(t) = rect(t); il prodotto s·r vale 1 solo tra −1/2 e 0, estensione [−1/2,0] più piccola dell'intersezione [−1/2,1/2]
(b) Prodotto identicamente nullo. vale per e per (estensione minima ); vale per (estensione minima ). Le due estensioni minime sono non vuote e l'intersezione è non vuota, ma i due segnali non sono mai contemporaneamente diversi da zero: il prodotto è nullo (i valori nei due soli punti sono convenzioni di bordo e non contano).
Controllo
import numpy as np
rect = lambda x: np.where(np.abs(x) < 0.5, 1.0, np.where(np.abs(x) == 0.5, 0.5, 0.0))
g = np.linspace(-3, 3, 600001)
def estensione(f): # primo e ultimo punto della griglia dove il segnale e' non nullo
nz = g[np.abs(f(g)) > 1e-12]
return float(round(nz.min(), 3)), float(round(nz.max(), 3))
# 2.4A: somma con cancellazione
s = lambda t: rect(t/2)
r = lambda t: rect(t) - rect(t/2)
print(estensione(s), estensione(r), estensione(lambda t: s(t) + r(t))) # (-1,1) (-1,1) (-0.5,0.5)
# Esempio 2.4A (a): prodotto con estensione piu' piccola
s2 = lambda t: rect(t/2) - rect(2*(t - 0.25))
print(estensione(s2), estensione(rect), estensione(lambda t: s2(t)*rect(t))) # (-1,1) (-0.5,0.5) (-0.5,0)
# Esempio 2.4A (b): prodotto nullo
s3 = lambda t: rect(t/2) - rect(2*t)
print(np.abs(s3(g) * rect(2*g)).max()) # 0.0
# 2.4B: s causale <=> s = s*1(t)
u = lambda t: np.where(t > 0, 1.0, np.where(t == 0, 0.5, 0.0))
t = np.array([-1.0, -0.2, 0.5, 2.0])
print(np.exp(-t)*u(t), np.exp(-t)*u(t)*u(t)) # uguali (segnale causale)
print(np.exp(-np.abs(t)), np.exp(-np.abs(t))*u(t)) # diversi per t<0 (non causale)Eseguendo il codice si ottiene: le estensioni minime , e per , e ; , e per , e il prodotto; massimo del prodotto nel caso (b) uguale a ; il segnale causale coincide con (, , , ), l'altro no ( contro in ).
Versione ripasso
- 2.4A. : l'unione è un'estensione della somma (se staccati si prende l'intervallo che li contiene; può non essere minima: ha estensione , non ).
- 2.4B. Causale : per il membro destro è ; per è (in vale la regola dell'emivalore). lo è, no.
- Prodotto. è un'estensione di ma può essere più grande della minima (anche con ): esempi con buchi, per dà .
- Errori tipici: credere che l'estensione sia unica o sempre minima; confondere "causale" con "positivo".