Tiefpassfilter fĂźr Audio

F

Frank Buss

Guest
Auf dieser Seite habe ich eine Schaltung fĂźr einen Tiefpassfilter gefunden:

http://www.electronics-tutorials.ws/filter/filter_8.html

Kann man da einfach den Kondensator ändern, oder muß man auch die
Widerstände anpassen? Ich habe mal 2 nF verwendet, sieht dann so aus:

http://i.imgur.com/qwPDPsI.png

Im Prinzip schonmal nicht schlecht. Aber warum stimmt die Amplitude nicht?

Was ich gerne haben wĂźrde ist ein Tiefpassfilter, der bis 10 kHz das
Signal so gut wie nicht beeinflusst, und auch fĂźr DC geht, und ab 20 kHz
mĂśglichst alles wegfiltert (Samplefrequenz wird bei 44 kHz liegen, ist
in meinem Versuchsaufbau was niedriger gewesen). Gibt es da bessere
Schaltungen? Wie kann man das in LTSpice simulieren?

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 
Am 05.08.2017 um 15:09 schrieb Frank Buss:


> Widerstände anpassen?

Ja.


> Wie kann man das in LTSpice simulieren?

http://www.microchip.com/development-tools/resources/filterlab-filter-design-software



Gruß Dieter
 
Frank Buss schrieb:

http://i.imgur.com/qwPDPsI.png

Im Prinzip schonmal nicht schlecht. Aber warum stimmt die Amplitude nicht?

Was genau gefällt Dir an der Amplitude nicht? Du hast doch eine
Schaltung mit Verstärkung = 2 ausgesucht. Um das zu sehen, muss man
nicht einmal simulieren. Denk Dir mal (fĂźr den Grenzfall f=0, d.h. DC)
alle Kondensatoren aus der Schaltung weg und Du siehst einen
nicht-invertierenden Verstärker.

> Wie kann man das in LTSpice simulieren?

In dem man es dort zusammenklickt? Sorry, ich verstehe Deine Frage
nicht. Op-Amps, Widerstände und Kondensatoren gehÜren doch zur
Grundausstattung von LTSpice.

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA
 
On 08/05/2017 04:20 PM, Christian Zietz wrote:
Frank Buss schrieb:

http://i.imgur.com/qwPDPsI.png

Im Prinzip schonmal nicht schlecht. Aber warum stimmt die Amplitude nicht?

Was genau gefällt Dir an der Amplitude nicht? Du hast doch eine
Schaltung mit Verstärkung = 2 ausgesucht. Um das zu sehen, muss man
nicht einmal simulieren. Denk Dir mal (fĂźr den Grenzfall f=0, d.h. DC)
alle Kondensatoren aus der Schaltung weg und Du siehst einen
nicht-invertierenden Verstärker.

Hatte ich im Text so nicht direkt gesehen.

Wie kann man das in LTSpice simulieren?

In dem man es dort zusammenklickt? Sorry, ich verstehe Deine Frage
nicht. Op-Amps, Widerstände und Kondensatoren gehÜren doch zur
Grundausstattung von LTSpice.

Ich wĂźrde gerne die stufige Eingangskurve simulieren und sehen was
hinten rauskommt, sowie vielleicht auch ein Bode-Diagram erstellen. Ist
ja vermutlich eine Standardanwendung, vielleicht weiß einer ein Tutorial
dazu oder eine fertige LTSpice-Datei, ohne daß ich mir das selbst erst
alles zusammensuchen und ausprobieren muß :)

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 
Am 05.08.2017 um 17:17 schrieb Frank Buss:

Ich wĂźrde gerne die stufige Eingangskurve simulieren und sehen was
hinten rauskommt, sowie vielleicht auch ein Bode-Diagram erstellen. Ist
ja vermutlich eine Standardanwendung, vielleicht weiß einer ein Tutorial
dazu oder eine fertige LTSpice-Datei, ohne daß ich mir das selbst erst
alles zusammensuchen und ausprobieren muß :)

http://www.linear.com/solutions/4581
 
> Wie kann man das in LTSpice simulieren?

Vorne Sinusgenerator einbauen:
http://www.embeddedFORTH.de/temp/LT-SpiceWobbler.pdf

MfG JRD
 
Frank Buss schrieb:

> Hatte ich im Text so nicht direkt gesehen.

Du solltest eine Seite vorher anfangen zu lesen, bei der Grundlagen,
wenn Du den Hintergrund verstehen willst:
<http://www.electronics-tutorials.ws/filter/second-order-filters.html>.
Dort wird auch auf die DC-Verstärkung A eingegangen. Aber, wie gesagt,
dass sie in der von Dir verwendeten Schaltung 2 ist, sieht man durch
bloßes Hingucken auf die Schaltung, dazu muss man den Text nicht einmal
lesen.

Ein bisschen mehr Hintergrund gibt es in (Lehr-)BĂźchern oder Appnotes;
ich habe hier z.B. diese hier:
<http://www.ti.com/lit/an/sloa049b/sloa049b.pdf>

Ich wĂźrde gerne die stufige Eingangskurve simulieren und sehen was
hinten rauskommt, sowie vielleicht auch ein Bode-Diagram erstellen. Ist
ja vermutlich eine Standardanwendung, vielleicht weiß einer ein Tutorial
dazu oder eine fertige LTSpice-Datei, ohne daß ich mir das selbst erst
alles zusammensuchen und ausprobieren muß :)

Ich denke nicht, dass es fĂźr Dein spezielles Eingangssignal ein Tutorial
oder eine fertige Datei gibt. FĂźr ein Bode-Diagramm eines Filters
natĂźrlich schon, evtl. sogar bei den Beispielen von LTSpice dabei.

Aber ich finde, dass man ein Tool erst dann richtig zu bedienen lernt,
wenn man nicht stupide ein Tutorial nachklickt oder sich fertige Dateien
von jemandem anders erstellen lässt, sondern wenn man es selbst macht.
Also: Nur Mut!

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA
 
> Gibt es da bessere Schaltungen?

Es gibt ganze BĂźcher zu dem Thema.

RC-OP-Filter sind typisch zweipolig Butterworth,
macht der Tiefpaß 40db/Dekade.
Ein 10kHz Filter mit -3dB Eckfrequenz bei 10kHz hat also
erst bei 100kHz 40dB Dämpfung.
Man kann sie natĂźrlich kaskadieren, aber Aufwand steigt
schneller als Nutzen.

RC-Filter als Dickfilm-Hybride fĂźr Telefon/PCM waren
ehedem steiler. Lasertrimmer machts mĂśglich.

Da wäre ein FDNR dargestellt:
http://www.embeddedFORTH.de/temp/FDNR.pdf
Aber sowas ist selten praktikabel.

MfG JRD
 
Am Samstag, 5. August 2017 15:09:16 UTC+2 schrieb Frank Buss:
Auf dieser Seite habe ich eine Schaltung fĂźr einen Tiefpassfilter gefunden:
http://www.electronics-tutorials.ws/filter/filter_8.html
Kann man da einfach den Kondensator ändern, oder muß man auch die
Widerstände anpassen? Ich habe mal 2 nF verwendet, sieht dann so aus:

Warum wird nicht digital gefiltert (ein C zur Masse und L ist die Eingangs-
Leitung), wenn das Signal eh durch ein ADC geht?

Da gab es doch mal ein Programm mit dem Namen RFSim oder so?

Vom Design her sieht es nach einem Audio-Tiefpass aus und ich wĂźrde ehrlich gesagt erst einmal zu einem Bausatz aus der Bastelecke greifen.

Diese enthielten damals durchweg LC-Filter im Leistungs-Bereich und Filter mit
Operationsverstärkern, die als Ersatz fßr die Induktivität geschaltet wurden fßr
extrem geringen Leistungen. Diese riesigen Luft-Spulen selbst zu wickeln wäre
mir den Aufwand nicht wert und ein RC-Filter ist nicht unbedingt
die beste LĂśsung fĂźr jeden Einsatzzweck.

Es ist wichtig welche Leistung bei welcher Impedanz gefiltert werden soll, da
sonst die Filterkurven nicht gerade den Erwartungen entsprechen werden (RFsim99).

Diese Bausätze gibt es aktuell fßr geringen Geld mit allen Bauteilen und
fertiger Platine aus China (oder sofort und teuer bei Conrad).
 
On 08/05/2017 06:19 PM, Stefan Engler wrote:
Am Samstag, 5. August 2017 15:09:16 UTC+2 schrieb Frank Buss:
Auf dieser Seite habe ich eine Schaltung fĂźr einen Tiefpassfilter gefunden:
http://www.electronics-tutorials.ws/filter/filter_8.html
Kann man da einfach den Kondensator ändern, oder muß man auch die
Widerstände anpassen? Ich habe mal 2 nF verwendet, sieht dann so aus:

Warum wird nicht digital gefiltert (ein C zur Masse und L ist die Eingangs-
Leitung), wenn das Signal eh durch ein ADC geht?

Ich erzeuge das Signal mit einem 16 Bit DAC (DAC8718), soll aber am
Ausgang schön rund aussehen. Das geht nicht digital. Außerdem soll es
mĂśglich sein, eine sehr genaue Gleichspannung damit auszugeben, der DAC
ist generell recht genau. Keine Ahnung, geht das mit LC-Filtern besser?

Habe das probeweise mit einem Arduino gemacht, da man damit schnell mal
was programmieren kann, aber der kommt nicht viel hĂśher als 20 kHz
Samplefrequenz, wenn man auch noch in Echtzeit ein Sägezahn berechnen
mĂśchte, und das auch nur fĂźr einen Kanal.

Werde jetzt den Holzhammer auspacken, und das auf einem Parallella-Board
umsetzen, wo ein Zynq drauf ist (ARM-A9 mit 800 MHz, mit integriertem
dicken Xilinx FPGA). Ich kann dann die SPI-Schnittstelle vom DAC per
FPGA ansteuern, und per FIFO von der ARM-CPU die Daten empfangen. Da
gibt es dann keine Performanceprobleme mehr.

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 
> Keine Ahnung, geht das mit LC-Filtern besser?

Nicht fßr die genannten Frequenzen. Weil die Induktivitäten
zu groß werden. Im Gegensatz zu COG/NP0-Kerkos und Widerständen
sind die auch nicht engtoleriert, relativ billig und klein
verfĂźgbar.
Hochpolige LC-Filter sind bezĂźglich Empfindlichkeit gegen
Bauteilstreuung etwas gĂźnstiger als RC-Filter mit OPs.
Vgl. die Digitalfilter von Fettweis die das nachzubilden
versuchen.

MfG JRD
 
Christian Zietz schrieb:

Dort wird auch auf die DC-Verstärkung A eingegangen. Aber, wie gesagt,
dass sie in der von Dir verwendeten Schaltung 2 ist, sieht man durch
bloßes Hingucken auf die Schaltung, dazu muss man den Text nicht einmal
lesen.

Die Verstärkung von 2 fällt in der von Frank geposteten Schaltung
allerdings vom Himmel -- oder es wird auf einer weiteren Seite darauf
eingegangen, die ich nicht gelesen habe. Daher lass mich erklären:

Auf der geposteten Seite ist fĂźr ein Butterworth-Filter dritter Ordnung
das Polynom (1+s)(1+s+s^2) angegeben. Der Opamp realisiert die Sektion
zweiter Ordnung, also 1+s+s^2. Dieses Polynom hat zwei konjugiert
komplexe Nullstellen bei -1/2 +/- j*sqrt(3)/2. Guckt man nun in die von
mir gepostete TI-Appnote [1, S. 8], so sieht man, dass sich die GĂźte Q
aus den Nullstellen berechnen lässt: Q = sqrt(Re^2 + Im^2)/(2*Re). Also
hier Q = 1.

Dann hat sich der Designer der von Frank geposteten Schaltung
entschieden, alle Kondensatoren und alle Widerstände (bis auf Rf, R1,
die die Verstärkung festlegen) gleich groß zu machen. Das entspricht der
Vereinfachung A.1.4 in [1, S.19]. Die Zeitkonstante RC bestimmt nun die
Eckfrequenz, als einziger weiterer Freiheitsgrad, um die GĂźte auf das
oben berechneten Q=1 einzustellen, verbleibt die Gesamtverstärkung der
Schaltung, die dazu zu 3 - 1/Q = 2 gewählt werden muss.

Wie Rafael schon schrieb, gibt es ganze BĂźcher zu dem Thema
Filterdesign. Heutzutage wird die Ăźberwiegende Mehrheit der Entwickler
aber eine Filterdesignsoftware nehmen und das nicht mehr von Hand
rechnen oder aus TabellenbĂźchern entnehmen. Es schadet trotzdem nicht,
die Theorie etwas verstanden zu haben, wenn man z.B. Audiofilter
designen will.

Christian

[1] <http://www.ti.com/lit/an/sloa049b/sloa049b.pdf>
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA
 
Frank Buss schrieb:
Auf dieser Seite habe ich eine Schaltung fĂźr einen Tiefpassfilter gefunden:

http://www.electronics-tutorials.ws/filter/filter_8.html

Kann man da einfach den Kondensator ändern, oder muß man auch die Widerstände anpassen? Ich habe mal 2 nF verwendet, sieht dann so aus:

http://i.imgur.com/qwPDPsI.png

Im Prinzip schonmal nicht schlecht. Aber warum stimmt die Amplitude nicht?

Was ich gerne haben wĂźrde ist ein Tiefpassfilter, der bis 10 kHz das Signal so gut wie nicht beeinflusst, und auch fĂźr DC geht, und ab 20 kHz mĂśglichst alles wegfiltert (Samplefrequenz wird bei 44
kHz liegen, ist in meinem Versuchsaufbau was niedriger gewesen). Gibt es da bessere Schaltungen? Wie kann man das in LTSpice simulieren?

Du meinst den Überschwinger? Das ist ein Artefakt des Butterworth-Filters
mit seinem nicht so tollen Phasengang. Willst du das weitgehend vermeiden,
bleibt fĂźr den einfachen Fall nur ein Bessel-Filter, das dann aber nicht
so steil im Übergangsbereich ist.

--
mfg Rolf Bombach
 
On 08/05/2017 03:17 PM, Dieter Wiedmann wrote:
Wie kann man das in LTSpice simulieren?

http://www.microchip.com/development-tools/resources/filterlab-filter-design-software

Prima Programm. Hat ein paar Bugs im GUI, aber scheint sonst gut
verwendbar zu sein. Habe damit mal verschiedene Filter ausprobiert.
Aktuell habe ich den aufgebaut:

http://i.imgur.com/2ciOgNp.png

Gegenüber dem anderen Filteraufbau hat das auch den Vorteil, daß die
Widerstände relativ unkritisch sind und es im Gleichspannungsfall eine
Verstärkung von genau 1 hat.

Habe dann mal die Samplerate auf 192 kHz hochgeschraubt und ein 10 kHz
Signal generiert, was man fĂźr den Synthesizer wohl nie brauchen wird,
aber als Worst-Case obere Grenze ein guter Test ist. So sieht es dann aus:

http://i.imgur.com/gLLpe9h.png

Bei 2 kHz braucht man eigentlich gar kein Filter mehr:

http://i.imgur.com/N3QZgcC.png

KĂśnnte die kleine Zacke unten von meinem Aufbau her kommen? Habe keine
exakten Widerstandwerte und Kondensatorwerte verwendet und es ist auf
zwei Breadboards mit fliegender Verdrahtung verteilt aufgebaut. Aber die
genauen Werte kann ich dann später immer noch ausprobieren und ändern,
ich denke damit kann ich erstmal leben.

Mal eine typischere Frequenz von ca. 600 Hz:

http://i.imgur.com/ldrCsqV.png

Hmm, die Zacke ist immer noch zu sehen. Bei 0.1 Hz ist sie aber weg :)

http://i.imgur.com/gvGf4kB.png

Mit der Parallella-Platform läuft noch nicht, da das neue Xilinx Vivado
nicht mit meinem alten FPGA-Projekt funktioniert, aber scheint schon
einen im Parallella-Forum zu geben, der die Standarddistribution damit
compiliert bekommen hat, die bei mir auch nicht mit dem neuen Vivado
ging. Daher habe ich das erstmal nur mit einem STM32F4 Discovery Kit
getestet.

Der läuft nur bis 100 MHz (mein altes Discovery Kit ist mir kaputt
gegangen, der mit bis zu 168 MHz lief) und das ist damit schon ganz
schÜn gestresst, auch mit nur einem Kanal. Musste sogar die umständliche
SPI-Transferfunktion die von CubeMX generiert wird, per direkte
Registerzugriffe Inline ersetzen, sonst war es zu langsam. Aber man
sollte auch keinen 192 kHz Interrupt verwenden :)

Geht aber leider nicht gut per SPI DMA, weil man damit nicht mehrere
Sequenzen von drei Bytes automatisch mit CS verschicken kann. Per
geschicktem PWM parallel fßr CS und LDAC hätte ich da vielleicht was
stricken kĂśnnen (LDAC wird jetzt schon per PWM Ausgang generiert, fĂźr
jitterfreie Analogausgabe, und generiert gleichzeitig den Interrupt),
oder mit einem der I2S Modes, aber das wird mit dem FPGA im Zynq sowie
alles viel einfacher und da sollten dann auch 8 Kanäle mit 192 KHz kein
Problem sein. Notfalls kann ich das im FPGA selbst interpolieren (habe
sowas schonmal programmiert, allerdings nur linear interpoliert), damit
der Host eine niedrigere Samplerate verwenden kann.

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 
Frank Buss schrieb:

http://i.imgur.com/N3QZgcC.png

KĂśnnte die kleine Zacke unten von meinem Aufbau her kommen? Habe keine
exakten Widerstandwerte und Kondensatorwerte verwendet und es ist auf
zwei Breadboards mit fliegender Verdrahtung verteilt aufgebaut.

Von den parasitären Elementen durch den Breadboard-Aufbau mal abgesehen:
Wie ist denn die Sprungantwort Deines Filters mit den von Dir letztlich
gewählten Bauteilen? Kann Dein Simulator bestimmt berechnen.

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA
 
On 08/09/2017 08:22 AM, Christian Zietz wrote:
Frank Buss schrieb:

Von den parasitären Elementen durch den Breadboard-Aufbau mal abgesehen:
Wie ist denn die Sprungantwort Deines Filters mit den von Dir letztlich
gewählten Bauteilen? Kann Dein Simulator bestimmt berechnen.

Scheint die Software nicht zu kĂśnnen, aber ist mit realer Hardware
sowieso besser:

http://i.imgur.com/EsfaiWg.png

Daher kommt also die Zacke, scheint ein Problem zu geben bei der DAC
Ausgabe. Vielleicht sollte man 48 MHz SPI-Signale nicht Ăźber mehrere
Platinen und mit Jumper-Wires als Masse und Signalleitung laufen lassen.
Die steigende Flanke sieht dagegen in Ordnung ist.

Habe mittlwerweile auch mein Parallella Board auf einen KĂźhlkĂśrper
montiert (die Kickstarter-Edition braucht normalerweise noch einen
LĂźfter). Gewinde schneiden ging problemlos, nachdem ich nach 3
abgebrochenen Gewindeschndeidern mit meinen zwei linken Händen den Bogen
raus hatte, wie man Gewinde schneidet :)

http://parallella.org/forums/viewtopic.php?f=9&t=1634#p19469

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 
Daher kommt also die Zacke, scheint ein Problem zu geben bei der DAC
Ausgabe.

Glitch war frßher nicht unßblich wenn sich MSB ändert. Wenn es stÜrte
gab es (teuere) Hybrid-DACs mit "deglitcher", d.h. Sample & Hold am
Ausgang.
"Deglitcher" wäre der Suchbegriff bei Google. Aber man verbaut sowas
heute nichtmehr, sondern achtet beim Kauf auf "glitchless DAC".

MfG JRD
 
On 08/11/2017 05:22 PM, Rafael Deliano wrote:
Glitch war frßher nicht unßblich wenn sich MSB ändert. Wenn es stÜrte
gab es (teuere) Hybrid-DACs mit "deglitcher", d.h. Sample & Hold am
Ausgang.
"Deglitcher" wäre der Suchbegriff bei Google. Aber man verbaut sowas
heute nichtmehr, sondern achtet beim Kauf auf "glitchless DAC".

Ja, ein Glitch kĂśnnte es sein, da ich den im bidirektionalen Modus
betreibe und ich somit von 0x0000 nach 0xffff umschaltet beim fallenden
Nulldurchgang. Merkwürdig nur, daß es in umgekehrter Richtung nicht
sowas zu sehen gibt.

Der DAC ist aber ein DAC8718. Ich gehe davon aus, daß der kein Glitch
hat, ist zumindest teuer genug. Ich bin ja kein Experte, aber kommt
bestimmt vom Aufbau. So sieht das aktuell aus:

http://i.imgur.com/WF3owQs.jpg

Vorne in der Mitte das Breakout-Board mit den vielen Jumper-Wires ist
der DAC, rechts ist ein StĂźck vom STM32F4 Discovery Board zu sehen, und
links die Filterschaltung. Wundert mich, daß es überhaupt funktioniert :)

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 
Ich gehe davon aus, daß der kein Glitch
hat, ist zumindest teuer genug.

Das ist die Argumentation wenn meine Mutter
Weihnachtsgeschenke kauft: war teuer,
muß gut sein.

Gibt zwar "low glitch" im Datenblatt an.
Vgl. aber Bild 43 und Bild 44 dort:
"no glitch" ist eben nicht.
Andererseits gibt es wenig Anwendungen
in denen kleiner Glitch stĂśrt.

> bestimmt vom Aufbau

Wenn es nicht DAC intern ist,
ist es typisch digitale Ansteuerung.
Ehedem war es oft LDAC fest auf
transparent legen und sich dann wundern
daß es klappert wenn Controller die
Latch lädt.

MfG JRD
 
On 08/11/2017 07:49 PM, Rafael Deliano wrote:
Wenn es nicht DAC intern ist,
ist es typisch digitale Ansteuerung.
Ehedem war es oft LDAC fest auf
transparent legen und sich dann wundern
daß es klappert wenn Controller die
Latch lädt.

LDAC habe ich eigentlich schon verwendet fĂźr das Update. Vielleicht
sollte man da dann wirklich das Datenblatt befolgen und zwei
Masseflächen fßr die Platine verwenden (die dann an genau einer Stelle
verbunden sind), wie im Datenblatt beschrieben, statt was JĂśrg immer
sagt nur eine Massefläche?

--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 

Welcome to EDABoard.com

Sponsor

Back
Top