mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP FFT mit dsPIC


Autor: Holgerus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin grade dabei das FFT example von microchip auszuprobieren, dazu 
habe ich den von microchip zur Verfügung gestellten Code um ein paar 
Zeilen ergänzt in denen ich ein Signal mit einer Samplingrate von 16kHz 
abtaste und die eingelesenen Werte der FFT Funktions übergeben.
Leider liefert die FFT ziemlich komische Werte, hhmm vlt. habt ihr eine 
Idee woran es liegen könnte.

Autor: Herbertus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht habe ich zu wenig Informationen über mein Problem 
preisgegeben, eigentlich sollte das Programm die Frequenz mit der 
größten Amplitude herausfinden. Jedoch erscheinen mir die Ergebnisse 
eher willkührlich, wenn ich ein Signal mit zum Beispiel 100Hz abtaste 
erhalte ich als Ergebnis 500Hz gelegentlich sind die Abweichungen noch 
größer.
Ich weis nicht genau woraus das liegt ich halte mich meines Erachtens an 
die Vorgaben die Microchip an das Eingangssignal stellt.

Bitte teilt mir mit warum mir niemand antwortet eigentlich ist dies ja 
ein sehr aktives Forum, evtl. stimmt etwas mit meiner Fragestellung 
nicht?


Ich lade noch einmal das Zip Archiv des Microchip Beispiels hoch!

Autor: Herbertus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso noch ein kleiner Nachtrag:
Ich benutze keinen antialiasing Filter, allerdings kann ich mir nicht 
vorstellen dass sich dieser Effekt so stark auf mein Ergebnis auswirkt.

Autor: Herbertus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hhmmmm keine Idee???

Autor: Herbertus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aso^^  Herbertus = Holgerus

Autor: Holgerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meiner Meinung nach liegt es an den Werten die ích an die FFT übergebe, 
irgendetwas scheine ich falsch zu machen, denn bei dem Beispiel 
Eingangssignal in dem example kommt ja auch das korrekte Ergebnis raus.
Also ich lade meine eingelesenen Werte ich das Array sigCmpx.real und 
fülle das Array sigCmpx.imgn mit Nullen, aber es funktioniert trotzdem 
nicht hhmmmm.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich hab jetzt deinen Code nicht gelesen. Aber spontan fällt mir ein, 
dass dein Signal (in fract) nicht grösser als -0,5..+0,5 sein darf. Wie 
siht das bei dir aus ?

Gerhard

Autor: Holgerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schonmal für die Antwort,
mein Eingangssignal sollte eigentlich nicht größer als +0,5..-0,5 sein, 
wenn ich meinen Signalgenerator anschließe achte ich immer darauf dass 
mein Eingangssignal nicht größer als Uref/2 wird.

Ich würde mich über weitere Hilfe freuen, mies ich muss die FFT in der 
nächsten Woche zum laufen gebracht haben ansonsten muss ich mir etwas 
anderes ausdenken, sollte eigentlich Teil meines Projektes werden 
(Signal abtasten und die Frequenzanteile des abgetasteten Signals auf 
einem Display darstellen, die Ansteuerung des Display und soetwas 
sollten eigentlich auch kein Problem sein ist halt nur eine Fleissarbeit 
nur die FFT will nicht laufen). Leider habe ich auch sonst keinen 
Ansprechpartner der über ein ausreichendes Fachwissen über dieses Thema 
verfügt.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine FFT alleine ist als Schätzung für das Spektrum eines Signal 
ungeeignet, dafür nimmt man häufig die Welch-Methode:
http://en.wikipedia.org/wiki/Welch_method

Autor: Holgerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, Problem gelöst!!!

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.