Forum: Digitale Signalverarbeitung / DSP / Machine Learning "analoge" FIR Filterung


von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hallo zusammen,

ich bin grad zufällig über diesen Link gestolpert: 
https://www.digikey.com/en/articles/use-readily-available-components-generate-binary-sequences-white-noise

Nun sind Rauschgeneratoren mit LFSR ja nichts wirklich neues, genial 
finde ich allerdings die Idee, die (ansonsten ungenutzten) Ausgänge der 
einzelnen Register gleich als Input für einen FIR zu verwenden... 
Gewichtung über Widerstände.

Leider ist das bild (Fig.5) so unscharf, dass ich nicht erkennen kann 
welche Ausgänge wie gewichtet werden. Aber das müsste sich ja 
anderweitig irgendwie herleiten lassen. Hier bin ich aber am Ende meiner 
Weisheit.

Vor langer Zeit habe ich mal ein FIR nach Parks-McClellan ("remez" in 
octave) berechnet, ich weiß aber nicht mehr wie ich das gemacht habe :-(

Kann mir jemand auf die Sprünge helfen?

Danke, Michi

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Damit sollte es passen:

1
 Q0 187,0k
2
 Q1 127,0k
3
 Q2 158,0k
4
Q13 158,0k
5
Q14 127,0k
6
Q15 187,0k
7
8
 Q4  97,6k
9
 Q5  46,4k
10
 Q6  31,6k
11
 Q7  27,4k
12
 Q8  27,4k
13
 Q9  31,6k
14
Q10  46,4k
15
Q11  97,6k
16
17
 Q3    ∞  (NC)
18
Q12    ∞  (NC)

Die Werte entsprechen nicht exakt dem sin(x)/x, sondern sind vermutlich
auf die endliche Filterbreite optimiert worden. Du kannst sie ja mit

Michael R. schrieb:
> Parks-McClellan

noch einmal nachrechnen (lassen).

von W.S. (Gast)


Lesenswert?

Und was soll das schlußendlich werden?
Etwa ein FIR-Filter wie in der Überschrift?
In der analogen Welt gibt es keine FIR-Filter. Punkt. Da ist jedes 
Filter schlußendlich ein IIR Filter, wenngleich man auch mit 
Gewichtungen daran herumpröpeln kann, wie sich das letztlich benimmt.

Der tiefere Grund liegt einfach darin, daß man zum analogen Filtern 
immer irgendwelche Resonanz- und Phasenverschiebe-Effekte ausnutzen muß 
- und die haben eben auch IMMER ein Ein- und Ausschwingen, also IIR 
Charakteristik.

W.S.

von Yalu X. (yalu) (Moderator)


Lesenswert?

W.S. schrieb:
> Und was soll das schlußendlich werden?

Das steht doch im verlinkten Artikel: Weißes Rauschen.

> In der analogen Welt gibt es keine FIR-Filter.

Das ist ja auch kein FIR-Filter für beliebige Eingangssignale, sondern
speziell für das vom LFSR generierte Signal. Die Speicherung der letzten
16 Abtastwerte erfolgt hier digital (im Schieberegister des LFSR) die
gewichtete Summierung aber analog. Deswegen ist das Filter sozusagen
"teilanalog", weswegen der TE das "analog" in Anführungszeichen gesetzt
hat.

von Ingenieur (Gast)


Lesenswert?

W.S. schrieb:
> Etwa ein FIR-Filter wie in der Überschrift?
> In der analogen Welt gibt es keine FIR-Filter.

Sicher gibt es die (?) Warum nicht?

Jeder so mit Widerständen und Kettenspeichern realisierte Filter ist ein 
FIR.

Analoge Multiplikation und Summation konnte man schon vor 60 Jahren mit 
Röhren und Kapazitätsketten.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Hm, ja die Filterkoeffizienten kommen mir in dem Artikel schon etwas aus 
dem Hut gezaubert vor. Die scheinen ja dafuer zu sein, dass man eine 
gausssche Verteilung hinkriegt. Die haett' ich jetzt mit einem 
Gaussfilter (Ach!) erwartet. Aber ein Gaussfilter hat keine negativen 
Koeffizienten (was dann die analoge Ausgangsstufe wieder vereinfachen 
wuerde)...
Und wenn man wie im Text erwaehnt: "very low cutoff frequencies" haben 
will, braucht man auch very long FIR filters, d.h. very viele 
Schieberegister, also deutlich mehr, als man eigentlich fuer's 
pseudonoisige braeuchte.

Gruss
WK

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Dergute W. schrieb:
> die Filterkoeffizienten kommen mir in dem Artikel schon etwas aus
> dem Hut gezaubert vor

Ich werde aus denen auch nicht wirklich schlau. Zum wie im Text 
angegebenen "filtere alles über 5% der Taktfrequenz" passen die 
überhaupt nicht, wenn dann schon eher filtere alles über 40% von 
Nyquist", was aber mit 500kHz Takt und Audio-Ausgang auch nicht 
zusammengeht.

Warum er da eine Gauss-Verteilung haben will, verstehe ich auch nicht.

Anyway, für meinen Rauschgenerator werde ich "normale" Filter verwenden. 
Trotzdem hat die Idee was ;-)

von W.S. (Gast)


Lesenswert?

Ingenieur schrieb:
> Sicher gibt es die (?) Warum nicht?

Du glaubst, alles in Frage stellen zu können, ohne nachzudenken? Den 
Grund hab ich dir ja bereits genannt. Siehe oben. In der analogen Welt 
haben wir es nicht mit Samples, sondern mit einem Kontinuum zu tun. 
Darum.

> Jeder so mit Widerständen und Kettenspeichern realisierte Filter ist ein
> FIR.

Aber eben kein analoges, sondern eines mit Samples, also zumindest 
zeitdiskret. Das ist nicht mehr die analoge Welt.

W.S.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Dergute W. schrieb:
> Hm, ja die Filterkoeffizienten kommen mir in dem Artikel schon etwas aus
> dem Hut gezaubert vor. Die scheinen ja dafuer zu sein, dass man eine
> gausssche Verteilung hinkriegt.

Nein, beabsichtigt ist zunächst ein idealer Tiefpass, und der wird
mittels einer si-Funktion realisiert. Natürlich geht das in der Praxis
nur näherungsweise, da die Abtastfrequenz und die Filterlänge beide
endlich sind. Dass das mit dem beschriebenen Verfahren erzeugte weiße
Rauschen auch gaußsch ist, ist eher ein erwünschter Nebeneffekt.

> Die haett' ich jetzt mit einem Gaussfilter (Ach!) erwartet.

Ein Gaußfilter ist wieder etwas anders, nämlich ein Filter, dessen
Frequenzgang einer Gaußfunktion (Glockenkurve) entspricht. Aber darum
geht es hier nicht.

Michael R. schrieb:
> Ich werde aus denen auch nicht wirklich schlau. Zum wie im Text
> angegebenen "filtere alles über 5% der Taktfrequenz" passen die
> überhaupt nicht

Die 5% stimmen auch nicht, die (theoretische) Grenzfrequenz des Filters
ist die Frequenz der der si-Funktion zugrunde liegenden Sinusfunktion
und liegt damit bei 1/9 (11,1%) der Taktfrequenz, also bei 55,5 kHz.

: Bearbeitet durch Moderator
von noch ein Ingenieur (Gast)


Lesenswert?

>von W.S. (Gast)

>Und was soll das schlußendlich werden?
>Etwa ein FIR-Filter wie in der Überschrift?
>In der analogen Welt gibt es keine FIR-Filter.
>Ingenieur schrieb:
>> Sicher gibt es die (?) Warum nicht?

>Du glaubst, alles in Frage stellen zu können, ohne nachzudenken?

Er hat nachgedacht und er hat Recht.

FIR: Finite Impulse Response

Genau das ist das Filter: ein Filter mit endlicher Impulsantwort.

Du bist überheblich, spiel dich nicht so auf!

von W.S. (Gast)


Lesenswert?

noch ein Ingenieur schrieb:
> Genau das ist das Filter: ein Filter mit endlicher Impulsantwort.

Und genau das ist eben nicht mehr analog, sondern zeitdiskret.

Bevor du hier von Überheblichkeit schreibst, solltest du erstmal die 
Grundlagen zu verstehen lernen.

W.S.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Dieser Artikel hier https://core.ac.uk/download/pdf/10211576.pdf von 
1976 arbeitet das Ganze etwas detaillierter und mit mehr Hardware auf. 
Fig. 6  auf Seite 3 zeigt die dort gewählte Gewichtung des DACs. Als 
Quellen für den DAC verweist der Artikel wiederum auf drei ältere 
Artikel vom Ende der 60er, Anfang der 70er Jahre.

Ich glaube dem Digikey-Artikel hätten ein paar Quellenangaben auch gut 
getan. Neu ist so etwas wirklich nicht.

Ich meine mich zu erinnern dass älteren Ausgaben vom Tietze/Schenk 
ebenfalls so einen DAC zur Signalerzeugung beschrieben. Allerdings nicht 
für Rauschen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Hui,das war 1976 sicher arg teuer zum zusammenbasteln.
Wo ich die ganze Zeit drueberstolper, wird da immerhin angerissen:
" T h e ( a p p r o x i m a t e ) G a u s s i a n n e s s of t h e a m p 
l i t u d e
d i s t r i b u t i o n arises n o t by specific design b u t r a t h e 
r as a
c o n s e q u e n c e of t h e c e n t r a l limit t h e o r e m of 
probability
t h e o r y [13], applied t o t h e s u m ..."

(Keine Ahnung, warum da durch copy+paste so viele Leerzeichen 
reingekommen sind).
Also, warum durch einen "idealen" TP es zu der gaussartigen Verteilung 
kommt. Und ob's nicht evtl. durch andere, weniger "ideale" TP zu noch 
gaussigerer gaussverteilung kommen koennte.
Naja: gut, dass ich mich um sowas nur soweit kuemmern muss, wie's mir 
Spass macht ;-)

Gruss
WK

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hannes J. schrieb:
> https://core.ac.uk/download/pdf/10211576.pdf

Danke für de aufschlussreichen Link!

Dergute W. schrieb:
> gaussigerer

da hätte ich mich jetzt fast verlesen ;-)

Aber warum wollts ihr da alle einen Gauß haben? Ich will das flach 
(weiß) oder schön abfallend (lilett)

Oder reden wir da von verschiedenen Dingen?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Michael R. schrieb:
> Oder reden wir da von verschiedenen Dingen?

Wahrscheinlich.
Ob weiss oder bunt ist wohl eine Frage des Frequenzgangs, bzw. 
Leistung/Oktave, etc.

Ich schwaetz' eher von der Wahrscheinlichkeitsverteilung des 
Ausgangssignals.
Also voellig ohne Filter haette ich als Wahrscheinlichkeitsverteilung 
einen Diracstoss mit Gewicht ca. 0.5 bei 0 und einen Diracstoss mit 
Gewicht ca. 0.5 bei 1.
Weil aus so einem Schieberegister eben nur eine 0 oder eine 1 purzeln 
kann. Und langfristig fast gleichviele Nullen und Einsen. Aber nix 
anderes.
Durch die Filterei aendert sich nicht nur der Frequenzgang, sondern auch 
die Wahrscheinlichkeitsverteilung. Da kann ja dann auch z.b. 0.5 
rauskommen. (OK, das bleiben dann immernoch irgendwelche Diracse, aber 
halt mehr verschiedene nebeneinander und hoffentlich eben von ihrem 
Gewicht her gaussverteilt.

Gruss
WK

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

W.S. schrieb:
> solltest du erstmal die
> Grundlagen zu verstehen lernen.

Hallo W.S. (Gast),
leider kann ich Dir keine PN senden, auch keine eMail (Adresse 
verkramt).
Ich hätte eine interessante Lösung zu variablen FIR- Filtern (Berechnung 
der Koeffizienten im µC) zu vermitteln. Bin bei DD4WH 
(TeensyConvolutionSDR) fündig geworden.

von Tobias (. (Gast)


Lesenswert?

W.S. schrieb:
> Und genau das ist eben nicht mehr analog, sondern zeitdiskret.

Da verwechselst du etwas. "analog" bedeutet, dem Eingang entsprechend / 
folgend und das impliziert nicht kontinuierlich. Du verwendest nur 
irrtümlich das Wort Analog falsch.

Richtig ist, zwischen "kontinuierlich" und "dikret" zu unterscheiden. 
Beies geht mit Analogtechnik. Mit digitaltechnik nur bedingt.

Ein diskretes Filter lässt sich bekanntlich jederzeit aus einem 
kontinuierlichen erzeugen, indem man es diskretisiert, d.h, "sampelt". 
Und das geht eben sehr wohl auch in reiner klassischer Analogtechnik und 
wird auch so gemacht.

von foobar (Gast)


Lesenswert?

Meine Faustformel: Filter ohne Rückkopplung sind finit, mit Rückkopplung 
infinit - egal ob digital oder analog.

von Dergute W. (derguteweka)


Lesenswert?

foobar schrieb:
> Meine Faustformel: Filter ohne Rückkopplung sind finit, mit
> Rückkopplung
> infinit - egal ob digital oder analog.

Lass das mal nicht den Herrn Hogenauer hoeren...

SCNR,
WK

von Michael W. (Gast)


Lesenswert?

Hannes J. schrieb:
> Als
> Quellen für den DAC verweist der Artikel wiederum auf drei ältere
> Artikel vom Ende der 60er, Anfang der 70er Jahre.
ja, und einen erstaunlichen Bezug zu einem Lampen-Multiplexer. Was macht 
der? Addiert der die Leuchtstärken der einzelnen (bits)?

Yalu X. schrieb:
> Dass das mit dem beschriebenen Verfahren erzeugte weiße
> Rauschen auch gaußsch ist, ist eher ein erwünschter Nebeneffekt.
Wie müsste für weisses Rauschen gefiltert werden?

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Dergute W. schrieb:
> Lass das mal nicht den Herrn Hogenauer hoeren...
Das CIC ist ja ein bischen ambivalent, was die Existenz einer 
Rückkopplung anbetrifft.

Markus W. schrieb:
> Wie müsste für weisses Rauschen gefiltert werden?
Da weißes Rauschen über das ganze Spektrum definiert ist, muss erst 
einmal eine Definition her, in welchem Bereich man es es braucht, da 
"unendlich" kaum zu machen ist.

Ich bin nicht sicher, ob es zielführend ist, ein LFSR-Rauschen beliebig 
aufwändig durch Filterung hinzubiegen. Alles, was über eine einfache 
Dezimation und  gfs Hinzumischen / Betonen von Spektralanteilen 
hinausgeht, ist schnell zu viel und durch andere Methoden leicht zu 
toppen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Zu der Überschrift fallen mir Abbildungen von SAW-Filtern ein. Die Länge 
der Resonatoren soll irgendwie mit der Impulsantwort zusammenhängen. So 
richtig analog ist es nicht, aber man gibt zumindest ein Analogsignal 
auf diese Filter.

https://commons.wikimedia.org/wiki/File:Surface_Acoustic_Wave_(SAW)_filter.png
https://commons.wikimedia.org/wiki/File:F1319M_SAW_Filter.jpg

von Asic-Bauer (Gast)


Lesenswert?

Dann linke ich mal den dazu passenden Artikel:
https://de.wikipedia.org/wiki/Akustische-Oberfl%C3%A4chenwellen-Filter

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Christoph db1uq K. schrieb:
> Zu der Überschrift fallen mir Abbildungen von SAW-Filtern ein. Die Länge
> der Resonatoren soll irgendwie mit der Impulsantwort zusammenhängen
Da dürfte sich eine stehende Welle bilden, gemäß der Laufzeit der Welle 
im Metall / Wellenwiderstand und eine Schwingung bilden, wie bei einem 
Hohlraumresonator auch. In der Akustik nennen wir das wave guiding, 
läuft ausbreitungsbedingt einige Zehnerpotenzen langsamer.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Die beschriebene Methode mit den Widerständen mag ganz gut 
funktionieren, wenn ein einfach zu erzeugendes analoges Rauschen 
gebraucht wird, aber dann müssen das nach meinem Empfinden schon mehr 
Bits sein, wegen der MLS-Thematik und der Filter-TAP-Anzahl. Sagen wir 
mal 64 TAPs mit Nutzung von 1/8 der Frequenz. So ist das doch arg grob.

Wenn ein DSP zur Verfügung steht, würde ich mich eher in Richtung KISS 
(Marsaglia) orientieren. Solche Generatoren sind leicht zu 
implementieren und erzeugen direkt 32/64 Bit, bei "geprüfter" Qualität. 
Man kann mit den Anfangsbedingungen und Faktoren etwas experimentieren, 
um ein eigenes, von anderen Personen nicht vorhersagbares Rauschen zu 
bekommen. Ich habe so eine Anwendung schon im FPGA implementiert und 
verwende eine Abwandlung davon auch in meinem Synth.  Schon mit einer 
binären Modulovorschrift wie Y(n+1)  = MOD ( A * Y(n)  + C , 2hN)  lässt 
sich ein sehr gutes Rauschen erzielen, wenn man die Störung C 
entsprechend bildet, z.B. mit einem XOR-Shift oder einer komplementären 
Modulo-Vorschrift. Im FPGA sind das 2 parallele MUL + ADD, das Modulo 
gibt es Gratis. Für Generatoren mit begrenzter Länge lassen sich die 
Zahlen mit Excel berechnen, sortieren und prüfen, ob si eine 
Maximalfolge bilden und wie das Spektrum aussieht.

Wenn es wirklich streng exakt verteilt sein soll, empfiehlt sich ein 
Mersenne-Twister (einige ms FPGA-Start reichen als Anlauf- und 
Aufwärmphase).

Und so richtig zufälliges Rauschen ohne Garatie über Werteverteilung und 
Häufigkeit bekommt man hiermit: Digitaler Rauschgenerator im FPGA

von Kanalarbeiter (Gast)


Lesenswert?

Jeder Mehrwegekanal ist ein analoges FIR.

von Tobias (. (Gast)


Lesenswert?

Kanalarbeiter schrieb:
> Jeder Mehrwegekanal ist ein analoges FIR.
?

von Kanalarbeiter (Gast)


Lesenswert?

Tobias N. schrieb:
> ?

Ja malen Sie sich doch mal die Impulsantwort eines Mehrwegekanals auf 
und stellen dafür das Blockschaltbild auf.

von Michael W. (Gast)


Lesenswert?

DH1AKF W. schrieb:
> Ich hätte eine interessante Lösung zu variablen FIR- Filtern (Berechnung
> der Koeffizienten im µC) zu vermitteln. Bin bei DD4WH
> (TeensyConvolutionSDR) fündig geworden.

Link?

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
Noch kein Account? Hier anmelden.