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

Falsche Werte in meiner FFT

 

JohannesS

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2018, 09:55     Titel: Falsche Werte in meiner FFT
  Antworten mit Zitat      
Hallo Leute, ich habe glaube ich jeden Beitrag hier im Forum über FFT und iFFt gelesen, komme aber trotzdem nicht weiter.

Ich habe hier einen einfachen Sinus im Zeitbereich, den ich in den Frequenzbereich transformieren will. Im Frequenzbereich möchte ich dann eine Übertragungsfunktion anwende. Anschließend will ich den veränderten Frequenzbereich wieder zurück in den Zeitbereich transformieren.
Dieses Modell soll eine Fußpunkt-erregte, gedämpfte Schwingung darstellen. Ich möchte wissen welchen Einfluss die Dämpfung auf die Schwingung im Zeitbereich hat.
Wäre super wenn mir jemand helfen kann.

Code:
clc
clear
close all
%%%%%%%%%  Eingabe

Eigenfrequenz_Baugruppe = 50;  % [Hz]
Daempfung = 0.12;               % [-] Lehr'sches Dämpfungsmaß



f_abtast = 48000;       % Sampling frequency                    
f_nyquist = f_abtast/2; % Nyquist frequency    
T = 1/f_abtast;         % Sampling period      
n_fft=2^16;             % Length of signal

t = 0 : 1/f_abtast : (n_fft-1)/f_abtast;    % Zeit-Vektor

% Signal erzeugen (Zeitbereich)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%  kleiner Test-Sinus  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
f_err1=50;      % [Hz] Erreger-Frequenz 1 des Signals
A_g1=10;           % [-] Amplitude 1
y_0 = A_g1*sin(2*pi*f_err1.*t);



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%  % Darstellung des Zeitsignals   %%%%%%%%%%%%%%%
n=1;
p=2;
figure(n)
subplot(p,1,1)
plot(t,y_0)
xlim ([0 1]);
title('Eingangssignal (Zeitbereich)')


%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%   FFT  %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%

Y_0=fft(y_0,n_fft);    % Signal mittels FFT in den Frequenzbereich


% Skalierung x-Achse
df = f_abtast/n_fft;       % Spektrumauflösung
f = 0:df:f_abtast/2;    % Frequenzvektor für positiven Freq.bereich
f1 = 0:df:f_abtast-0.5;

% Skalierung y-Achse
k=n_fft/2+1;
abs_ampl_Y_0 = abs(Y_0(1:k))'; % Freq.bereich 0...f_abtast/2 [Hz]
abs_mag_Y_0 = [abs_ampl_Y_0(1)/n_fft ;abs_ampl_Y_0(2:k-1)/(n_fft/2);abs_ampl_Y_0(k)/n_fft];


% Darstellung des Spektrums
subplot(p,1,2)
plot(f,abs_mag_Y_0,'r')
xlim ([0 100]);
title('Eingangssignal (Frequenzbereich)')
%max_ampl_spektrum=max(abs_magY) % max_Amplitude als Kontrollwert
%delta_Amplitude = max_ampl_spektrum-max(A1,A2) % Fehler der Skalierung



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%   Schwingungsisolierung  %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

f_eigen=Eigenfrequenz_Baugruppe;        % Eigenfrequenz des Bauteils
w0=f_eigen*2*pi;   % Eigenkreisfrequenz des Bauteils
D=Daempfung;             % Dämpfung
eta = f1./f_eigen;  % Frequenzverhältnis
var=(2*D*eta).^2;   % (2*D*eta)^2

n=2;
p=1;

V=(sqrt((1+var)./(var+(1-eta.^2).^2))); % Übertragungsfunktion (Vergrößerungsfunktion)
figure(n)
subplot(p,1,1);
plot(f1,V,'g');
xlim ([0 f_eigen*sqrt(2)*4]);
title('Übertragungsfunktion')
maximale_Ueberhoehung = max(V)
%Ueberhoehung_bei_f2=V(f_err2)


% Multiplikation des Spektrums mit der Übertragungsfunktion
Y_1=Y_0.*V;

abs_ampl_Y_1=abs(Y_1(1:k))';
%abs_res_img=Y'.*V;
abs_mag_Y_1 = [abs_ampl_Y_1(1)/n_fft ;abs_ampl_Y_1(2:k-1)/(n_fft/2);abs_ampl_Y_1(k)/n_fft];
maxueber = max (abs_mag_Y_1)


n=3;
p=2;
figure(n)
subplot(p,1,1);
plot(f,abs_mag_Y_1,'r');
xlim ([0 100]);
title('Ausgangssignal (Frequenzbereich)')
%maximale_amplitude =max(abs_res)
%uebrtragene_f2=abs_res(f_err2)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%   iFFT  %%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% mittels IFFT in den Zeitbereich zurücktransformieren

y_1=ifft(Y_1,n_fft);



% Darstellung des wiederhergestellten Zeitsignals
subplot(p,1,2)
plot(t,y_1(1:length(t)))
xlim ([0 1]);
title('Ausgangssignal (Zeitbereich)')

figure
subplot(2,1,1)
plot(t,y_0)
xlim ([0 1]);
title('Eingangssignal (Zeitbereich)')
subplot(2,1,2)
plot(t,y_1(1:length(t)))
xlim ([0 1]);
title('Ausgangssignal (Zeitbereich)')


figure
subplot(2,1,1)
plot(f,abs_mag_Y_0,'r')
xlim ([0 100]);
ylim ([0 maxueber*1.1]);
title('Eingangssignal (Frequenzbereich)')
subplot(2,1,2)
plot(f,abs_mag_Y_1,'b');
xlim ([0 100]);
ylim ([0 maxueber*1.1]);
title('Ausgangssignal (Frequenzbereich)')


JohannesS

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2018, 10:02     Titel:
  Antworten mit Zitat      
Ahja,
das Problem ist, dass ich im Frequenzbereich schon einen falschen Wert bekomme,
denn mein Sinus hat eine Amplitude von 10, aber bei der FFT bekomme ich einen Wert von 8,87.
Einen zweiten Fehler erhalte ich bei der iFFT, denn da hat der Sinus eigentlich eine Amplitude von 38,14, aber die Schwingung im Zeitbereich hat nur die hälfte.
Ich komme einfach nicht drauf, wo der Fehler sein könnte

Danke und Grüße
 
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.