www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Signaltheorie" - Remez Exchange Algorithmus
Remez Exchange Algorithmus < Signaltheorie < Ingenieurwiss. < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Signaltheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Remez Exchange Algorithmus: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 13:20 Mo 10.09.2012
Autor: Flock

Hallo, Forum!

Ich bin vor kurzem auf den Remez Exchange Algorithmus gestoßen. Und fand in Wikipedia einen Vorschlag, dass man anhand von den FIR-Filtern die Hilberttransformierte berechnen kann.

So weit ich herausgefunden habe, funktioniert dieser Algorithmus grob beschrieben so:

1) Rate die Frequenzen [mm] w_{0}, w_{1}, [/mm] ... , [mm] w_{n}, [/mm] an denen Maxima angenommen werden sollen (darf man diese äquidistant wählen?)

2) Löse das Gleichungssystem, um [mm] \delta [/mm] zu ermitteln und die Koeffizienten [mm] a_{0},...,a_{c}, [/mm] mit denen man das Polynom P(w) angibt. Dazu kann man LR-Algorithmus oder QR-Zerlegung anwenden. Wenn diese Verfahren nicht die gewünschte Genauigkeit liefern, kann man versuchen, das Ganze über Gaußseidel oder Jacobiverfahren zu lösen, dabei kann man den Fehler kontrollieren.

3) Anhand der Koeffizienten [mm] a_{0}, a_{1}, [/mm] ..., [mm] a_{c} [/mm] berechne dann E(w)=|W(w)*(D(w)-P(w))|

Hierzu schonmal eine Frage: W(w) ist eine Gewichtsfunktion, wenn ich es richtig verstanden habe - wie ist diese geschickt für die Anwendung zu wählen?
Und woher kriege ich D(w), was steckt in diesem Term?

4) Lokalisiere die Frequenzen [mm] w1_{0},...,w1_{p}, [/mm] bei welchen die Funktion E(w) das Maximum annimmt und es gilt: [mm] |E(w1_{i})| \ge \delta. [/mm]

5) Berechne den Konvergenzparameter - Q = [mm] \bruch{max|E(w1_{i})| - min|E(w1_{i})|}{max|E(w1_{i})|} [/mm]

6) Lösche die überflüssigen potentiellen Extrema wie ein Abweisungskriterium vorschreibt

7) Ist der Konvergenzparameter größer als vorgegeben Konvergenztoleranz, wiederhole die Schritte 2 bis 7, wenn nicht, dann gehe zu 8

8) Berechne P(w) indem du die letzte Menge von Frequenzen benutzt, dann berechne die Impulsantwort h(n) von dem gesuchten Filter. Fertig

[mm] \delta [/mm] berechnet sich anhnad der Summe:

[mm] \delta [/mm] = [mm] \summe_{k=0}^{r} \bruch{\alpha_{k}*D(w_{k})}{\bruch{\summe_{k=0}^{r} (-1)^{k}*\alpha_{k}}{W(w)}} [/mm]

[mm] \alpha_{k}= \produkt_{i=0}^{r} \bruch{1}{x_{k} - x_{i}} [/mm] , wobei i [mm] \neq [/mm] k

Ich will jetzt diesen Algorithmus dazu benutzen, um die Hilberttransformation umzusetzen. Ich weiß jetzt nicht so genau, wie ich jetzt vorgehen soll, wenn ich den Remez-Algorithmus fertig programmiert habe.

So wie ich mir überlegt habe, passiert hierbei folgendes:

Ich betrachte ein Eingangssignal mit Rausch, das Signal ist diskretisiert vorgegeben. Anhand des Remez -Algorithmus (oder Parks-McClellan Algorithmus, siehe nächsten Absatz) entwickle ich einen optimalen Filter, der bestimmte Frequenzen herausfiltert, d.h bestimmten Rausch beseitigt. Und nun will ich zusätzlich noch, dass dieser Filter auch die Hilberttransformierte liefert (laut Wikipedia kann man die Hilberttransformation anhand der FIR-Filter umsetzen). Die Frage ist - wie? Natürlich kann ich wie bereits in meiner letzten Forendiskussion die Hilberttransformierte bestimmen - aber mich reizt der neue Weg, von der anderen Perspektive, sonst nützt es ja nichts, für das Gleiche den Fünffachen Rechenaufwand zu betreiben oder übersehe ich wichtige Vorteile?

Alternativ gibt es noch den Parks-McClellan Algorithmus für den Filterdesign, der sehr ähnlich zum Remez-Exchange Algorithmus ist. Bei diesem Algorithmus wird im Schritt 2 Lagrange-interpolation eingesetzt, wodurch es an Geschwindigkeit gewinnt, ansonsten sehe ich da keine Unterschiede oder gibt es noch zusätzlich wesentliche Unterschiede und warum wurde ausgerechnet dieser Parks-McClellan Algorithmus so populär?

Vielen Dank im Voraus für das Beantworten der Fragen.

Gruss

Flock

        
Bezug
Remez Exchange Algorithmus: Ergänzung zur Frage
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:59 Mi 12.09.2012
Autor: Flock

Hallo, Forum!

ich habe etwas länger im Internet gesurft und bin auf folgende Idee gekommen. Vielleicht hilft es einem oder anderen meine Frage zu beantworten.
Es gibt mehrere Möglichkeiten, Hilberttransformation anhand der FIR Filter umzusetzen:

- FIR-Hilbert, streng linearphasig, kann mit der Matlabfunktion remez oder firpm mit der Einstellung 'hilbert' umgesetzt werden

- näherungsweise linearphasiger IIR-Hilbert

- minimalphasiger IIr-Hilbert, kompakt

Meine Frage war, wie man den Remezalgorithmus modifiziert, so dass man eine Hilberttransformierte als Ergebnis erhält... In Matlab wird es mit remez und der Einstellung hilbert gemacht. Vielleicht kennt sich ja jemand aus und versteht was für ein Gedanke hinter dem Programm steckt. Ich will insbesondere die Theorie dahinter verstehen, wie ich es tun könnte, ohne diese Hilfsfunktion aus Matlab zu benutzen.

Vielen Dank im Voraus.

Gruss
Flock

Bezug
        
Bezug
Remez Exchange Algorithmus: Filterdesign, Tiefpassfilter
Status: (Frage) beantwortet Status 
Datum: 18:13 Mi 19.09.2012
Autor: Flock

Hallo, Forum!

Vielleicht ist meine obige Frage so speziell, dass keiner diese genau beantworten kann (vielleicht nur die Leute, die es mal selber in Matlab programmiert haben).

Es wäre trotzdem schön, eine Antwort auf die erste Frage zu bekommen, wäre allerdings nicht schlimm, wenn es keiner weiß.

Im Moment interessiert mich zusätzlich noch folgender Sachverhalt:

Angenommen, ich hätte eine Transferfunktion (Übertragungsfunktion) eines Tiefpassfilters und eine Eingangsfolge (eines Signals) im Zeitbereich gegeben.
Welche Vorgehensweise wäre kluger für die Anwendung, wenn ich das Signal demodulieren möchte?

1) Ich wende FFT (Fast Fourier Transform), schnelle Fouriertransformation, auf die Eingangsfolge x an, multipliziere das Ergebnis fft(x) mit der Übertragungsfunktion A(x), anschließend wende ich auf das Produkt die inverse FFT an.

Als Ergebnis müsste ich dann tiefpassgefilterte Folge von x im Zeitbereich erhalten, oder?

2) Man bestimme zunächst die Filterkoeffizienten im Zeitbereich mittels Filterdesign (z.B mittels Parks-Mc Clellan oder Remez Algorithmus), die der Übertragungsfunktion entsprechen. Dann bilde man die Summe, wie diese für lineare Filter gegeben ist.
Das Output des Filters müsste dann die tiefpassgefilterte Eingangsfolge sein, oder?

Vielleicht behaupte ich ganz falsche Sachen - sind überhaupt die Ansätze 1) und 2) äquivalent?

Wenn ich das hingekriegt habe, muss ich das Ergebnis mit Cosinus multiplizieren und das Signal wird dann demoduliert. (Es ist eine Art vom Band Pass Filter, die dann entsteht)

Vielen Dank im Voraus

Flock

Bezug
                
Bezug
Remez Exchange Algorithmus: Tipps
Status: (Antwort) fertig Status 
Datum: 15:01 Sa 22.09.2012
Autor: Infinit

Hallo Flock,
ich habe Deine Fragen mit Interesse gelesen, kenne aber keinen der Algorithmen, so dass ich mich mit einer Antwort zurückgehalten habe. Zu meiner Studienzeit Anfang der 80er gab es keine Simulationsprogramme. Die Signaltheorie war ein sehr theoretisches Gebilde und wenn man mal was simulieren wollte, so ging dies nur mit Hilfe von FORTAN und Rechenzeit an Großrechenanlagen, also eigentlich nur für Studien- oder Diplomarbeiten.  

Zu Deinen allgemeinen Fragen kann ich aber etwas beisteuern:
Zu 1) Natürlich kannst Du über den FFT-Bereich gehen, um das Ausgangssignal eines Systems im Frequenzbereich aus der Multiplikation von Frequenztransformierter des Eingangssignals und der Übertragungsfunktion zu bestimmen. Eine Rücktransformation in den Zeitbereich liefert dann die Ausgangsfolge. Wenn Du die Eingangsfolge aus der Abtastung eines kontinuierlichen Eingangssignals gewonnen hast, so denke daran, das Abtasttheorem einzuhalten, um hier keine Unterabtastung durchzufühern, die natürlich das Ausgangssignal verfälschen würde. Arbeitest Du direkt mit Zahlenfolgen, so ist die Abtastung per se natürlich eingehalten.

Zu 2) Hier ist mir nicht klar, in welchem Bereich Du denn die Filterung durchführen willst. Im Frequenzbereich ist dies okay wie von Dir beschrieben, bleibst Du aber im Zeitbereich (damit sind diese Koeffizienten die Koeffizienten einer linearen Differentialgleichung),so entsteht das Ausgangssignal durch Faltung der Eingangsfolge mit der Impulsantwort des Systems.


Hoffentlich sind ein paar Sachen dadurch etwas klarer geworden.

Viele Grüße,
Infinit


Bezug
                        
Bezug
Remez Exchange Algorithmus: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:09 Mo 24.09.2012
Autor: Flock

Vielen Dank, Indefinit!

Jetzt weiß ich, dass ich mit meinen Vermutungen richtig liege. Nun muss ich schauen, wie ich alles implementiere und zum Laufen bringe.

Natürlich wäre ich sehr dankbar, wenn mir jemand etwas
über Remez und McClellan Algorithmen verraten könnte (worauf ich bereits in der ersten Frage hingewiesen habe)

Gruss,

Flock


Bezug
        
Bezug
Remez Exchange Algorithmus: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:20 Di 25.09.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Signaltheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]