Salta al contenuto
Note per Studenti Segnali a tempo discreto

Segnali a tempo discreto

In questa pagina 8

Definizione

Definizione (segnale a tempo discreto). Un segnale a tempo discreto è una funzione complessa di variabile discreta s:Z(T)→C,Z(T)={nT∣n∈Z}={…,−2T,−T,0,T,2T,… }, T>0.s:\mathbb Z(T)\to\mathbb C,\qquad \mathbb Z(T)=\{nT\mid n\in\mathbb Z\}=\{\dots,-2T,-T,0,T,2T,\dots\},\ T>0. TT è il quanto temporale; il reciproco Fp=1TF_p=\frac1T è la velocità del segnale (numero di valori per unità di tempo).

Esempio. Con T=2T=2 ms il segnale s(nT)s(nT) ha Fp=500F_p=500 valori al secondo e il suo dominio è {…,−4 ms,−2 ms,0,2 ms,… }\{\dots,-4\text{ ms},-2\text{ ms},0,2\text{ ms},\dots\}.

Si usano tre scritture equivalenti: s(nT)s(nT), n∈Zn\in\mathbb Z, che mette in evidenza la natura discreta; s(t)s(t), t∈Z(T)t\in\mathbb Z(T), che richiama i segnali continui; oppure sns_n. In queste note TT resta sempre esplicito (non si pone T=1T=1): le grandezze fisiche (energia in V2^2·s, area in V·s) mantengono le dimensioni, e si possono confrontare segnali con quanti diversi (campionamento, cambi di velocità). Per T=1T=1 si ritrovano le formule "senza TT" dei testi di elaborazione numerica.

Un segnale discreto è definito solo nei punti di Z(T)\mathbb Z(T): nei punti intermedi non esiste. Si disegna con un pallino per ogni valore, collegato all'asse (grafico "a stelo", stem). Per interpretare le definizioni si associa al segnale discreto il segnale continuo s~(t)=s(nT)\tilde s(t)=s(nT) per nT≤t<(n+1)TnT\le t<(n+1)T ottenuto per interpolazione a tenuta (si mantiene il valore per un quanto, "zero order hold"): area, energia e potenza del discreto, definite sotto, sono uguali a quelle di s~\tilde s.

Un segnale discreto nasce di norma da una di due fonti: dal campionamento di un segnale continuo, sc(nT)=s0(nT)s_c(nT)=s_0(nT) (Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione →), oppure è prodotto direttamente da un calcolatore o da una successione di simboli. Può essere complesso: per rappresentarlo si usano due grafici (parte reale e immaginaria, o modulo e fase), come nel caso continuo.

Simmetrie, traslazione e ribaltamento

Le definizioni di 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 → si trasferiscono letteralmente: ss è pari se s(nT)=s(−nT)s(nT)=s(-nT), dispari se s(nT)=−s(−nT)s(nT)=-s(-nT), hermitiano se s∗(nT)=s(−nT)s^*(nT)=s(-nT), causale se s(nT)=0s(nT)=0 per n<0n<0. Ogni segnale si scompone in parte pari e dispari. Il ribaltamento è s(−nT)s(-nT). La traslazione di t0t_0 ha senso solo se t0=n0T∈Z(T)t_0=n_0T\in\mathbb Z(T) (altrimenti s(nT−t0)s(nT-t_0) non è definito): s(nT−n0T)s(nT-n_0T) è ritardato se n0>0n_0>0.

Le tre coppie di simmetrie e le tre scomposizioni (pari/dispari, parte reale/immaginaria, hermitiana/antihermitiana) funzionano come nel caso continuo, con la parte pari sp(nT)=12[s(nT)+s(−nT)]s_p(nT)=\tfrac12[s(nT)+s(-nT)], la dispari sd(nT)=12[s(nT)−s(−nT)]s_d(nT)=\tfrac12[s(nT)-s(-nT)] e la hermitiana sh(nT)=12[s(nT)+s∗(−nT)]s_h(nT)=\tfrac12[s(nT)+s^*(-nT)]. C'è una semplificazione: un segnale dispari vale 00 nell'origine senza bisogno di ipotesi di continuità, perché s(0)=−s(0)s(0)=-s(0) (nel continuo serviva che il segnale fosse continuo in 00).

Esempio (pari e dispari). L'esponenziale causale s(nT)=(12)n10(nT)s(nT)=(\frac12)^n\mathbf 1_0(nT) ha s(0)=1s(0)=1 e vale 00 per n<0n<0. Le due parti, per n=−2,…,2n=-2,\dots,2:

nn −2-2 −1-1 00 11 22
ss 00 00 11 0,50{,}5 0,250{,}25
sps_p 0,1250{,}125 0,250{,}25 11 0,250{,}25 0,1250{,}125
sds_d −0,125-0{,}125 −0,25-0{,}25 00 0,250{,}25 0,1250{,}125

In formule sp=12(12)∣n∣s_p=\frac12(\frac12)^{|n|} per n≠0n\ne0 e sp(0)=1s_p(0)=1, sd=12sgn⁡(n)(12)∣n∣s_d=\frac12\operatorname{sgn}(n)(\frac12)^{|n|}. La somma restituisce ss in ogni colonna (per esempio n=−1n=-1: 0,25−0,25=00{,}25-0{,}25=0; n=1n=1: 0,25+0,25=0,50{,}25+0{,}25=0{,}5).

Esempio (hermitiano). Il segnale complesso s(nT)=11+i ns(nT)=\frac1{1+i\,n} vale s(0)=1s(0)=1, s(±1)=11±i=0,5∓0,5is(\pm1)=\frac1{1\pm i}=0{,}5\mp0{,}5i, s(±2)=1∓2i5=0,2∓0,4is(\pm2)=\frac{1\mp2i}5=0{,}2\mp0{,}4i. Si legge s(−nT)=s∗(nT)s(-nT)=s^*(nT) in ogni coppia (s(−1)=0,5+0,5is(-1)=0{,}5+0{,}5i è il coniugato di s(1)=0,5−0,5is(1)=0{,}5-0{,}5i): è hermitiano, con parte reale 11+n2\frac1{1+n^2} pari e parte immaginaria −n1+n2-\frac n{1+n^2} dispari. Come nel continuo, un segnale reale e pari è hermitiano.

Area, valor medio, energia, potenza

L'integrale è sostituito da una somma, con il quanto TT al posto di dtdt (così ogni valore s(nT)s(nT) contribuisce con un'area "concentrata" T s(nT)T\,s(nT) e le dimensioni sono le stesse del caso continuo).

Definizione (parametri di un segnale discreto). area⁡(s)=∑n=−∞+∞T s(nT),ms=lim⁡N→∞1(2N+1)T∑n=−NNT s(nT),\operatorname{area}(s)=\sum_{n=-\infty}^{+\infty}T\,s(nT),\qquad m_s=\lim_{N\to\infty}\frac1{(2N+1)T}\sum_{n=-N}^{N}T\,s(nT), Es=∑n=−∞+∞T ∣s(nT)∣2,Ps=lim⁡N→∞1(2N+1)T∑n=−NNT ∣s(nT)∣2.E_s=\sum_{n=-\infty}^{+\infty}T\,|s(nT)|^2,\qquad P_s=\lim_{N\to\infty}\frac1{(2N+1)T}\sum_{n=-N}^{N}T\,|s(nT)|^2.

Esempio. s(nT)=(12)ns(nT)=(\frac12)^n per n≥0n\ge0 e 00 altrove (esponenziale causale, a=12a=\frac12) ha area T∑n≥0(12)n=2TT\sum_{n\ge0}(\frac12)^n=2T ed energia T∑(14)n=43TT\sum(\frac14)^n=\frac43T, serie geometriche (Serie notevoli - geometrica, telescopica, armonicaLe serie di cui si conosce il carattere e da usare come termine di paragone: geometrica (converge a 1/(1-q) se |q|<1), telescopiche (somma b_1 - lim b_n, come Mengoli), armonica generalizzata (1/n^alpha converge se e solo se alpha>1).Serie notevoli - geometrica, telescopica, armonica →); con T=1T=1 ms: area 22 ms e energia 43\frac43 ms. L'energia è finita, quindi la potenza è nulla (stesso teorema del caso continuo, Energia, potenza e valor medio dei segnaliSu un segnale continuo si calcolano quattro numeri riassuntivi: l'area $\int s,dt$, il valor medio (componente continua) $\lim\frac1{2T}\int_{-T}^Ts,dt$, l'energia $\int|s|^2dt$ e la potenza media $\lim\frac1{2T}\int_{-T}^T|s|^2dt$. Un segnale ad energia finita ha potenza nulla e uno a potenza finita non nulla ha energia infinita. Per un segnale periodico di periodo $T_p$ area ed energia si calcolano su un periodo; un segnale periodico è la ripetizione periodica $\sum_ku(t-kT_p)$ di un suo periodo. Valgono per traslazione l'invarianza, per scala $s(at)$ la divisione per $|a|$.Energia, potenza e valor medio dei segnali →).

I segnali periodici hanno area ed energia infinite e si usano le somme su un periodo (vedi sotto). Estensione e durata hanno la stessa definizione, ma l'estensione e(s)={nsT,…,NsT}e(s)=\{n_sT,\dots,N_sT\} è fatta di punti isolati: la durata è D(s)=T×(numero di punti)D(s)=T\times(\text{numero di punti}), perché la misura di un insieme discreto vale TT per ogni punto (non zero).

Esempio. Un segnale con estensione {−5T,…,11T}\{-5T,\dots,11T\} ha 1717 punti e durata D=17TD=17T.

Segnali periodici

Un segnale discreto è periodico se esiste Tp=NTT_p=NT (multiplo intero di TT) con s(nT+Tp)=s(nT)s(nT+T_p)=s(nT) per ogni nn; NN è il numero di campioni per periodo. Un segnale periodico è completamente specificato da NN valori, ad esempio s(0),s(T),…,s((N−1)T)s(0),s(T),\dots,s((N-1)T): questa è la proprietà che rende possibile il trattamento al calcolatore (tutti gli altri segnali si possono trattare solo in modo approssimato). Area, energia, valor medio e potenza si calcolano su un periodo: ad esempio Es(Tp)=∑n=n0n0+N−1T∣s(nT)∣2E_s(T_p)=\sum_{n=n_0}^{n_0+N-1}T|s(nT)|^2, per qualunque n0n_0, e Ps=Es(Tp)/TpP_s=E_s(T_p)/T_p.

Impulso, gradino, rect ed esponenziali

Impulso ideale discreto. A differenza del caso continuo la definizione non pone problemi: δ(nT)={1Tn=00n≠0\delta(nT)=\begin{cases}\dfrac1T&n=0\\0&n\ne0\end{cases} (l'altezza 1/T1/T serve perché l'area sia ∑T δ(nT)=1\sum T\,\delta(nT)=1, come per δ(t)\delta(t)). Quando i due impulsi compaiono insieme si scrivono δR(t)\delta_{\mathbb R}(t) e δZ(T)(t)\delta_{\mathbb Z(T)}(t). Proprietà:

Proprietà (impulso discreto). Per ogni segnale ss e n0∈Zn_0\in\mathbb Z:

  • rivelatrice: ∑nT s(nT) δ(nT−n0T)=s(n0T)\displaystyle\sum_nT\,s(nT)\,\delta(nT-n_0T)=s(n_0T);
  • moltiplicazione: s(nT) δ(nT−n0T)=s(n0T) δ(nT−n0T)s(nT)\,\delta(nT-n_0T)=s(n_0T)\,\delta(nT-n_0T);
  • scomposizione: s(nT)=∑mT s(mT) δ(nT−mT)s(nT)=\displaystyle\sum_mT\,s(mT)\,\delta(nT-mT), cioè ogni segnale discreto è una combinazione lineare di impulsi traslati, con pesi T s(mT)T\,s(mT).

Esempio. s(nT)=n2rect⁡nT−2T7Ts(nT)=n^2\operatorname{rect}\frac{nT-2T}{7T} vale n2n^2 per n=−1,…,5n=-1,\dots,5 (sette punti centrati in 2T2T) e si scrive s=T[δ(nT+T)+0+δ(nT−T)+4δ(nT−2T)+9δ(nT−3T)+16δ(nT−4T)+25δ(nT−5T)]s=T\big[\delta(nT+T)+0+\delta(nT-T)+4\delta(nT-2T)+9\delta(nT-3T)+16\delta(nT-4T)+25\delta(nT-5T)\big] (il peso dell'impulso in mTmT è T m2T\,m^2; il termine in m=0m=0 è nullo).

Per T=1T=1 l'impulso discreto è il simbolo di Kronecker δn0\delta_{n0}.

Gradino discreto. 10(nT)=1\mathbf 1_0(nT)=1 per n≥0n\ge0 e 00 per n<0n<0. Attenzione: 10(0)=1\mathbf 1_0(0)=1, mentre il gradino continuo ha 1(0)=12\mathbf 1(0)=\frac12; quindi 10\mathbf 1_0 non è esattamente il campionamento di 1(t)\mathbf 1(t).

Impulso rettangolare discreto. Con la stessa formula del continuo, r(nT)=rect⁡(nT−t0D),t0=n1+n22T,D=(n2−n1+1)T,r(nT)=\operatorname{rect}\Big(\frac{nT-t_0}D\Big),\qquad t_0=\frac{n_1+n_2}2T,\quad D=(n_2-n_1+1)T, vale 11 sui punti n1T,…,n2Tn_1T,\dots,n_2T e 00 altrove (t0t_0 è il centro e DD la durata). Le discontinuità del rect cadono in (n1−12)T(n_1-\frac12)T e (n2+12)T(n_2+\frac12)T, che non sono multipli di TT: il segnale discreto non le incontra mai e non serve la regola dell'emivalore. Un rect centrato nell'origine ha un numero dispari di valori unitari.

Esempio. rect⁡nT9T\operatorname{rect}\frac{nT}{9T} vale 11 per n=−4,…,4n=-4,\dots,4 (nove valori); rect⁡nT8T\operatorname{rect}\frac{nT}{8T} centrato in T2\frac T2 vale 11 per n=−3,…,4n=-3,\dots,4 (otto valori, t0=T2t_0=\frac T2).

Esponenziale causale. s(nT)=an 10(nT)s(nT)=a^n\,\mathbf 1_0(nT), con aa complesso: per ∣a∣<1|a|<1 decresce a zero (per a=56a=\frac56 monotono, per a=−34a=-\frac34 con segni alternati).

Grafico interattivo: Esponenziale causale discreto a^n·1_0(n) con a = 5/6 (monotono decrescente); per a negativo i segni si alternano, per |a| > 1 il segnale cresce

Esponenziali e sinusoidi discreti. Sono A ei2πf0nTA\,e^{i2\pi f_0nT} (AA complesso, f0f_0 reale) e A0cos⁡(2πf0nT+φ0)A_0\cos(2\pi f_0nT+\varphi_0). Due fatti li distinguono dal caso continuo:

  1. Non sono sempre periodici. Serve un multiplo NTNT per cui ei2πf0NT=1e^{i2\pi f_0NT}=1, cioè f0NTf_0NT intero: f0Fp=kN\dfrac{f_0}{F_p}=\dfrac kN con k,Nk,N interi (la frequenza e la velocità devono essere commensurabili). Se non lo sono, il segnale è aperiodico. Il periodo discreto NTNT coincide con quello del continuo solo se k=1k=1; per k>1k>1 è NN volte quello discreto "naturale".
  2. La frequenza è ambigua. Poiché ei2π(f0+rFp)nT=ei2πf0nTei2πrn=ei2πf0nTe^{i2\pi(f_0+rF_p)nT}=e^{i2\pi f_0nT}e^{i2\pi rn}=e^{i2\pi f_0nT} per rr intero, a due segnali continui con frequenze f0f_0 e f0+rFpf_0+rF_p corrispondono gli stessi campioni. È l'origine dell'aliasing (Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione →).

Esempio. Con f0T=227f_0T=\frac2{27} (T0/T=272T_0/T=\frac{27}2): k=2k=2, N=27N=27, il segnale è periodico di periodo minimo 27T=2T027T=2T_0 (verificato numericamente: 2727 è il più piccolo PP con s(n+P)=s(n)s(n+P)=s(n)). Con f0T=0,1f_0T=0{,}1 e f0′T=1,1f_0'T=1{,}1 i valori cos⁡(2π 0,1 n)\cos(2\pi\,0{,}1\,n) e cos⁡(2π 1,1 n)\cos(2\pi\,1{,}1\,n) coincidono: 1, 0,809, 0,309, −0,309, −0,809,…1,\,0{,}809,\,0{,}309,\,-0{,}309,\,-0{,}809,\dots

Convoluzione

Definizione (convoluzione discreta). s(nT)=x∗y(nT)=∑k=−∞+∞T x(kT) y(nT−kT).s(nT)=x*y(nT)=\sum_{k=-\infty}^{+\infty}T\,x(kT)\,y(nT-kT). Se le estensioni sono e(x)={nxT,…,NxT}e(x)=\{n_xT,\dots,N_xT\} e e(y)={nyT,…,NyT}e(y)=\{n_yT,\dots,N_yT\}, allora e(x∗y)={(nx+ny)T,…,(Nx+Ny)T}e(x*y)=\{(n_x+n_y)T,\dots,(N_x+N_y)T\} e la durata è D(x∗y)=D(x)+D(y)−TD(x*y)=D(x)+D(y)-T.

Valgono tutte le proprietà del caso continuo: commutativa, associativa, lineare, area (area⁡(x∗y)=area⁡(x)area⁡(y)\operatorname{area}(x*y)=\operatorname{area}(x)\operatorname{area}(y)), traslazione. L'elemento neutro è l'impulso discreto, proprio grazie all'altezza 1T\frac1T e al peso TT nella somma: δ∗s(nT)=∑kT δ(kT)s(nT−kT)=s(nT)\delta*s(nT)=\sum_kT\,\delta(kT)s(nT-kT)=s(nT).

Esempio. Con x=A0rect⁡nT9Tx=A_0\operatorname{rect}\frac{nT}{9T} (n=−4,…,4n=-4,\dots,4) e y=B0rect⁡nT7Ty=B_0\operatorname{rect}\frac{nT}{7T} (n=−3,…,3n=-3,\dots,3), la convoluzione ha estensione {−7T,…,7T}\{-7T,\dots,7T\} (durata 15T=9T+7T−T15T=9T+7T-T). Il valore in nn è T A0B0T\,A_0B_0 per il numero di kk con x(kT)y(nT−kT)≠0x(kT)y(nT-kT)\ne0: 7,7,77,7,7 per n=0,±1n=0,\pm1 e poi 6,5,4,3,2,16,5,4,3,2,1 per n=2,…,7n=2,\dots,7 (e simmetrico). Si ottiene un trapezio isoscele discreto, analogo a quello continuo. La verifica con la convoluzione numerica (np.convolve moltiplicata per TT) dà esattamente questi valori.

Grafico interattivo: Convoluzione di 9 campioni unitari (n = −4…4) con 7 campioni unitari (n = −3…3), in unità T·A0·B0: trapezio isoscele con plateau 7 per |n| ≤ 1 e discesa lineare fino a 1 in n = ±7; estensione −7…7 (15 punti)

Segnali periodici. Per due segnali periodici con lo stesso periodo Tp=NTT_p=NT la somma si limita a un periodo e si ottiene la convoluzione ciclica: x∗y(nT)=∑k=k0k0+N−1T x(kT) y(nT−kT),x*y(nT)=\sum_{k=k_0}^{k_0+N-1}T\,x(kT)\,y(nT-kT), ancora periodica di periodo TpT_p. Come nel caso continuo ha le stesse proprietà (ConvoluzioneLa convoluzione $x*y(t)=\int x(u),y(t-u),du$ combina due segnali ribaltando e traslando il secondo, moltiplicando e integrando. È commutativa, associativa, lineare; l'area del risultato è il prodotto delle aree; l'estensione è la somma delle estensioni (estremo con estremo); l'impulso $\delta$ è l'elemento neutro; la convoluzione con il gradino integra. Per due segnali periodici di uguale periodo si usa la convoluzione ciclica (integrale su un periodo). È l'operazione del filtraggio: l'uscita di un filtro è la convoluzione dell'ingresso con la risposta impulsiva.Convoluzione →).

Altre operazioni

Esercizi collegati

Vedi anche la materia gemella: Segnali e sistemi in Python - campioni, convoluzione e filtriAl calcolatore un segnale continuo è un vettore di campioni con un asse dei tempi. Con numpy si definiscono i segnali, si approssimano area ed energia con somme moltiplicate per il passo, si calcola la convoluzione continua con np.convolve(x, y)*dt (asse = somma degli istanti iniziali), si simulano filtri con equazioni alle differenze e si verificano numericamente linearità e tempo-invarianza.Segnali e sistemi in Python - campioni, convoluzione e filtri →.

Versione ripasso

Errori tipici:

  • Usare δ(nT)=1\delta(nT)=1 invece di 1T\frac1T: l'area dell'impulso deve valere 11.
  • Dimenticare il peso TT nella somma per area, energia e convoluzione.
  • Scrivere D(x∗y)=D(x)+D(y)D(x*y)=D(x)+D(y) dimenticando il −T-T.
  • Pensare che ogni sinusoide discreta sia periodica: serve f0Fp\frac{f_0}{F_p} razionale.
  • Confondere 10(0)=1\mathbf 1_0(0)=1 con 1(0)=12\mathbf 1(0)=\frac12.

Esercizi su questo argomento

Teoria collegata