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

Multisinus

 

church01
Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 04.12.09
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 31.08.2012, 09:49     Titel: Multisinus
  Antworten mit Zitat      
Hallo Zusammen!

Ich versuche gerade einen Multisinus mit 50 Frequenzen zu erzeugen die untereinander logarithmisch gespaced sind. Ziel ist es einen möglichst geringen Crest-Faktor zu erreichen. Ich arbeite in einer Bandbreite zwischen 60Hz bis 10kHz und hab es jetzt mal mit random-Phasenverschiebung untereinander versucht jedoch komm ich bestenfalls (100k-Durchläufe) auf einen CF von 3.1-3.2. Kennt jemand bessere Methoden um einen ordentlichen Crestfaktor zu erhalten? Gibt es vielleicht sogar einen vorgefertigten Befehl für optimierte Multisinusse?

Vielen Dank für eure Hilfe

BG

churchy
Private Nachricht senden Benutzer-Profile anzeigen


church01
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 04.12.09
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 04.09.2012, 23:11     Titel:
  Antworten mit Zitat      
Das Optimierungsproblem ist mal gelöst (bei Interesse -> PM). Mein jetztiges Problem für die FFT ist es jedoch, die Periode des Signals herauszufinden (50 überlagerte Sinus mit log-gespacten Frequenzen). Wie geh ich das am besten an?

Vielen Dank für eure Hilfe

MfG

Stefan
Private Nachricht senden Benutzer-Profile anzeigen
 
Caravaggio
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 20.04.12
Wohnort: Braunschweig
Version: R2012a
     Beitrag Verfasst am: 05.09.2012, 08:37     Titel:
  Antworten mit Zitat      
Kannst du die Lösung nicht einfach hier ins Forum posten? In einem halben Jahr antwortest du nicht mehr auf die PM und der nächste hat dann Pech gehabt Wink

Möchtest du die Periode des Gesamtsignals? Das ist die Grundfrequenz und die bekommst du ja über die FFT raus. In der Hilfe ist das ganz gut beschrieben, wie man das Sprektum plotten kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
church01
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 04.12.09
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 05.09.2012, 10:00     Titel:
  Antworten mit Zitat      
Ausprogrammieren muss es sich ja jeder für seine Bedingungen aber ich kann kurz die Vorgehensweise erklären:
-Man erzeugt einen Sinus mit x-Frequenzen und zufälligen Phasen
-Nun schneidet man ca. 5-25% des Extremwertes des generierten Sinus ab.
-Diesen geclippten Sinus transformiert man nun in die Frequenzdomäne
-Dort extrahiert man sich die neuen Phasen des geclippten Sinus
-Nun generiert man einen neuen Sinus mit den ungeclippten Amplituden jedoch mit den Phasen des geclippten Sinus.
-Man lässt den Algorithmus so lang laufen bis der Crest-Factor des neu erstellten Sinus nicht mehr kleiner wird als der des alten Sinus.

Zum Perioden-Problem: Die Periode ist ja mit der Autokorrelation des Signals herausfindbar. Ich hab jedoch das Problem dass mir der Matlab-Befehl autocorr ein Bild erzeugt. Wie kann ich mit matlab die AKorr so durchführen, dass ich als "Wert" meine Periodendauer herausbekomme?

Vielen Dank

lg

churchy
Private Nachricht senden Benutzer-Profile anzeigen
 
Caravaggio
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 20.04.12
Wohnort: Braunschweig
Version: R2012a
     Beitrag Verfasst am: 05.09.2012, 10:40     Titel:
  Antworten mit Zitat      
Code:
f = 50; % Hz => T = 20 ms
Ts = 100e-6; % Schrittweite
t = 0:Ts:1; % Zeitvektor
y = sin(2*pi*f*t); % Funktion

% Autokorrelation
[ACF,lags,bounds] = autocorr(y,300);
plot(lags*Ts,ACF);grid on;


Musst du noch die Maximas bzw. Nullstellen finden..

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
church01
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 04.12.09
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 05.09.2012, 11:04     Titel:
  Antworten mit Zitat      
Caravaggio hat Folgendes geschrieben:

Musst du noch die Maximas bzw. Nullstellen finden..

MfG


Was ist wenn mein Ergebnis so aussieht? (Hab die NLags auf Datalength-1 gestellt)?

Thx

church

ACF.PNG
 Beschreibung:

Download
 Dateiname:  ACF.PNG
 Dateigröße:  97.99 KB
 Heruntergeladen:  571 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Caravaggio
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 20.04.12
Wohnort: Braunschweig
Version: R2012a
     Beitrag Verfasst am: 05.09.2012, 11:25     Titel:
  Antworten mit Zitat      
Prinzipiell solltest Du bei der Autokorrelation niemals bis zum Ende des Datensatzes arbeiten. Numerisch falsch, da du ja die Funktion mit sich selbst verschiebst und an den Enden keine Daten vorhanden sind. Dies siehst du ja an meinem Beispiel, je kürzer mein Zeitvektor ist, desto stärker wird das Signal gedämpft. Wenn ich es noch richtig im Kopf habe, dann nimmt man 5-10 soviel Schwingungen wie man benötigen würde.

Zu deinem Ergebnis kann ich schlecht etwas sagen, weil ich ja die Ausgangsfunktion nicht kenne, daher wäre ein Plot von x(t) gut. \varphi_{xx}(t) reicht leider nicht um eine wirklich gute Antwort zu geben.

Bei diesem Signal würde ich aber vermuten, dass entweder die Frequenz deinen Sinus zu hoch ist oder die Schrittweite nicht klein genug.
Private Nachricht senden Benutzer-Profile anzeigen
 
church01
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 04.12.09
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 05.09.2012, 11:50     Titel:
  Antworten mit Zitat      
Mal eine Frage so zwischen durch. Ich generier dauernd den Multisinus für 1sek. Kann es denn überhaupt theoretisch sein, dass wenn die Phasenverschiebung nicht größer als +-2pi ist die Periodendauer 1sek. übersteigt?

thx
Private Nachricht senden Benutzer-Profile anzeigen
 
Caravaggio
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 20.04.12
Wohnort: Braunschweig
Version: R2012a
     Beitrag Verfasst am: 05.09.2012, 16:40     Titel:
  Antworten mit Zitat      
Da musst du für mich etwas genauer werden Smile Multisinus für 1 sek? Ist das die Periodendauer? Ein Bild wäre auch ganz hilfreich...außerdem bin ich neugierig wie das in Summe aussieht mit deinem Multisinus (und wofür brauch man das eigentlich? Habe zu dem Thema nicht sehr viel Literatur gefunden..).

Grundsätzlich ist es so, dass du eine Grundwelle hast und Oberwellen. Die Periodendauer orientiert sich stark an der Grundwelle. Nun kann es aber zu Schwebungen kommen etc...Es kommt dann immer auf die Betrachtung an, was für dich die Periodenzeit ist...Warum nutzt du eigentlich die AKF und nicht die FFT bzw. was spricht gegen FFT? Aufgrund der Periodizität kann die Phasenverschiebung beim Sinus nicht größer oder kleiner als 2*Pi werden Smile

Da mein Glaskugellatein nun am Ende ist und mir nichts mehr einfällt, solltest du etwas ausführbaren Code/Daten/Bilder (die den Sachverhalt besser vermitteln...Wie sieht das Summensignal aus etc...das Ausgangssignal der AKF hilft nicht wirklich). Alles andere wäre, wie dieser Beitrag leider auch, blindes raten...

Viele Grüße,
Private Nachricht senden Benutzer-Profile anzeigen
 
church01
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 04.12.09
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 09.09.2012, 01:01     Titel:
  Antworten mit Zitat      
So hab meinen Fehler eingesehen -> DFT mit Multisinus und non-integer Frequenzen ist wohl ein No-Go. Frequenzen auf nächsten Integerwert runden und alles ist periodisch und durchführbar.
Man verwendet Multisinus z.B. bei biologischen Impedanzmessungen um kürzere Messzeiten zu erhalten, da das biologische System oftmals nicht lang genug "ruhig" hält Smile

Vielen Dank

Close mal das Thema
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.