Für eine Audio-Anwendung brauche ich - nebem dem normalen Anti-Alias LP (mit Passband bis Fs/4 und Stoppband ab Fs/2) - einen HP Filter mit Passband ab Fs/50. Als FIR Filter würde eine solch steile Filterflanke entsprechend viele Taps/Koeffizienten erfordern. Wäre es möglich den HighPass sozusagen als Abfallprodukt eines Hilbert-Transformers mitzunehmen - und wenn ja - wie kann ich den Hilberttransformer entsprechend berechnen? Selbst wenn der Hilberttransformer ähnlich aufwendig wie der FIR-Filter ausfiele, ergäbe sich durch die Doppel-Funktion bei einer Implentierung in (FPGA-)Hardware immer noch eine Ersparnis. Gruß, Burkhard
Ein Hilbert-Transformer hat den Betragsfrequenzgang eins,wie könnte das gehen? Cheers Detlef
Detlef _. schrieb: > Ein Hilbert-Transformer hat den Betragsfrequenzgang eins,wie könnte das > gehen? Nur in der Theorie ist der Frequenzgang über alle Frequenzen einheitlich, reale Implementationen schaffen es nicht (bei endlicher Samplezahl), ein Signal mit der Frequenz 0 oder Fs/2 um 90° zu schieben, wirken also an den Enden des betrachteten Frequenzspektrums jeweils als HP bzw. LP. Meine Frage zielt darauf ab, ob sich dieses "eigentliche" Defizit eines realen Transformers gezielt ausnutzen lässt. Gruß, Burkhard
Moin, Wuerd' ich mit ausprobieren machen; z.b. so:
1 | len=11; |
2 | H=freqz(imag(hilbert([zeros(1,len),1,zeros(1,len)])));20*log10(abs(H(21))) |
kriegst du die Daempfung bei ca. fs/50 eines 2*len+1 Taps langen Hilberttransformators raus. Dann halt so lange an len rumtuefteln, bis die Daempfung genehm ist. Gruss WK
Burkhard K. schrieb: > Wäre es möglich den HighPass sozusagen als Abfallprodukt eines > Hilbert-Transformers mitzunehmen - und wenn ja - wie kann ich den > Hilberttransformer entsprechend berechnen? Ja - das ist ne Frage, die mich ebenfalls schon seit einiger Zeit umtreibt. Bin in dieser Sache eben auch ein Suchender. Aber ich hab schon mal einiges zusammengetragen: Stell dir also mal nen gewöhnlichen FIR-Bandpaß vor. Sowas zu berechnen ist leicht, denn in der bekannten DSP-Guide gibt's dafür ein gutes Rezept, die sin(x)/x Filter betreffend. Wenn du dir die Filterkoeffizienten anschaust und vllt. mal als Kurve aufmalst, dann siehst du, daß es ne Art Glockenkurve (dank Blackman) ergibt. Also spiegelsymmetrisch zur Mitte der Taps. Wenn das Filter dann noch die Phase konstant drehen soll, also Typ Hilbert, dann sieht die Kurve der Filterkoeffizienten anders aus, nämlich nicht spiegelsymmetrisch zur Mitte, sondern punktsymmetrisch zur Mitte. Und dazu sehen die zwei Hälften aus, als wären sie aus einer symmetrischen Kurve hergenommen und eine Seite etwas außerhalb der Mitte abgeschnitten. Also: ein Bandpaß + Hilbert in einem Ruck ist möglich. Die IOWA-HILLS haben das vorgemacht, aber ihren Algorithmus (mal wieder) nicht veröffentlicht. deshalb müßtest du dich durch den mathematischen Hintergrund selbst durchbeißen oder jemand, der ein gutes Rezept hat, postet diese hier. W.S.
W.S. schrieb: > Also: ein Bandpaß + Hilbert in einem Ruck ist möglich. Die IOWA-HILLS > haben das vorgemacht, aber ihren Algorithmus (mal wieder) nicht > veröffentlicht. Iowa-Hills kannte ich bis dahin noch nicht, der Hinweis auf http://www.iowahills.com/8DownloadPage.html hat sich für mich gelohnt, dafür ein großes "Danke"; der FIR- und Hilbert-Filter-Designer sind bei mir bereits im Einsatz. (Dabei hat sich herausgestellt, dass die zu erreichende Dämpfung im Stoppband - auch bei > 100 Koeffizienten - eher mäßig ausfällt) Wäre diese Webseite mit dem Angebot an freien Filter-Designern nicht allemal einen Link auf der DSP-Übersichtsseite hier wert? Gruß, Burkhard
Burkhard K. schrieb: > Wäre diese Webseite mit dem Angebot an freien Filter-Designern nicht > allemal einen Link auf der DSP-Übersichtsseite hier wert? Ich hätte da nen ganz anderen Vorschlag: Hier die tatsächlichen Algorithmen mal in leichtverständlicher Form zusammentragen. Dann kann sich ein jeder mit einem Programm in der Sprache seiner Wahl das alles selbst ausrechnen. Das bloße "AnDenKopfWerfen" von Prinzipformeln reicht nicht aus. Ich hatte mir vor einiger Zeit mal zum Ausprobieren sowas selber geschrieben - allerdings per Delphi in Pascal und Hilbert ist noch nicht dabei. Aber so, wie ich das hier sehe, ist dieses Forum viel zu C-lastig um sowas mal komplett zu posten. Ich hänge mal nen kleinen Auszug hier dran, so als Beispiel zum Lesen. Sollte eigentlich selbsterklärend sein. W.S.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.