IIR Filter in C

OP #470830
Lesenswert?

Hallo zusammen,
ich bin absolout neu auf dem Gebiet DSP und brauche deshalb etwas Hilfe. 
Im Rahmen meines Studiums soll ich einen IIR-Filter mit folgender Formel 
in C erstellen

Y(n)=2 { a [x(n) - x(n - 2)] + j y(n - 1) – ß y(n - 2)}

Mein Problem: Ich hab einen eingelesenen 16 Bit Codec Wert im LSW, für 
die High-Level Implementierung in C muss ich einen 32 Bit Wert mit 
Vorzeichen berechnen.
Ich hoffe, dass mir einer da weiterhelfen kann.

Gast #477514
Lesenswert?

> Ich hoffe, dass mir einer da weiterhelfen kann.
wo?
IIR in C implementieren?
konvertieren nach long (32 bit) in C?

beherrscht der DSP Gleitkommaarithmetik?
ohne weitere Angaben lautet meine Antwort

double xn=0,xn1=0,xn2=0,yn=0,yn1=0,yn2=0,dYn;
double a,j,beta;
int16 LSW;
long Yn=0;
while(1){
 xn=LSW;
 dYn=2*(a*(xn-xn2)+j*yn1-beta*yn2);
 Yn=(long)dYn;
 xn2=xn1; xn1=xn; yn2=yn1; yn1=dYn;
}

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