WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

FFT- und zeitlichen Verlauf eines Signals als Waterfall?

 

teutopixx
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 77
Anmeldedatum: 09.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2013, 13:15     Titel: FFT- und zeitlichen Verlauf eines Signals als Waterfall?
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem:
Zum einen generiere ich mir mehrere Sinus-Signale unterschiedlicher Frequenzen, die ich anschließend addiere. Den zeitlichen Signalverlauf lasse ich mir problemlos als mit dem plot-Befehl darstellen (z. B. in der Zeit von 0 bis 3 Sekunden.
Nun mache ich eine FFT-Analyse meines Signals, in dem mir wieder durch einen 2-D-Plot die Frequenzanteile angezeigt werden.
Kann ich diese beiden Diagramme irgendwie als 3D-Diagramm darstellen?
So, dass ich auf der x-Achse die Zeit habe, auf y die Frequenz und in z die Amplitude darstelle?

Für ein verständliches Beispiel wäre ich dankbar!
_________________

----
teutoPIXX
Private Nachricht senden Benutzer-Profile anzeigen


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 11.06.2013, 22:55     Titel:
  Antworten mit Zitat      
Hallo,

soetwas habe ich bisher noch nicht gesehen. Entweder man argumentiert im Zeitbereich oder im Frequenzbereich. Aber beides gleichzeitig in einer 3 dimensionalen Umgebung klingt merkwürdig.

Was es gibt sind "Zeit Frequenz Analysen" für nicht-stationäre Signale. Zum Beispiel wenn man Zeitbereiche hat, in der sehr hohe Frequenzen dominieren und Zeitbereiche, in denen sehr niedrige Frequenzen dominieren und wieder umgekehrt oder mittlere Frequenzen.
Da trägt man zum Beispiel die Zeit auf der X-Achse auf und die gefundenen Frequenzen der Zeitbereiche auf der Y-Achse. In Farbskalierung trägt man dann die Häufigkeit der Frequenzen auf. Man erhält dann soetwas wie die zeitliche Entwicklung des aktiven Frequenzbereiches.

Falls das hilft... Stichwort "Zeit Frequenz Analysen".

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2013, 06:13     Titel:
  Antworten mit Zitat      
Dürfte eigentlich möglich sein. An sich sind ja das,was du da aus einer FFT hast ist die Amplitude A ihrer zugeordneten Frequenz f.

A \mathrm{e}^{-\2i\pi f}

woraus man gut eine 2D Matrix bauen könnte mit beispielsweise

Code:

Mtr = A.*exp(-i*2*pi*x'*f);
 


Musst mal ein wenig rumtesten. Is schon ein Weilchen her.

Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 12.06.2013, 09:31     Titel:
  Antworten mit Zitat      
Es gibt die Funktion

Code:


die für solche Zwecke verwendet wird. Man kann hier auch mit dem

Code:


Befehl steuern, ob die Darstellung 2 oder 3D sein soll. Auf jeden Fall erhältst du damit 3 Achsen, Zeit, Frequenz und Amplitude.
Private Nachricht senden Benutzer-Profile anzeigen
 
teutopixx
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 77
Anmeldedatum: 09.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2013, 10:18     Titel:
  Antworten mit Zitat      
Danke erstmal für die Antworten... Ein Spektogramm ist nicht so richtig das, wonach ich suche...
Ich meinte eher sowas, wie ich es in der Grafik angehängt habe...

Unbenannt-1.jpg
 Beschreibung:

Download
 Dateiname:  Unbenannt-1.jpg
 Dateigröße:  92.78 KB
 Heruntergeladen:  788 mal

_________________

----
teutoPIXX
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 08.08.2013, 10:31     Titel:
  Antworten mit Zitat      
Das ist sehr wohl ein Spektrogramm. Man kann es aber in 2D oder 3D darstellen lassen.

Code:

load('mtlb');
y = mtlb(1:2048);
N = length(y); % Anzahlmesswerte


figure(1)
subplot(2,1,1)
plot(0:1/Fs:(N-1)/Fs,y);
grid on;
title('Darstellung Zeitbereich');
ylabel('Amplitude');
xlabel('Zeit [s]');

subplot(2,1,2)
fn = Fs/2; % Nyquistfreq.
df = Fs/N; % Frequenzauflösung des Spektrums
% Frequenzvektor: Darstellung bis Nyquistfreq.
fv = 0: df : fn;

% Signal transformieren
Fy = fft(y,N);

k = N/2 + 1;
%   Betrag - nur positives Freq.spektrum  
Fy_pos0 = abs(Fy(1:k));
 
%   Skalierung  
mag = [Fy_pos0(1)/N ;Fy_pos0(2:k-1)/(N/2);Fy_pos0(k)/N];

% Umrechnung in dB
mag_dB = 20*log10(mag + eps); % eps = kleine Konstante zur Vermeidung von log(0)

plot(fv,mag_dB);
grid on;
title('Darstellung Betragsspektrum mittels FFT');
ylabel('Magnitude [dB]')
xlabel('Frequenz [Hz]');



% FFT Segmentlänge und Fensterlänge
% kleine Sgementlänge nfft -> feinere Frequenz- aber schlechte
% Zeitauflösung
nfft = N/8; % Segmentlänge (8 ist glaube ich der Standardwert bei spectrogram)
% Overlap = window_size/2
numoverlap = nfft/4; % Anzahl der Messwerte, die sich zwei benachbarte Segmente überlappen

figure(2)
[S,F,T]=specgram(y,nfft,Fs,nfft,numoverlap);
% Spektrogramm nun selber erzeugen
surf(F,T,20*log10(abs(S'+eps)));
%view(0,90); % Darstellung in 2D
colormap(jet)
colorbar
%set(gca,'ytick',[0:200:Fs/2]);
title('Darstellung Spektrogramm');
zlabel('Magnitude [dB]')
xlabel('Frequenz [Hz]');
ylabel('Zeit [s]');
 


Bei neueren MatLab Versionen heißt die Funktion nicht mehr specgram sondern spectrogram. Kann es mit meiner alten Version nicht testen...müsste aber so gehen.

Code:

% [S,F,T] = spectrogram(x,window,noverlap,F,fs)
[S,F,T] = spectrogram(y,nfft,numoverlap,fv,Fs)
% oder
% [S,F,T] = spectrogram(x,window,noverlap,nfft,fs)
[S,F,T] = spectrogram(y,nfft,numoverlap,nfft,Fs)

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Simon-1
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2014, 11:23     Titel:
  Antworten mit Zitat      
@ DSP könntest du evtl die mtlb.mat hochladen sodass man sich das Beispiel anschauen könnte.

Habe gerade ein ähnliches Problem
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.