Forum: Projekte & Code F.I.R Filter in C


von Klaus (Gast)


Lesenswert?

Hallo Leute,

ich wollte ein FIR-Filter in C implementieren doch das Ergebnis ist
leider entäuschend und meine C-Künste sind sehr lasch

#include <stdlib.h>
#include <stdio.h>

int main()
{
    int y[7];
    int h[4]={1,2,3,4};
    int x[4]={1,2,3,4};
    int n,i,z,j,d;
    for(n=0;n<7;n++){
            for(i=0;i<4;i++){
                    z=n-i;
            if(z<0){
                y[n]+=0;
            }
        else{
               y[n]+=h[i]*x[n-i];
    }
    }
    }
    for(j=0;j<7;j++){
     printf("%d\n",y[j]);
    }

    return 0;
}


Es sollte nach dem Prinzip y(n)=h(n)*x(n-1)+h(n+1)*x(n-2)....usw.
arbeiten leider nicht erfolgreich...kann mir vielleicht bitte einer
Helfen suche schon seit Stunden nach einer Lösung

LG Klaus

von Dennis (Gast)


Lesenswert?


von Helmut S. (helmuts)


Lesenswert?

Du solltest erst mal mit float-Zahlen üben bevor du dich auf das dünne 
Eis mit Integer-Arithmetik begibst.

von kein (Gast)


Lesenswert?

Klaus schrieb:
> if(z<0){
>    y[n]+=0;
> }

Was sollte das werden?

von klaus (Gast)


Lesenswert?

Den Fehler hab ich auch erkannt...die Zeile ist sinnlos :) vielen dank 
für die Info

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.