|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 18.10.2011, 14:41
Titel:
|
|
Die Anzahl für nfft = 4096 waren nur ein Bsp. Wie gesagt hängt die tatsächliche Anzahl an Messwerten innerhalb von 20 sek von der Abtastrate ab. Die kenne ich ja nicht
Ich habe hier noch vergessen...das Fenster darf natürlich nur die Länge von nfft haben.
Der Betrag ist die Länge des komplex. Zeigers...wenn du die Signalamplituden darstellen willst, benötigt man den Betrag. Die fft() Funktion berechnet eine beidseitges Spektrum von -fa/2...0...+fa/2 [Hz] mit fa = Abtastfrequenz. I.d.R. interessiert aber nur der positive Frequenzbereich, weshalb ich den negativen Bereich einfach nicht mit speicher.
H(1) = Amplitude bei f = 0
H((nfft/2)+1) = Amplitude bei f = + fa/2
Du solltest dir mal die Dokumentation des fft() Befehls anschauen und außerdem mal das umfassende FFT Bsp. hier in der Skript-Ecke. Ich habe den Eindruck, dass dir Grundlagen zur Fouriertransformation fehlen.
|
|
|
|
|
Mike1221 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.10.2011, 08:43
Titel:
|
|
Guten Morgen DSP,
leider hast Recht, Ich muss die Grundlagen der FFT richtig nachholen
Ich habe eien Abtastrate von 8Hz dh glaube ich 2^8 = 256 Messwerte für 10s
mein code sieht jetzt so aus:
Ich bekomme aber einen FFT verlauf den nicht klar ist (siehe Anhang).
habe Ich was falsches hier auch gemacht?
Danke für deine Unterstützung
Beschreibung: |
|
Download |
Dateiname: |
H.fig |
Dateigröße: |
4.5 KB |
Heruntergeladen: |
697 mal |
|
|
|
Mike1221 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.10.2011, 08:58
Titel:
|
|
und noch eine Frage DSP,
kennst du ein gutes Signalverarbeitung buch mit dem ganzen Grundlagen?
Ich würde gerne meine Schwache Kenntnisse verstärken .
Ich danke dir vielmals.
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 19.10.2011, 09:17
Titel:
|
|
|
|
|
Schau dir doch mal bitte dieses Skript an, in Bezug auf die Darstellung, wie du dir den Frequenzvektor erzeugst etc. Das plotten von H macht hier gar keinen Sinn, da dies komplexe Werte sind. Willst du denn wirklich alle Einzelsegmente darstellen...ich dachte du willst ein Gesamtspektrum haben. Dann musst du die Hpos(:,i) irgendwie zu einem zusammenfassen. Z.B. durch Mittelung.
http://www.gomatlab.de/fft-umfassendes-beispiel-t777.html
Bist du dir sicher, dass du eine Abtastfrequenz von 8 Hz hast? Kennst du denn das Abtasttheorem? Wenn nicht, unbedingt nachlesen. Mit 8 Hz kannst du maximal Signale mit einer Frequenz von 4 Hz richtig rekonstruieren.
Bsp: fa = 100 Hz
Ta = 1/fa = 0.001 sek = 10 ms
Bei einer Messzeit von 20 sek ergeben sich damit 20*100 Messwerte/sek = 2000.
Mit der Lektüre ist das etwas schwierig...es kommt darauf an, was du wissen möchtest. Für den Einstieg gibt es genügend freie Skripte im Netz...suche dir einfach zum Thema Signalverarbeitung, Fouriertransformtion und Frequenzspektrum Skripte von Hochschulen. Das sollte für den Anfang reichen.
Edit: Ist zwar in Englisch, aber dennoch recht leicht verständlich. Vor allem bekommt man ein Grundverständnis der Signaltheorie ohne zunächst mit zu viel Mathematik erschlagen zu werden. Kapitel 8-12
http://www.dspguide.com/ch8.htm
|
|
|
Mike1221 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2011, 12:20
Titel:
|
|
Hi DSP,
ich will jetzt die H_pos0 über die Frequenz plotten:
Ich bekomme aber diese Fehler:
Error using ==> plot
Vectors must be the same lengths.
also die beiden Vektoren müssen gleiche Länge haben
aber :
>> size(f)
ans =
1 41
und:
>>size(H_pos0(1:k))
ans =
1 60100
meien Frage ist:
H_pos0(1:k) gibt Alle beträge der FFT von 1:k
also die x-Achse ist die Frequenz achse und y-achse die Betrag achse oder??
d.h normalerweise wenn ich plot(H_pos0(1:k)) eingebe ohne f wird die Darstellung automatisch über f oder?
Danke
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 26.10.2011, 16:22
Titel:
|
|
|
|
|
Was soll denn der obere Code? Er gehört zu einer Funktion für ein Spektrogramm. Du willst doch aber das Amplitudenspektrum darstellen und dabei das Zeitsignal segmentieren.
Auf Grund deiner Fragen macht es nicht den Eindruck, dass du meine Zeilen wie auch das FFT-Skript mal nachvollzogen hast. Da macht das Helfen nicht wirklich Spaß, denn ich erkläre ungern alles 3-mal.
Nehmen wir an dein Signal hat 4096 Messwerte und du willst es in 256er Segmente teilen und transformieren. Es gibt dann also 16 Segmente der Länge 256. H_pos0 enthält nur den positiven Frequenzbereich, womit das Amplitudenspektrum eines Segments nur noch die Länge 129 hat (und nicht mehr 256). Da H_pos aber alle 16 Segmente enthält, hat es nach der Transformation (in der for-Schleife berechnet) die Größe H_pos0(129x16).
Hiermit stellst du nun das erste Segment dar.
Wenn du nun alle Segmente darstellen willst, musst du alle Segmente in ein Segment zusammenfassen. Ansonsten geht es nicht darzustellen!
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|