Ich schaue mir grad das Beispiel Programm von Microchip an und hätte dazu die ein oder andere Frage!!! Ich habe vor ein Signal von 0-20000Hz zu analysieren, und auf einem LCD Display anzuzeigen. In dem Beispiel wird ein Eigangssignal von 1kHz verwendet, müsste ich in dieser Stelle mein eigenes Eingangsignal speichern??? Muss ich an den Twiggle Faktoren noch irgendetwas ändern, außer halt die Länge festzulegen??? Wo wird das Ergebnis der FFT gespeichert???? Oder bin ich komplett falsch davor und es wird mir der größte Frequenzanteil angezeigt: /* Compute the frequency (in Hz) of the largest spectral component */ Ist das Beispiel überhaupt für mein Vorhaben geeignet, wie gesagt ich habe vor ein 0-20000Hz breites Frequenzspektrum zu untersuchen und die zugehörigen Amplitunden zu den jewahligen Frequenzanteilen herauszufinden. Ich hoffe mir kann jemand von euch weiterhelfen, auch wenn meine Fragen evlt. ein bisschen bescheuert sein mögen!!!
Hi "In dem Beispiel wird ein Eigangssignal von 1kHz verwendet, müsste ich in dieser Stelle mein eigenes Eingangsignal speichern???": ja "Muss ich an den Twiggle Faktoren noch irgendetwas ändern, außer halt die Länge festzulegen???" ? Welche Länge hast du denn vor ? "Wo wird das Ergebnis der FFT gespeichert????": heisst FFTComplexIP nicht FFTComplex in place ? Also werden die Signaldaten von der FFT überschrieben. ich bin jetzt nicht mehr so in der materie drin. das Beispiel sieht aber für mich schon aus, wie ne FFT. Also, sollte dein Vorhaben gelingen. Wenn ich mich recht erinnere gabs noch eine Vorgabe für die Daten. Steht da nicht noch irgendwo, dass die Werte kleiner +-0.5 sein müssen ? Gerhard
Äh ja, da steht auf jeden Fall dass die Daten innerhalb der fractional fixed-point range von [-0.5, +0.5] sein müssen. Was bedeutet das genau ich hab bis jetzt immer nur mit Ganzzahlen gearbeitet zumindest wenn es um Mikrocontroller anwendungen ging, wenn ich jetzt keine Ahnung einen Wert einlese der 5V beträgt müsste ich diesen dann mit 0.1 multiplizeren oder wie muss ich das verstehen??? Das Signal sollte in 128 verschiede Frequenzspektren aufgeteilt werden.
Hi ja, fractional ist eine besondere Form der Fix-point Arithmetik. Dazu gibt hier einige Artikel. Als ich mich zum ersten mal mit dsPIC und FFT beschäftigt habe, bin ich da auch zum ersten Mal mit dem Begriff konfrontiert worden. 15 Bit-fractional wird auch mit 1.15-fractional bezeichnet. Der Wertebereich geht von +1 bis -1 (oder +0.999 bis -1 schau mal bei wiki, da steht das genauer erklärt). Auf jeden fall bekommst du 16Bit-fractional, wenn du eine float-Zahl (die kleienr 1 sein muss) mit 32768 (2hoch15) multiplizierst (aber schau mal bei wiki) Auf jeden fall muss der gesamte Wertebereich deines Signals kleiner als +-0.5 sein, damit bei der FFT kein Müll rauskommt. Für 128 verschiedene FFT-Werte brauchst du 256 "Messwerte", aber das weisst du vermutlich. Gerhard
Hi in dem Zusammenhang erscheinen mir die Zahlen im Beispiel etwas zu gross: 7fff ist doch +0.999 und 8001 ist wohl -1 ? Oder täusch ich mich da ? Gerhard
Ne ich glaub nicht, aber in der Readme steht (wenn ich es nicht falsch verstanden habe) dass das Input Signal noch einmal bearbeitet wird um in dem "richtigen" Wertebereich zu liegen!!!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.