mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP --> 64 Punkt FFT


Autor: Christian W. (christian_83)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

vorab muss ich sagen, dass ich von der FFT wenig Ahnung habe.
Deshalb habe ich mir die Grundlagen mal ein wenig angeschaut und mit 
Excel eine 64Punkt FFT erstellt. (siehe Anhang)

Dafür habe ich mir einfach diese Matrix (Butterfly) erstellt und die 
Summenformeln aufgestellt und mit meinen Eingangswerten verrechnet.

Kann mir jemand sagen ob das so stimmen kann?

Was sagt mir der Graph nun?
Normalerweise sollte ich doch ganz links die höchste Spektrallinie 
haben, die meine Grundfrequenz repräsentiert und ein Balken weiter immer 
das Vielfache meiner Grundfrequenz.

Bei Equalizern ist es so, dass man ein festes Spektrum hat und immer die 
Balken, dessen Frequenz vorhanden sind, ausschlagen.

Aber wie sieht das bei mir aus, bzw. was muss ich umrechnen um einen 
Equalizergraph zu bekommen?

MFG

Autor: zero_gravity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sieht doch soweit ganz gut aus ^^

aber ganz links is nich die "höchste Spektrallinie, die deine 
Grundfrequenz repräsentiert", sondern der DC-anteil deines signals... 
also in diesem fall null! die linie an der stelle danach stellt deine 
grundfrequenz dar :P

glg
zero_gravity

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

was dir bei deiner Simulation fehlt, ist, dass du keine Abtastfrequenz 
vorgegeben hast. Hättest du z.B. eine Abtastfrequenz von 1kHz, ergibt 
sich daraus eine maximale Signalfrequenz von 500 Hz, die du für die FFT 
erfassen kannst. Deine 64 Samples ergeben 32 Messpunkte, damit ergäbe 
sich eine Auflösung von 15,625 Hz.

Gerhard

Autor: Christian W. (christian_83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Gerhard

Hey, danke für den Anstoß, das klingt sinnig.

Will noch mal alles zusammenfassen und wissen ob ich es richtig 
verstanden habe.

Für ein Spektrum mit X Balken benötige ich X*2 Abtastwerte.
In meinem Fall habe ich 64 Abtastwerte.
Daraus kann ich die ersten 32 Spektrumbalken berechnen, die zweiten 32 
Spektrumbalken sind gespiegelt gleich den ersten und brauch ich gar net 
erst zu berechnen.

Der höchste Balken ganz rechts repräsentiert meine größte Frequenz die 
ich darstellen kann und ist die Hälfte von der Abtastfrequenz.

Die Auflösung beträgt demnach (die Hälfte der Abtastfrequenz) / (Anzahl 
der Spektrumbalken)

Der erste Balken ist mein DC Anteil, der zweite meine Auflösung, der 
dritte meine Auflösung*2 usw.

Sagen wir in meinem Beispiel sei die Abtastfrequenz 1000Hz. Jeder Step 
ist demnach 1ms vom anderen entfernt. Die Periodendauer des Sinussignals 
ist demnach ungefähr 6 Schritte = 6ms = 166,67Hz groß.
Im Spektrum müsste das der 166,67Hz/15,625 te Balken sein
--> 10,67 = 11 = ok

Je genauer ich mir die Frequenzen im Spektrum anzeigen lassen will, 
desto mehr Abtastpunkte muss ich in die Berechnung eingehen lassen.

Kann ich das so stehen lassen ?


MFG

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ja, passt.

Gerhard

Autor: Unit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist was faul.

Auflösung = Abtastrate / FFT-Länge

Du hast mit diese Formel verwendet, aber ein Paar Zeilen früher was 
anderes geschrieben.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Unit

deine Formel stimmt, aber nur weil sich das 1/2 2* rauskürzt. Eine FFT 
mit einer Abtastrate von 1kHz liefert nur für Signale bis 500Hz richtige 
Ergebnisse. Eine FFT mit 64 Samples liefert nur 32 Werte.

Auflösung = 500/32 oder 1000/64, das bleibt sich gleich. Von Theorie her 
ist erstres richtig.

Gerhard

Autor: Christian W. (christian_83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Simulation läuft nun wunderbar.

Wie schaut das eigentlich mit der Amplitude des Spektrums aus. Je größer 
die Amplituden im Abtastframe sind, desto höher wird ja das Spektrum.

Auf wen oder was wird denn da normiert??

Autor: Unit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

1. Das stimmt nicht:

> Der höchste Balken ganz rechts repräsentiert meine größte Frequenz die
> ich darstellen kann und ist die Hälfte von der Abtastfrequenz.
>
> Die Auflösung beträgt demnach (die Hälfte der Abtastfrequenz) / (Anzahl
> der Spektrumbalken)

2.

> Auflösung = 500/32 oder 1000/64, das bleibt sich gleich.

Ja, das finde ich auch so.

> Von Theorie her ist erstres richtig.

a. Quatsch.
b. Du kannst ja die Faktoren so skalieren, wie du willst... Aber das 
macht die Sache nur komplizierter...

Autor: Unit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Simulation läuft nun wunderbar.
>
> Wie schaut das eigentlich mit der Amplitude des Spektrums aus. Je größer
> die Amplituden im Abtastframe sind, desto höher wird ja das Spektrum.
>
> Auf wen oder was wird denn da normiert??

Z.B. bei einer kohärent abgetasteten (ganze Periodenlängen werden 
abgetastet) Sinuswelle der zur Sinuswelle gehörende Balken ist A*N/2 
groß, wo A die Amplitude der Sinuswelle und N die FFT-Länge sind.

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.