Il filtro a media mobile (talvolta noto colloquialmente come filtro boxcar ) ha una risposta all'impulso rettangolare:
h[n]=1N∑k=0N−1δ[n−k]
O, diversamente indicato:
h[n]={1N,0,0≤n<Notherwise
Ricordando che la risposta in frequenza di un sistema a tempo discreto è uguale alla trasformata di Fourier a tempo discreto della sua risposta all'impulso, possiamo calcolarla come segue:
H(ω)=∑n=−∞∞x[n]e−jωn=1N∑n=0N−1e−jωn
Per semplificare questo, possiamo usare la formula nota per la somma dei primi termini di una serie geometricaN :
∑n=0N−1e−jωn=1−e−jωN1−e−jω
Ciò che ci interessa di più per il tuo caso è la risposta di grandezza del filtro, . Usando un paio di semplici manipolazioni, possiamo ottenerlo in una forma più facile da comprendere:|H(ω)|
H(ω)=1N∑n=0N−1e−jωn=1N1−e−jωN1−e−jω=1Ne−jωN/2e−jω/2ejωN/2−e−jωN/2ejω/2−e−jω/2
Questo potrebbe non sembrare più facile da capire. Tuttavia, a causa dell'identità di Eulero , ricorda che:
sin(ω)=ejω−e−jωj2
Pertanto, possiamo scrivere quanto sopra come:
H(ω)=1Ne−jωN/2e−jω/2j2sin(ωN2)j2sin(ω2)=1Ne−jωN/2e−jω/2sin(ωN2)sin(ω2)
Come ho detto prima, ciò di cui sei veramente preoccupato è l'entità della risposta in frequenza. Quindi, possiamo prendere la grandezza di quanto sopra per semplificarlo ulteriormente:
|H(ω)|=1N∣∣∣∣sin(ωN2)sin(ω2)∣∣∣∣
Nota: siamo in grado di eliminare i termini esponenziali perché non influiscono sull'entità del risultato; per tutti i valori di ω . Dal | x y | = | x | | y | per ogni due numeri complessi finiti x ed y , possiamo concludere che la presenza dei termini esponenziali non influiscono sulla risposta grandezza globale (invece, influenzano la risposta di fase del sistema).|ejω|=1ω|xy|=|x||y|xy
La funzione risultante all'interno delle parentesi magnitudo è una forma di un kernel Dirichlet . Talvolta viene chiamata una funzione sinc periodica , perché in qualche modo assomiglia alla funzione sinc , ma è invece periodica.
Ad ogni modo, poiché la definizione della frequenza di taglio è in qualche modo poco specificata (-3 dB punto? -6 dB punto? Primo sidelobe null?), Puoi usare l'equazione sopra per risolvere qualunque cosa tu abbia bisogno. In particolare, è possibile effettuare le seguenti operazioni:
Imposta |H(ω)|al valore corrispondente alla risposta del filtro che si desidera alla frequenza di taglio.
Impostare uguale alla frequenza di taglio. Per mappare una frequenza di tempo continuo al dominio del tempo discreto, ricordare che ω = 2 π fω , dovefsè la frequenza di campionamento.ω=2πffsfs
Trova il valore di che ti dà il miglior accordo tra i lati sinistro e destro dell'equazione. Dovrebbe essere la lunghezza della tua media mobile.N