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

Fourier-Transformation eine Chirp-Signal

 

ands91
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2016, 23:14     Titel: Fourier-Transformation eine Chirp-Signal
  Antworten mit Zitat      
Hallo Community,

ich arbeite momentan an einem Projekt, in dem es um Schwingungen geht.
Hier bei wird mit einem Struktur angeregt und die Antwort gemessen.

Mein Problem liegt in der Anregung bzw. dem Amplitudenspektrum der Anregung.

Ich will mit einem Sinus-Chirp anregen und danach die Übertragungsfunktion bilden.

Bei der Frequenztransformation von meinem Anregungssignal taucht nun mein Problem auf.
Wenn ich es transformiere, stimmt die Amplitude im Amplitudenspektrum nicht mehr.

Ich habe, damit ich es besser verstehe, mir einen Code erstellt, wo ich mir einen idealden linearen Chirp erzeuge und diesen transformiere. Ich verwende dabei die Beispiele, die Matlab mir liefert.

Leider stimmen hier wie gesagt meine Amplituden aus Zeit- und Frequenzsignal nicht mehr.

Kann mir vielleicht einer helfen. Habe ich einen Fehler in meinem Code oder habe ich einen Denkfehler.
Code:
%% Test Sweep
clc
clear
% close all

%% Zeitbereich

L=1228800;
Fs=2048;
dt=1/Fs;
t1 = L*dt;
% f=100;
t=linspace(0,t1,L);
y = chirp(t,100,t1,950,'linear');

figure(1)
plot(t,y)
grid on

%% Frequenzbereich

Y=fft(x,L);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;

figure(2)
plot(f,P1);
grid on
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
xlim([50 1000])

 


Danke schon mal für die Antwort.
Private Nachricht senden Benutzer-Profile anzeigen


Namenloser324

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2016, 06:23     Titel:
  Antworten mit Zitat      
Hey,

dein Code ist an einer Stelle fehlerhaft, bei der fft muss "y" übergeben werden, nicht x Wink

das Chirpsignal ist in seiner Frequenz nicht zeitlich konstant, daher kannst du nicht einfach das gesamte Signal nehmen bei der fft um die Komponenten zu extrahieren.

Schau mal hier https://de.mathworks.com/help/signal/ref/chirp.html wie die das machen. Die verwenden ein Spektrogramm. (d.h. FFT anwenden auf kleine Teile des Signals in denen die Frequenz quasi konstant ist).
 
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.