Forum: Digitale Signalverarbeitung / DSP / Machine Learning FastFourierTrans


von dsp_noob (Gast)


Lesenswert?

Hallo,

ich habe eine Signal mit einer Abtastfrequenz von 25 kHz gegeben und nun 
soll das Betragsspektrum im Frequenzbereich zwischen 100 Hz und 1000Hz 
dargestellt werden.

Ich weiß dass man mit der ftt-Matlabfunktion das ganze transformieren 
kann.
Jedoch ist mir unklar wie man das Betragsspektrum in dem Frequenzbereich 
darstellt.


MFG

von Joe F. (easylife)


Lesenswert?

Die FFT zerlegt das Signal in einzelne Frequenz-"Bins". Für jede dieser 
Frequenzen erhältst du einen 2-dimensionalen Vektor, dessen Länge du 
einfach mittels Satz des Pythagoras berechnen kannst.

von dsp_noob (Gast)


Lesenswert?

Hallo,

ich möchte die frequenzbins umwandeln in hz(hertz).
Ich möchte eine frequenz-achse in hz haben.
Da weiß ich nicht wie man das umrechnet.

von Wolfgang (Gast)


Lesenswert?

dsp_noob schrieb:
> Ich weiß dass man mit der ftt-Matlabfunktion das ganze transformieren
> kann.
> Jedoch ist mir unklar wie man das Betragsspektrum in dem Frequenzbereich
> darstellt.

Wenn sämtliches Grundverständnis für die Mühle fehlt, die du da 
anschmeißt, könntest du ein Sinussignal bekannter Frequenz messen und 
dir das Spektrum ansehen.
Tip: Die Spektrallinien der FFT sind äquidistant.

von FFT (Gast)


Lesenswert?

Es gibt fertige FFT Funktionen im Netz, meistens gibt man zwei array 
reins (real und imag anteil) und bekommt zwei arrays zurück (auch real 
und imag).

Du nimmst dein Signal für einen bestimmten Zeitraum auf, z.B. 100 ms und 
übergibst diese Samples als Block der FFT Funktion als Realanteil.

Das Array das du zurück bekommst ist dann dein (gespiegeltes) Spektrum.
Je nachdem was du für eine Ssamplingfrequenz hattest und wie lange du 
aufgenommen hast stehen dann die Werte über die Frequenz an bestimmten 
Stellen in deinem Array. Deinen index musst du dir dann ausrechnen je 
nachdem welche Frequenz du betrachten willst, und natürlich sqrt(real^2 
+ imag^2) nicht vergessen

von Gerhard Z. (germel)


Lesenswert?

dsp_noob schrieb:
> ich möchte die frequenzbins umwandeln in hz(hertz).
> Ich möchte eine frequenz-achse in hz haben.
> Da weiß ich nicht wie man das umrechnet.
>
Du transformierst z.B. 1024 Werte mit einer festen Sampling-Frequenz Sf, 
das dauert die Zeit T. Die transformierten Werte im Array haben den 
Frequenzabstand 1/T beginnend bei 0 Hz. Damit kannst du dir deine 
Frequenzachse ausrechnen.

Gerhard

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.