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

Differenzspektrum

 

Moonray
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.07.2008, 15:36     Titel: Differenzspektrum
  Antworten mit Zitat      
Hallo ihr Lieben.

Ich habe 2 Vektoren mit Messwerten. Leider sind diese unterschiedlich lang. Aus diesen beiden Messsignalen habe ich jeweils mittels fft ein Spektrum erzeugt.
Nun wollte ich die Messwerte beider Spektren voneinander abziehen um quasi die Differenz zu erhalten nur leider habe ich das Problem der unterschiedlichen Vektorlängen Sad

Die Frequenzachse ist bei beiden sehr ähnlich bzw. gleich...das heißt der Ausschnitt der mich interressiert ist bei beiden Signalen von der Frequenzachse gleich. Der eine Vektor zeichnet sich lediglich durch eine höhere Auflösung (da mehr Messpunkte) aus.
Wie bekomm ich den einen Vektor auf den anderen runterskaliert um mit beiden zu rechnen (Subtraktion, Multiplikation etc.)? Kann mir da jemand passende Funktionen in Matlab vorschlagen?
Vielen vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 25.07.2008, 23:06     Titel:
  Antworten mit Zitat      
Hallo Moonray,

da ja der Frequenzbereich wichtig für dich ist könntest du einen Filter benutzen. Ich geh mal davon aus du möchtest tiefere Frequenzen vergleichen, dann solltest du einen Tiefpassfilter benutzen, das hätte den Vorteil, das du danach downsamplen kannst. Dh du kürzt zuerst. die hohen frequenzen und kannst dann nach dem Nyquist theorem downsampeln.

Eine andere Möglichkeit sollte es sein direkt im Frequenzbereich zu arbeiten. Dh du könntest auch einfach die höhere Auflösung des längeren Signals wieder verringern oder sogar interpolierend verringern.

Was auch gehen müsste ist zero padding zu benutzen, dann könntest du die gleiche N Punkt FFT für beide Signale benutzen. also zero padding heißt du packst einfach an das kürzere Signal nullen an, und benutzt dann die gleiche N Punkt FFT über beide Signale.

Hoffe das hilft dir,

Gruß,

der Oli

edit: der DC offset sollte eigentlich doch nicht entstehen d.h. zero padding ist wahrscheinlich perfekt für deine Anwendung

Zuletzt bearbeitet von derOli am 28.07.2008, 17:35, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Moonray
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2008, 08:16     Titel:
  Antworten mit Zitat      
Vielen lieben Dank für die guten Ratschläge Oli.
Ich werd mich heut gleich mal ans Werk machen.
Private Nachricht senden Benutzer-Profile anzeigen
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 28.07.2008, 11:23     Titel:
  Antworten mit Zitat      
Sag Bescheid was klappt oder was nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Moonray
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2008, 12:28     Titel:
  Antworten mit Zitat      
Hi.

Also das mit dem Zeropadding hat super funktioniert. Einfach ein paar Nullen dran und FFT gebildet. Somit waren beide Spektrenvektoren gleichlang und ließen sich prima subtrahieren.
Es wäre ja auch schön wenn man mit dem Differenzspektrum weiterarbeiten könnte. Somit ist die Idee einfach den längeren Vektor zu kürzen auf jedenfall noch ein muss für mich. Leider habe ich es noch nicht so hinbekommen. Weiß auch nicht welche Funktion ich da nehmen muss zum Auflösung reduzieren.
Mein Versuch bestand aus beiden Vektoren Werte im bestimmten Abstand zu nehmen und somit 2 gleichlange zu schaffen. Allerdings ist dieser Ansatz nicht so gelungen, da der kürzere Vektor mit eh schon niedriger Auflösung und wichtigen Informationen ja an Inhalt verliert. Der Quotient aus der Länge von beiden Vektoren ist nämlich 1,6. Bzw. kann bei anderen Messungen auch variieren.
Das mit dem Filter ist nicht so passend da mich auch die hohen Frequenzen interessieren. Ich habe allerdings vor aus dem Differenzspektrum mal einen Filter zu basteln, welchen ich dann über unterschiedlich lange Spektren ziehe. Das soll bewirken, das störende Frequenzen verschwinden. Dieser "Filter" muss ja dann auch für unterschiedlich lange Spektren funktionieren, deswegen die Diskussion um Vektoren auf selbe Länge zu bringen.
Oder kennt nochjemand Hinweise zum Thema filter basteln mit Matlab?
Grüße
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.