Forum: Mikrocontroller und Digitale Elektronik Downsampling (Decimation) Filter auf µC mit divisonsbefehl


von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Bei einer gestern gestellten Frage zur effizienten mittelwertberechnung 
von 24bit daten ( Beitrag "Re: Effizente Mittelwertberechnung über 24bit (3x8Byte) ADC daten" ) 
wurde mir u.A. aufgezeigt, dass eine Umwandlung von signed 32bit auf 24 
bit einfach durch weglassen des MSBytes geht.

Zum Thema, wie ich nun Daten aus einem ADC am besten Downsample - also 
z.B. von 2kHz auf 500Hz /250Hz dezimiere, so, dass der SNR gewinn 
maximal ist, habe ich nun aber noch die Qual der Wahl.

"jetztnicht" empfahl mir ein exponential averaging über alle werte, dann 
einfach jeden X. Wert nehmen und den Rest verwerfen
http://www.ibrtses.com/embedded/exponential.html

Darüber hinaus bin ich inzwischen auch auf den Cascaded Integrator-Comb 
(CIC) decimator gestoßen, der wohl aber eigentlich nicht besser als ein 
FIR ist, wenn mein µC (SAM4S) ohnehin division beherrscht?
Beitrag "Verständnis von CIC Decimation"
Beitrag "Probleme mit CIC Filter"

Klar ist mir folgendes:

Um Aliasing zu verhindern brauche ich einen LowPass.
Meine ursprüngliche Idee paketweise immer 4 samples zu mitteln und 
auszugeben (das wäre dann 4:1 decimation) verträgt sich damit wohl nicht 
so gut. Die Frage ist nun:

Wie würdet ihr 4:1 / 8:1 decimation auf einem µC mit division wie dem 
sam4s umsetzen, wenn es um eine möglichst hohe Verbesserung des SNR 
geht?

Reicht ein LP 1. ordnung (wenn ich das auf der seite oben richtig 
verstanden habe verhält sich ist das exponential averaging auch nur wie 
ein RC tiefpass 1. ordnung) - also 20dB/dekade?

Und: Averaging von z.B. 2 Werten erhöht das SNR um sqrt(2). Wie ist das 
nun beim exponential averaging/ FIR lowpass filtern?

Und: Das exponential averaging wäre ja ein IIR Filter. Ist IIR filtern 
nicht automatisch auch signal verfälschen (weil die ausgangssamples 
nicht mehr linear unabhängig sind?)

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Alex V. L. schrieb:
> Und: Averaging von z.B. 2 Werten erhöht das SNR um sqrt(2).

aber nur, wenn:

> - Signal and noise are uncorrelated.
> - Signal strength is constant in the replicate measurements.
> - Noise is random, with a mean of zero and constant variance
>       in the replicate measurements.

MfG Klaus

von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Also warum ich mich so für das SNR interessiere:

Der multichannel ADC, den ich verwende, hat einen Delta-Sigma Wandler 
mit on-chip digital decimation filter. Die Samplerate ist einstellbar.
Nun muss ich leider mit 2kHz samplen wegen einem signal auf einem der 
channel - die anderen signale /channel könnte ich prinzipiell auch mit 
weniger Hz samplen (die samplerate ist aber nur global einstellbar). 
Laut Datenblatt steigt die ENOB/SNR an mit niedrigerer Samplerate.

Daher die Überlegung: Wenn ich schon mit 2kHz samplen muss, kann ich ja 
für das langsamere signal auch nachträglich das SNR noch verbessern in 
dem ich anständig average und dezimiere. Abgesehen davon, dass ich die 
ausgangs-datenrate klein halten will.

Nur bislang sehe ich bei den Decimation ansätzen nirgends etwas zum SNR, 
wohl deshalb, weil eben nicht geaveraged wird sondern anti alias 
gefiltert und dann einfach downgesampled

Edit: ich meine sowas wie hier (SILABS)
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCIQFjAA&url=https%3A%2F%2Fwww.silabs.com%2FSupport%2520Documents%2FTechnicalDocs%2Fan118.pdf&ei=CdtAVfzwHsS7swHrg4CgBg&usg=AFQjCNF9ow2iu_L4r5SbyFcgzgtCUXobXA&sig2=O_fEdeOY_k6mXDyvv7Ooig&bvm=bv.91665533,d.bGg&cad=rja
bzw hier
http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCkQFjAB&url=http%3A%2F%2Felearning.vtu.ac.in%2F12%2Fenotes%2FAna_log_Mix_Mod_Des%2FUnit4-VPG..pdf&ei=CdtAVfzwHsS7swHrg4CgBg&usg=AFQjCNHuG1GaNAQM_CRvBGwvooFALVlRWA&sig2=9Fa_PXTSmwGQ-Dq8b8k62Q&bvm=bv.91665533,d.bGg&cad=rja
bzw hier (ATMEL)
http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CDkQFjAD&url=http%3A%2F%2Fwww.atmel.com%2Fimages%2Fdoc8003.pdf&ei=CdtAVfzwHsS7swHrg4CgBg&usg=AFQjCNF_A3E9IfV7OzWqyano1-aHRKseFA&sig2=kMk0z3q-WUcK4J1Eb3qf2w&bvm=bv.91665533,d.bGg&cad=rja

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.