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 mit zwei signalen

 

Termi3xxl
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 18.12.07
Wohnort: Sorry hat sich geändert... Stuttgart
Version: ---
     Beitrag Verfasst am: 02.09.2009, 13:32     Titel: FFT mit zwei signalen
  Antworten mit Zitat      
Hallo,

habe mal ne Frage.... Cool

Jetzt im ernst! Habe aus dem Forum die Anleitung zur FFT Analyse

Das Problem ist, dass alle Signale die dort verwentet werden, generierte Funktionen sind... (Ist ja klar f(t!!))

Jetzt komme ich mit meinem Problem...

Ich habe zwei Signale, die gemessen worden sind. Ein Beschl. Signal und ein Zeitsignal (synkroniesiert).

Alles wurde mit 20kHz bei der Aufzeichnung abgetastet.
Leider wenn ich die Messwerte mit der FFT berechnung aus Diadem vergleiche kommen sehr unterschiedliche ergebnisse!

Code:

%Signal
%------
sig=Beschl_g_ICP;

%Abtastfrequenz
%(fs=1/delta t)
%-------------
fs=1000;   %Messung mit 20kHz


%Anzahl der Datenwerte(sollte Vielfache von 2 sein)
%---------------------------------------------------
%N=2^x, sonst wird der falsche Alsgorithmus verwendet
N=16384;

%Messfenster(Zeitfenster)
%------------------------
%T=N*dalta t=N/fs
T=N/fs;

%Frequenzauflösung
%-----------------
Df=fs/N;

f1=Df*100;

phase=pi/2;

%Datensatz y-Vektor
%------------------
y=sig';

y=[y(1:N/2) zeros(1, N/2)];

%FFT Berechnung des kompl. Frequenzvektors H
%---------------------------------------
H=fft(y,N);

% Berechnung des Amplitudengangs aus dem komplexen Frequenzvektor H:
%-------------------------------------------------------------------
amplH=abs(H);

% Amplitudenskalierung (Normierung auf N) und verschieben der Elemente des
% Amplitudenvektors, so dass die Darstellung des Amplitudengangs von -fn...0...fn
% erfolgen kann:
amplitudengang=fftshift(amplH/N);


%Frequenzvektor
%--------------
fn=fs/2; %Nyquistfrequenz
x_fn =  0 : Df : fn-Df;
x_fs =  0 : Df : fs-Df;

%max Amplitude für die Skalierung feststellen
max_amp=max(abs(amplitudengang));

%Auf einen Frequenzbereich beschränken
%Amplitudengang wird auf (0...fn) beschränkt
%Die Amplitudenskalierung wir auf N/2 normiert!!!
%--------------------------------------------------------------------------
amplitudengang1=[amplH(1)/N amplH(2:N/2)/(N/2)];

max_y4=max(abs(amplitudengang1));

%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
%Fensterung
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
win=rectwin(N)';

%Fensterung mit Amplitudenkorrektur
%----------------------------------
y_win=y.*win*N/sum(win);
max_y=max(abs(y_win))*1.05;

%FFT neu Berechnung
%------------------
H1 = fft(y_win, N);
amplH1=abs(H);
amplitudengang3=fftshift(amplH1/N);

%Darstellung
%--------------------------------------------------------------------------

fig=figure(1);
set(gcf,...
    'Name', Name)
subplot(221)
    stem(x_fs-fn, amplitudengang3, '.-')
    max_y7=max(abs(amplitudengang3))*1.05;
    fest7=0.1;
    if fest7 > max_y7;
        fest7=max_y7;
    end
    axis([-fn fn 0 max_y7])
    grid on
    title('Amplitudengang nach Fensterung')
    xlabel(['Auflösung:',num2str(Df),'Hz / Frequenz[Hz]'])
    ylabel('Amplitude')
   
subplot(222)
    plot(x_fs-fn, 20*log10(amplitudengang3))
    min_y7=min(20*log10(amplitudengang3));
    axis([-fn fn min_y7 20*log10(max_y7)])
    grid on
    title('Amplitudengan nach Fensterung')
    ylabel('Amplitude in dB')
    xlabel(['Auflösung:',num2str(Df),'Hz / Frequenz[Hz]'])
   
subplot(212)
    [ax,h1,h2]=plotyy(Freq, Res_XYZ_Li, x_fs-fn,amplitudengang3, 'plot','stem','.-');
    title 'gemeinsame Darstellung Karosserie und FFT-Dämper'
    xlabel(['Auflösung:',num2str(Df),'Hz / Frequenz[Hz]'])
    max_Res=max(abs(Res_XYZ_Li));
    set(ax(1),...
        'XColor',[0 0 0],...
        'XGrid','on',...
        'XAxisLocation','bottom',...
        'XLim',[0 1200],...
        'XTick',[0:100:1200],...
        'YColor',[0 0 1],...
        'YTickMode','auto',...
        'YAxisLocation','left',...
        'YGrid','on',...
        'YLim',[0 max_Res*1.1])
    set(h1,...
        'Color',[0 0 1],...
        'Linewidth',1)
    ylabel(ax(1),'dynamische Steifigkeit [kg/s²]')
   
    set(ax(2),...
        'XColor',[0 0 0],...
        'XGrid','on',...
        'XAxisLocation','bottom',...
        'XLim',[0 1200],...
        'XTick',[0:100:1200],...
        'YLim',[0 0.4],...
        'YTickMode', 'auto',...
        'YColor',[1 0 0],...
        'YAxisLocation','right')
    set(h2,...
        'Color',[1 0 0],...
        'Linewidth',0.5)
   
    ylabel(ax(2),'Amplitude')
   
    hold all
             
    plot1=plot(Freq,Res_XYZ_Re,'color','green');
 


Sorry wenn das ganze noch nicht 100% sauber geschrieben ist. abber vllt kann mir ja jetzt schon einer helfen!??????

DANKE
Private Nachricht senden Benutzer-Profile anzeigen


Termi3xxl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 18.12.07
Wohnort: Sorry hat sich geändert... Stuttgart
Version: ---
     Beitrag Verfasst am: 03.09.2009, 08:30     Titel:
  Antworten mit Zitat      
Hey falls sich einer gedanken gemacht hat, DANKE

Ich habs....

Der Messtechnikerjogi, hat die Abtastfrequent falsch eingestellt Twisted Evil !!!
Somit konnte das fs richtig eigestellt werden, und die Analyse geht ohne Probleme!
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 - 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.