Daten aus ADC mit DSP filter verabeiten

Gast #3190462
Lesenswert?

Hallo!

mein ADC liefert 16 bit werte (int16).Die sindalle positive. Soll man 
für diese werte (ADC output) künstlich einen Offset bauen befor man die 
daten zu den FIR liefert, und das gleiche nochmal nach dem FIR?
 oder soll man einfach die glieferte daten von ADC direct mit FIR 
filtern.

Mit offset meine ich zB:
 0x0003 ist kleinner als 0x8000--> 0x8003
0x8002 ist großer als 0x8000-->0x0002.
Gast #3191556
Lesenswert?

Danke detlef!

ich muss an der uni mit einem schon programmierten dsp arbeite. es geht 
um optimierungsarbeiten (FIR filter).

in dem dsp wird der output vom ADC (1024 samples,400 KHz sampling 
frequency) umgeklappt mit diesem code:

int  i;
for (i=0; i<VEC_SIZE; i++) {
    if (data_adc[i] < 0x8000) {
        data_adc[i] = data_adc[i] | 0x8000;
    } else {
        data_adc[i] = data_adc[i] & 0x7FFF;
    }
}

das gleiche geschieht mit den Daten nach dem FIR (bandpass 
filter)filter.

Ich blicke noch nicht durch warum das so ablaufen wird.

ist da etwas faul?

danke
Gast #3192072
Lesenswert?

Ich hätte diese Optimierung anzubieten, für C:
Weiss aber nicht ob der DSP-Compiler was besseres oder überhaupt was 
draus macht.
1
for (int i=0; i<VEC_SIZE; i++) 
2
  data_adc[i]^=0x8000;

oder
1
for (int i=0; i<VEC_SIZE; i++) 
2
  data_adc[i]+=0x8000;
(Firma: Raich Gerätebau & Entwicklung) #3192217
Lesenswert?

Warum man jetzt immer gleich "FIR-filtern" muß, verstehe ich nicht.Falls 
man nicht unbedingt auf linearen Phasengang angewiesen ist, gibts 
überhaupt keinen Grund ein FIR Filter zu verwenden (es hat bis auf die 
Phase nur Nachteile). Ein IIR Filter kann man bei wesentlich weniger 
Rechenaufwand die besseren Resultate liefern.

Grüsse
Gast #3192350
Lesenswert?

Z.B. ein einfaches Schleifenfilter für eine digital nachgebildete PLL 
als FIR auszuführen ist natürlich quatsch.

Aber ein FIR ist "deterministischer" oder "leichter" in der Berechnung, 
leichter anzupassen.

Bei einem IIR ist die Anpassungsfähigkeit beschränkt, fordert evtl. eine 
andere Topologie oder von vorneherein einen komplexeren IIR.

Der einzige wirkliche Nachteil bei einem FIR den ich sehe sind die evtl. 
höheren Stückkosten, die jedoch meist eine untergeordnete Rolle im 
Vergleich zu Grund-, Entwicklungs- und Folgekosten spielen.

Man sollte halt nicht alles als plumpen FIR machen wie z.B. einen 
Bandpass/Tiefpass bei Fs/100 und 100MHz.

Da kann man mit Multirate und Multiplizierern im Zeitbereich also 
Frequenz-addierern (Multiplikation im Zeitberiech wird Konvolution im 
Frequenzbereich) trotz FIR einen geringeren Aufwand bei immer noch 
entsprechender leichterer Anpassbarkeit erreichen.
Gast #3193073
Lesenswert?

Hi!

Ich bin auf linearphasigkeit angewiesen da ich mit den I und Q kanäle 
die Amplitude und Phase der S-parameter bestimme.

Macht man das so in dasp das man das signal vor dem Filter umkalappt und 
danach das gleiche wieder?

wie verarbeitet ihr eure datan nach dem ADC?

Danke euch
Gast #3194061
Lesenswert?

Ich vermute eher der DSP ("data_adc" array) ist signed und der ADC ist 
unsigned.
Vermutlich macht der DSP nur signed Arithmetik mit seinem MAC, will man 
den ganzen Wertbereich eines Datentyps nutzen.

Ist eine Ariane Rakete nicht mal wegen einem Zahlenüberlauf und 
folgendem "coredump"/systemhalt abgestürzt?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren