|
|
Optimierung von Fensterung |
|
derOli |
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 19.03.2008, 20:39
Titel: Optimierung von Fensterung
|
|
Schönen Guten Tag,
bin neu hier im Forum und hab auch gleich mal ne Frage:
Ich fenstere Zurzeit ein Signal und speichere die Ergebnisse in einer neuen Matrix. Benutzte dazu eigentlich immer
wenn x vorher leer war und vektor ist ein vektor immer gleicher länge. Allerdings scheint das ziemlich rechenaufwendig zu sein. Gibt es da ne bessere Lösung mit gleichem Ergebnis?
Hier der ganze Code:
win=1; also Rechteckfenster. Das Problem scheint wirklich fr=... zu sein, da ich den rest mal weggelassen hab und immernoch 6 Sekunden für 15 Sekunde Input brauche (Sound).
|
|
|
|
|
steffi |
Forum-Century
|
|
Beiträge: 149
|
|
|
|
Anmeldedatum: 07.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.03.2008, 16:50
Titel:
|
|
Ich hab (noch) nicht so richtig viel Ahnung von Signalverarbeitung, Fensterung usw., aber wenn du weißt, wie groß deine Matrix x werden wird, kannst du diese voher anstelle von x=[] definieren. Also z.B. x=zeros(n,m).
Dann überschreibst du in jedem Schleifenaufruf die i-te Spalte oder Zeile (je nachdem wie du magst) mit deinem vektor.
Das macht das ganze zumindest schneller! Glaube so wird nur die jeweilige Zeile neu geschrieben, in deiner Variante wird jedesmal die ganze Matrix neu geschrieben, das dauert länger....
Hoffe ich konnte helfen?!
_________________
Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
|
|
|
Ritter_vom_Nie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 17.02.08
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 20.03.2008, 22:48
Titel:
|
|
Steffi hat da schon recht!
Zumal du über die Länge des Eingangssignals und des Fensters eigentlich alle Dimensionen hast, die du benötigst.
In deinem kleinen Code-Ausschnitt kannst du dir doch auch die Fensterung sparen? Eine Multiplikation mit 1?
Kann natürlich sein, dass du später auf eine andere Fensterfunktion wechseln willst, das weiß ich jetzt halt nicht.
|
|
|
derOli |
Themenstarter
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 22.03.2008, 11:15
Titel:
|
|
Dankeschön für die Antworten.
Die Matrix vordefinieren werd ich mal versuchen. Das mit dem Fenster ist schon richtig. Das hab ich aber auch schon versucht wegzulassen. Ohne Zeitauswirkung. Ja also es geht darum später auch ein anderes Fenster zu benutzen.
Ich schreib dann mal wieviel Zeit ich gespart hab.
|
|
|
derOli |
Themenstarter
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 31.03.2008, 10:34
Titel:
|
|
Ja das hat geklappt, danke für die Hilfe. Hab allerdings immernoch solche Schnippsel in dem Code. Allerdings weiß ich da nicht wie ich das verbessern kann weil ich da ja vorher die größe nicht kenne. Sollte aber nicht das Problem sein weil das jeweils nur ein wert ist.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|