FFT-MATLAB Amplitude des Zeitsignals

OP #1124582
Hallo!

Ich habe folgendes Problem. Ich soll einen Sinusgenerator an einen 
Biosignalverstärker (Daten werden in MATLAB aufgenommen) anhängen und 
diese Daten in MATLAB mit Hilfe einer FFT analysieren und daraus die 
Amplitude des ursprünglichen Sinus (Zeitsignal) ablesen können.

Prinzipiell ist das ja nicht so schwer, allerdings weißt der 
Sinusgenerator "ziemliche" Schwankungen auf. Habe dazu ein File als 
Anhang, wo dies ersichtlich ist. Dadurch entspricht die Amplitude nicht 
wirklich der Amplitude des Zeitsignals: das Maximum wäre ca. 12*10^4 
dies entspricht 120mV, eingespeist habe ich aber einen Sinus mit 200mV 
Amplitude.

Ich habe ein Bingröße (bzw. Spalten, ich hoffe es weiß jeder was ich 
damit meine, weiß nicht wie das tatsächlich heißt) der FFT von 0.1Hz, 
wenn ich diese vergrößere kommt wirklich nur ein Peak vor, und dieser 
entspricht relativ gut der Amplitude des Zeitsignals.
Diese Bingröße sollte sich aber nicht ändern, jetzt muss ich das 
irgendwie anders hinbekommen.

Jetzt habe ich mir gedacht, dass ich die einzelnen Werte der FFT rund um 
den Peak (im Bild bei 1000Hz) aufsummiere und so die tatsächliche 
Amplitude des Zeitsignals zu erhalten. Allerdings kommt da ein viel zu 
hoher Wert heraus.

Vielleicht könnte mir da irgendwer helfen, um auf die tatsächliche 
Amplitude rückschließen zu können. Wäre sehr dankbar dafür!

Noch zur Info, wie ich die FFT in MATLAB realisiert habe, dies sollte 
eigentlich passen:
1
Fs = 19200;                   % Sampling frequency [Hz]
2
T = 1/Fs;                     % Sample time [s]
3
L = 19200*10;                 % Length of signal [samples]
4

5
NFFT = L;
6
fft_data = fft(data,NFFT)/L;      %calculate FFT
7
abs_fft_data = 2*abs(fft_data);   %calculate absolute values

Schoene Grueße
Angehängte Dateien:
OP
Mike C. wrote:
> In Matlab berechnet die FFT() Funktion nur die Koeffizienten.
>
> cn = abs(fft(data,NFFT))/L;
>
> Die Amplitude errechnet sich aus 2*cn für n=1...usw.
> Aber Achtung. Der Gleichanteil c0 wird nicht verdoppelt.


Ja das habe ich eh so gemacht. Auch mit dem Faktor *2.

Es geht jetzt rein darum, wie ich die einzelnen Koeffizienten rund um 
den Peak aufsmmieren darf, um auf meine Ausgangsamplitude zu kommen?

Schoene Grueße

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.