Sono un ingegnere informatico esperto e sto lavorando su sensori per smartphone. Ho seguito lezioni EE fondamentali in DSP e sto cercando di applicare le mie conoscenze. Credo di comprendere la convoluzione, le funzioni di trasferimento, la trasformazione z, ecc. Conosco un po 'i filtri FIR e IIR.
Ora, quando leggo le API del software e la documentazione, vedo che le persone stanno applicando un LPF ai dati del sensore nel dominio del tempo. So che lo fai attraverso l'uso di equazioni alle differenze (ad es. Y [i] = y [i-1] + 2 * x [i]), ma ho imparato nella mia classe EE che LPF viene in genere applicato attraverso l'operazione di convoluzione dove si comprende il segnale orario con i coefficienti di un'onda sinc (per esempio) e con una frequenza di taglio specifica. Quindi l'uso colloquiale del "filtro passa-basso" non è abbastanza esatto per me.
Ad esempio, l'API di Google Android ha questa documentazione: http://developer.android.com/reference/android/hardware/SensorEvent.html#values
public void onSensorChanged(SensorEvent event)
{
// alpha is calculated as t / (t + dT)
// with t, the low-pass filter's time-constant
// and dT, the event delivery rate
final float alpha = 0.8;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
}
Come posso interpretare quel filtro passa-basso? Qual è la frequenza di taglio? Qual è la larghezza di banda di transizione? Stanno usando questo LPF solo per fare la media?