goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

MATLAB und Simulink: Grundlegende Einführung f. Studenten

Studierende:
Feldorientierte Regelung von elektrischen Maschinen
Antriebs- und Fahrwerktechnik
ZF Friedrichshafen AG - Friedrichshafen

Studienabschlussarbeit im Bereich Vorentwicklung Klimatisierung
Kfz-Zulieferindustrie
Behr GmbH & Co. KG - Stuttgart

Praktikant / Werkstudent Nachrichtentechnik (m/w)
Telefonanbieter
OnePhone Deutschland GmbH - Erkrath

Praktikum Modellgetriebene Software-Entwicklung für PV-Wechselrichter (Elektrotechnik, Technische Informatik, Automatisierungstechnik)
Energieversorgung
SMA Solar Technology AG - Niestetal

Praktikum Sensorik zur Überwachung von Solaranlagen (Elektrotechnik, Informatik, Physik, Mathematik)
Energieversorgung
SMA Solar Technology AG - Niestetal

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Frequency Domain LMS-Algorithmus

 

student_007
Forum-Newbie
Forum-Newbie

Beiträge: 2
Anmeldedatum: 26.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.07.2010, 18:04     Titel: Frequency Domain LMS-Algorithmus
  Antworten mit Zitat      
Hallo Zusammen,

ich muss ein Matlab-Code erstellen für ein Frequency Domain LMS-Algorithmus. Das ist ein adaptive Filter, nur im Frequenzbereich implementiert.
Ich habe alle Schritte vor mir, nur mit dem Syntax komme ich nicht klar Sad Ich bitte um Hilfe!! Es ist dringend!

Danke!
Private Nachricht senden Benutzer-Profile anzeigen


vega1013
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 51
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2010, 15:42     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht solltest du dann dein Problem etwas konkretisieren oder sagen was du möchtest, damit dir geholfen werden kann.
Ich habe mich vor einiger Zeit auch mit dem LMS-Algorithmus vor dem Hintergrund der Systemidentifikation beschäftigt, vielleicht kann ich dir weiterhelfen...

Gruß Vega
Private Nachricht senden Benutzer-Profile anzeigen
 
student_007
Themenstarter

Forum-Newbie
Forum-Newbie

Beiträge: 2
Anmeldedatum: 26.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2010, 16:26     Titel:
  Antworten mit Zitat      
Hallo Vega,

danke erstmal für deine schnelle Antwort.
So ich möchte ein Block LMS Algorithmus implementieren, dh:
- die Eingangsfolge x[n] wird in Blöcke der Länge C eingeteilt, wobei C die DFT-Länge ist. Um von einen Block zum anderen zu kommen, machen wir eine Verschiebung um L Werte.
-das Verfahren (LMS) wird dann für jeden Block im Frequenzbereich wiederholt. Sinn der Sache, ist es dass im Frequenzbereich eine Faltung einer einfachen elementweise Multiplikation entspricht!! (Rechenaufwand wird weniger Wink )

So wird gemacht:
1.Filterung mit dem Overlap-Save-Verfahren im Frequenzbereich:
X[k]=FFT( x[k])
Y[k]=W[k] .* X[k]
y[k]=IFFT(y[k])

Fehlervektor: e[k]=d[k]-y[k]
E[k]=FFT(e[k])

2.Adaption des Filters im Frequenzbereich
-Leistungschätzung und Schrittweite
-Aufdatierung des Koeffizientenvektors

wobei
k=Blockindex, dh
x[1] ist en Vektor, der die ersten C Werte enthält
x[2] ist en Vektor, der um L Werte im Vergleich zu x[1] verschoben wurde und enthält ebenso C Werte
so allgemein: x[k]=[x[kL+L-C],........,x[kL+L-1]]

w[k] ist dann der für diesen Block entsprechende Gewichtsvektor. Er hat die Länge N, deswegen wird er um C-N Nullen auf die Länge C ausgedehnt: w[k]=[w1,w2,...,wN,0,0,....0]

Die Blockweise Verarbeitung bringt es mit sich, dass auch der Filterausgang jeweils in Blöcken der Länge L vorliegt.

Ich kann weiter machen um Einzelheiten zu klären Smile

Ich hoffe das ist erstmal ein Anfang um mich weiter zu helfen.

Ich kann auch gerne Fragen zum Algorithmus beantworten.
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 51
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 17:23     Titel:
  Antworten mit Zitat      
Hallo,

was hast du denn bis jetzt geschrieben? Du solltest den Code den du bis jetzt hast schon mal posten, damit man darüber diskutieren kann... Ich denke nicht das jemand hier für Dich programmieren wird...

Tipps zum Problem:
Die DFT kann mit dem Befehl
Code:
fft
berechnet werden. Für Infos gib einfach mal
Code:
ein und schau dir das Beispiel an. Ich glaube hier im Forum hat jemand auch mal eine Art Tutorial zur FFT geschrieben.
Deine "x"-Matrix kannst du mit einer for Schleife erstellen. Dies sollte anhand eines Minimalbeispiels keine größeren Probleme darstellen. Beispiele:
Code:

Jetzt solltest du mit den Code-Zeilen kommen...

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.