Dal circuito in Figura 1 sopra, secondo le leggi di Kirchhoff e la definizione di capacità:
{ V out ( t ) = I ( t ) R (V) Q c ( t ) = C ( V in ( t ) – V out ( t ) ) (Q) I ( t ) = d Q c d t (I) {displaystyle {begin{cases}V_{{{text{out}}(t)=I(t)\,R&{{{(V)}}Q_{c}(t)=C\,\left(V_{\text{in}}(t)-V_{\text{out}}(t)\right)&{\text{(Q)}}\\I(t)={\frac {\operatorname {d} Q_{c}}{operatorname {d} t}&{div>{testo{(I)}{fine{casi}}
dove Q c ( t ) {displaystyle Q_{c}(t)}
è la carica immagazzinata nel condensatore al tempo t {displaystyle t}
. Sostituendo l’equazione (Q) nell’equazione (I) e poi l’equazione (I) nell’equazione (V) si ottiene: V out ( t ) = C ( d V in d t – d V out d t ) ⏞ I ( t ) R = R C ( d V in d t – d V out d t ) {\displaystyle V_{{\testo{out}(t)=\overbrace {C\frac {\frac {\testo{out}(t) V_{{text{in}}}{operatorname {d} t}-{frac {operatorname {d} V_{{testo{out}}}{operatorname {d} t} dx)} ^{I(t)},R=RC,\sinistra(\frac {\frac {operatorname {d} V_{testo{in}}}{operatorname {d} t}-{frac {operatorname {d} V_{{text{out}}}{operatorname {d} t}}}destra)}
Questa equazione può essere discretizzata. Per semplicità, assumiamo che i campioni dell’ingresso e dell’uscita siano presi in punti uniformemente distanziati nel tempo separati da Δ T {displaystyle \Delta _{T}}
tempo. Che i campioni di V in {\displaystyle V_{{text{in}}}
siano rappresentati dalla sequenza ( x 1 , x 2 , … , x n ) {\displaystyle (x_{1},x_{2},\ldots ,x_{n})}
, e sia V out {displaystyle V_{\text{out}}}
sia rappresentato dalla sequenza ( y 1 , y 2 , … , y n ) {\displaystyle (y_{1},y_{2},\ldots ,y_{n})}
che corrispondono agli stessi punti nel tempo. Facendo queste sostituzioni: y i = R C ( x i – x i – 1 Δ T – y i – y i – 1 Δ T ) {\displaystyle y_{i}=RC\,\sinistra(\frac {x_{i}-x_{i-1}}{{Delta _{T}}}-{\frac {y_{i}-y_{i-1}}{Delta _{T}}}destra)}
E riordinando i termini si ottiene la relazione di ricorrenza
y i = R C R C + Δ T y i – 1 ⏞ Contributo decrescente di input precedenti + R C R C + Δ T ( x i – x i – 1 ) ⏞ Contributo dalla variazione dell’input {\displaystyle y_{i}={overbrace {{frac {RC}{RC+\Delta _{T}}}y_{i-1}} ^{{testo{contributo decrescente dagli input precedenti}}+overbrace {{frac {RC}{RC+Delta _{T}} a sinistra(x_{i}-x_{i-1}} a destra)} ^{{testo{Contributo della variazione dell’input}}
Ovvero, questa implementazione a tempo discreto di un semplice filtro RC passa-alto a tempo continuo è
y i = α y i – 1 + α ( x i – x i – 1 ) dove α ≜ R C R C + Δ T {displaystyle y_{i}=\alpha y_{i-1}+alpha (x_{i}-x_{i-1})\qquadro {testo{dove} \qquadro \alpha \triangleq {frac {RC}{RC+\Delta _{T}}}}
Per definizione, 0 ≤ α ≤ 1 {displaystyle 0\leq \alpha \leq 1}
. L’espressione per il parametro α {displaystyle \alpha }
produce la costante di tempo equivalente R C {displaystyle RC}
in termini di periodo di campionamento Δ T {\displaystyle \Delta _{T}}
e α {displaystyle \alpha }
: R C = Δ T ( α 1 – α ) {\displaystyle RC=\Delta _{T} {\frac {\frac {\alpha}{1-\alpha}} a sinistra (a destra)}
.
Ricordando che
f c = 1 2 π R C {displaystyle f_{c}={frac {1}{2\pi RC}}}
quindi R C = 1 2 π f c {displaystyle RC={frac {1}{2\pi f_{c}}}}
allora α {displaystyle \alpha }
e f c {\displaystyle f_{c}}
sono correlati da: α = 1 2 π Δ T f c + 1 {displaystyle \alpha ={frac {1}{2\pi \Delta _{T}f_{c}+1}}
e
f c = 1 – α 2 π α Δ T {\displaystyle f_{c}={frac {1-\alpha }{2\pi \alpha \Delta _{T}}}}
.
Se α = 0,5 {displaystyle \alpha =0,5}
, allora la R C {\displaystyle RC}
costante di tempo uguale al periodo di campionamento. Se α ≪ 0,5 {displaystyle \alpha \ll 0,5}
, allora R C {displaystyle RC}
è significativamente più piccolo dell’intervallo di campionamento, e R C ≈ α Δ T {\displaystyle RC\approx \alpha \Delta _{T}}
.
Implementazione algoritmicaModifica
La relazione di ricorrenza del filtro fornisce un modo per determinare i campioni di uscita in termini dei campioni di ingresso e dell’uscita precedente. Il seguente algoritmo pseudocodice simulerà l’effetto di un filtro passa alto su una serie di campioni digitali, assumendo campioni equidistanti:
// Return RC high-pass filter output samples, given input samples,// time interval dt, and time constant RCfunction highpass(real x, real dt, real RC) var real y var real α := RC / (RC + dt) y := x for i from 2 to n y := α × y + α × (x − x) return y
Il ciclo che calcola ciascuno degli n {\displaystyle n}
output può essere rifatto nell’equivalente:
for i from 2 to n y := α × (y + x − x)
Tuttavia, la forma precedente mostra come il parametro α cambi l’impatto dell’output precedente y e la variazione attuale dell’input (x – x). In particolare,
- Un grande α implica che l’output decadrà molto lentamente ma sarà anche fortemente influenzato da anche piccoli cambiamenti nell’input. Per la relazione tra il parametro α e la costante di tempo R C {\displaystyle RC}
sopra, un grande α corrisponde a un grande R C {\displaystyle RC}
e quindi una bassa frequenza d’angolo del filtro. Quindi, questo caso corrisponde a un filtro passa-alto con una banda di arresto molto stretta. Poiché è eccitato da piccoli cambiamenti e tende a mantenere a lungo i suoi valori di uscita precedenti, può passare frequenze relativamente basse. Tuttavia, un ingresso costante (cioè un ingresso con (x – x)=0) decadrà sempre a zero, come ci si aspetterebbe da un filtro passa alto con una grande R C {\displaystyle RC}
.
- Un piccolo α implica che l’uscita decadrà rapidamente e richiederà grandi cambiamenti nell’ingresso (cioè, (x – x) è grande) per far cambiare molto l’uscita. Dalla relazione tra il parametro α e la costante di tempo R C {displaystyle RC}
sopra, un piccolo α corrisponde a un piccolo R C {\displaystyle RC}
e quindi un’alta frequenza d’angolo del filtro. Quindi, questo caso corrisponde a un filtro passa-alto con una banda di arresto molto ampia. Poiché richiede grandi cambiamenti (cioè, veloci) e tende a dimenticare rapidamente i valori di uscita precedenti, può passare solo frequenze relativamente alte, come ci si aspetterebbe da un filtro passa-alto con una piccola R C {\displaystyle RC}
.