mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme beim Filtern (PIC24FJ64GA004)


Autor: G. Siedow (sido_dr)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,ich versuche derzeit einen PIC24FJ64GA004 so zu programmieren, 
das er aus dem Signal dass ich ihm gebe eine FFT bildet.
Das Eingangssignal ist analog. Das Ganze soll sequenziel ablaufen. Erst 
wird das durch den ADC konvertierte Signal aufgezeichnet, dann wird es 
gefiltert, und danach die FFT gebildet.
Soweit die Theorie. Bis jetzt bin ich so weit dass mein Mikrocontroller 
das Signal das ich ihm gebe (aus der Audiobuchse von meinem Laptop) 
aufzeichnet.
Nach dem filtern erhalte ich nur noch falsche Werte (siehe Excel Datei). 
Weiss einer woran das liegen kann? Der Code zum Filter stammt von 
Winfilter.
Hier noch der Code zum Filter:
for( a=0; a>Laufnahme; a++ )
    {
      //shift the old samples
      for( d=2; d>0; d-- ) 
      {
        x[d] = x[d-1];
        y[d] = y[d-1];
      }
      //Calculate the new output
      x[0] = Sgn[a];
      y[0] = ACoef[0] * x[0];
      for( d=1; d<=2; d++ )
      {
        y[0] += ACoef[a] * x[a] - BCoef[a] * y[a];
      }
      SgnFilt[d] = y[0];
}

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgen,
bist du dir mit dem Kopf der for-Schleife sicher?
for( a=0; a>Laufnahme; a++ )
...

a von Null aufwärts gezählt, als Durchlaufbedingung a größer Laufnahme?

Autor: G.Siedow (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, das war falsch, daran lag es aber nicht, ich habe es jetzt so 
geregelt indem ich das Filter nicht als Funktion sondern als Schleife im 
Hauptprogramm eingebaut habe. Scheinbar lag das Problem beim Übergeben 
von Variablen. Sieht jetzt zwar nicht sehr elegant aus, funktionniert 
aber.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.