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: Phasenlage zweier Sinus

 

gvtsch
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.07.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2019, 13:07     Titel: FFT: Phasenlage zweier Sinus
  Antworten mit Zitat      
Hallo,

Ich taste mich gerade mehr oder weniger langsam an die FFT in Matlab heran.
Meine Problemstellung: Ich habe ein Eingangssignale und ein Ausgangssignal. Dazwischen eine Blackbox. Die Blackbox bzw. das System darin wird durch ein sinus-förmiges Signal angeregt und liefert seinerseits wieder ein sinus-förmiges Signal, allerdings in der Phase verschoben und vermutlich gedämpft.
Ich brauche von dem System das Übertragungsverhalten. Aus diesem Grund möchte ich eine FFT durchführen.

Ich wollte mich nun zunächst mit zwei einfachen Signalen herantasten: Ein Sinus und ein in der Phase verschobener Sinus.
Als Ergebnis bekomme ich eine Phasenverschiebung von 180° bzw. -180°. Aber ich weiß ja bereits, welche Phasenverschiebung ich habe, weil ich sie ja vorgebe. Was kann ich hier tun? Oder was mache ich falsch?


Code:
Fs = 0.00025;                % Abtastfrequenz
T = 1/Fs;                   % Sampling period
L = 1000;                   % Length of signal
t = linspace(0,1,1/Fs);     % Time vector
f = 10;                     % Constant frequency
fs = linspace(0,20,1/Fs);

x1 = sin(2*pi*f*t);         % First row wave
x2 = sin(2*pi*f*t+pi());    % Second row wave

Ue = fft(x1,2^nextpow2(length(x2)));
Ua = fft(x2,2^nextpow2(length(x2)));

%% Darstellung
figure()
grid; hold on;
plot(x1)
plot(x2)

figure()
subplot(2,1,1)
grid; hold on;
plot(abs(Ua./Ue))
subplot(2,1,2)
grid; hold on;
plot(angle(Ua./Ue)*180/pi())
 


Grüße,
Christoph
Private Nachricht senden Benutzer-Profile anzeigen


Ken-Guru
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018a
     Beitrag Verfasst am: 30.07.2019, 11:43     Titel:
  Antworten mit Zitat      
Hallo Christoph,

um ein Bodediagramm zu erhalten sollte dein Code wie folgt aussehen:

Code:

Fs = 0.00025;                % Abtastfrequenz
T = 1/Fs;                   % Sampling period
L = 1000;                   % Length of signal
t = linspace(0,1,1/Fs);     % Time vector
f = 10;                     % Constant frequency
fs = linspace(0,20,1/Fs);

x1 = sin(2*pi*f*t);         % First row wave
x2 = sin(2*pi*f*t+pi/2);    % Second row wave

Ue = fft(x1);
Ua = fft(x2);

%% Darstellung
figure()
grid; hold on;
plot(t,x1)
plot(t,x2)
Betrag=20*log10(abs(Ua./Ue));
Phase=angle(Ua./Ue)*180/pi;

figure()
subplot(2,1,1)
semilogx(fs(1:end/2),Betrag(1:end/2))
grid on
subplot(2,1,2)
semilogx(fs(1:end/2),Phase(1:end/2))
grid on
 


Dann kannst du aus diesem Verlauf auf deine Übertragungsfunktion schließen.

Ich hoffe es hilft dir weiter viele Grüße
_________________

"Designed to make a difference" - Das Minuszeichen
"If you want a job done well hire a professional" - BER Vorstand
Private Nachricht senden Benutzer-Profile anzeigen
 
gvtsch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.07.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2019, 12:02     Titel:
  Antworten mit Zitat      
Hi,

Cool Smile Vielen Dank!

Ich habe noch die eine oder andere Frage.
Darstellung der Magnitude: Warum ist die Verstärkung bei 10 Hz nicht 1? Und warum gibt es überhaupt diesen Signalverlauf? Hat das etwas mit Leakage zu tun?
Phase: Bedeuten die 90°, dass das Ausgangssignal vorauseilt? Was kann ich machen, wenn ich von meinem realen System weiß, dass es das nicht macht bzw. nicht machen kann?

Grüße,
Christoph
Private Nachricht senden Benutzer-Profile anzeigen
 
Ken-Guru
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018a
     Beitrag Verfasst am: 30.07.2019, 12:09     Titel:
  Antworten mit Zitat      
Zitat:

Darstellung der Magnitude: Warum ist die Verstärkung bei 10 Hz nicht 1? Und warum gibt es überhaupt diesen Signalverlauf? Hat das etwas mit Leakage zu tun?

Kann ich dir leider nichts zu sagen.

Zitat:
Phase: Bedeuten die 90°, dass das Ausgangssignal vorauseilt?

Ja hatte bei dem zweiten Signal + PI drin.

Zitat:

Was kann ich machen, wenn ich von meinem realen System weiß, dass es das nicht macht bzw. nicht machen kann?


Kennst du die Phasenverschiebung? Wenn ja kannst du sie einfach statt das + PI eintragen.

LG
_________________

"Designed to make a difference" - Das Minuszeichen
"If you want a job done well hire a professional" - BER Vorstand
Private Nachricht senden Benutzer-Profile anzeigen
 
gvtsch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.07.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2019, 12:13     Titel:
  Antworten mit Zitat      
Ken-Guru hat Folgendes geschrieben:

Kennst du die Phasenverschiebung? Wenn ja kannst du sie einfach statt das + PI eintragen.


Nein die kenne ich leider nicht, weil sie variabel ist. Ich hatte jetzt lediglich auf die Sinus-Signale zurückgegriffen, weil ich dachte, dass ich mir das Skript an mir bekannten Signalen besser testen kann.

Mittlerweile habe ich aber auch vergessen (mangels Kommentaren), was fs bedeutet.

Grüße,
Christoph
Private Nachricht senden Benutzer-Profile anzeigen
 
Ken-Guru
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018a
     Beitrag Verfasst am: 30.07.2019, 12:19     Titel:
  Antworten mit Zitat      
Ok aber wenn du doch das Eingangs- und das Ausgangssignal kennst, könntest du daraus die Phasenverschiebung ermitteln. Sind deine Signal reale Messwerte die du aufnimmst?

Zitat:
Mittlerweile habe ich aber auch vergessen (mangels Kommentaren), was fs bedeutet.


fs ist die Abtastfrequenz.
_________________

"Designed to make a difference" - Das Minuszeichen
"If you want a job done well hire a professional" - BER Vorstand
Private Nachricht senden Benutzer-Profile anzeigen
 
gvtsch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.07.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2019, 12:28     Titel:
  Antworten mit Zitat      
Ken-Guru hat Folgendes geschrieben:
Ok aber wenn du doch das Eingangs- und das Ausgangssignal kennst, könntest du daraus die Phasenverschiebung ermitteln. Sind deine Signal reale Messwerte die du aufnimmst?

Yep. Das sollte so nun gehen. Dafür schon mal vielen Dank.

Zitat:
fs ist die Abtastfrequenz.

Aber ist die Abtastfrequenz nicht eine Konstante? Bspw. 400Hz?
Private Nachricht senden Benutzer-Profile anzeigen
 
gvtsch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.07.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2019, 12:39     Titel:
  Antworten mit Zitat      
Ich kenne sogar die Frequenz des Eingangssignals. Eigentlich würde mir auch eine Analyse bis zu der bekannten Frequenz genügen, oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Ken-Guru
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018a
     Beitrag Verfasst am: 30.07.2019, 13:06     Titel:
  Antworten mit Zitat      
Sorry hab mich vertan. fs ist der Frequenzvektor zur Darstellung im Frequenzbereich
_________________

"Designed to make a difference" - Das Minuszeichen
"If you want a job done well hire a professional" - BER Vorstand
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.