Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT mit dsPIC


von Holgerus (Gast)


Angehängte Dateien:

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.

von Herbertus (Gast)


Angehängte Dateien:

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!

von Herbertus (Gast)


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.

von Herbertus (Gast)


Lesenswert?

hhmmmm keine Idee???

von Herbertus (Gast)


Lesenswert?

aso^^  Herbertus = Holgerus

von Holgerus (Gast)


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.

von Gerhard (Gast)


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

von Holgerus (Gast)


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.

von Andreas S. (andreas) (Admin) Benutzerseite


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

von Holgerus (Gast)


Lesenswert?

So, Problem gelöst!!!

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.