Simpel low-pass filter

Arco

Special Member

Voor een applicatie met audio output zoek ik een zo simpel (doch effectief) mogelijk low-pass filter.
Het is om PWM output (microcontroller) in acceptabele analoge output om te vormen. (3kHz max. audio met samplefrequentie van 8kHz.)
Nu kan ik kiezen uit diverse active filters (Sallen, Butterworth), of gewoon passief RC met een opamp erachter om het nivo weer op te krikken.

Ik ben op filtergebied niet zo thuis, en je raakt al gauw het spoor bijster bij alle mogelijkheden... ;)
Beschikbare voedingsspanning is 3.3v.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Ik ben bang dat dat te eenvoudig is... :)
(de 8kHz moet uit de audio worden gehaald, althans teruggebracht tot onhoorbaar nivo, en de audio tot 3kHz moet enigszins overeind blijven)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Als je haar maar goed zit, GROETEN LAMBIEK.

Ha Arco,

Ik begrijp dat er geen signalen boven de 8kHz meer zijn.
Dan kan je met een LP filter volstaan welke onderdrukking had je in gedachte?
Of anders gezegd wat is het audio niveau het gaat je erom dat het niet meer hoorbaar is onder welke conditie is niet meer hoorbaar voldoende.

Ik geef een voorbeeld ;)een radio die zacht staat op de bouw is niet meer hoorbaar een wekker die tikt is in een stille omgeving knap hinderlijk hoorbaar :( het gaat dus om het niveau van de achtergrond.
Als er in het audio veel stille passages vallen dan moet je onder de gehoorgrens zitten.
Let hier op bij het vaststellen van het absolute niveau.

Het filter kan worden opgebouwd als een passief rc of zelfs een lc filter.

Groet Henk.

Everything should be as simple as possible, but not simpler.
Arco

Special Member

Max. frequentie is 3kHz (8kHz is de sampleclock, die moet er zeker uit)
Het gaat er om dat via de telefoon een acceptabel geluid te horen is (ofwel vrij van storende pwm geluiden)

Sommige raden een 4th order filter aan, anderen zeggen dat 2nd order genoeg is. Om uit te testen zou ik ze allemaal moeten bouwen in een testopstelling... :(
Een 4th order active Butterworth werkt wel, maar ik hoopte met wat minder onderdelen uit te kunnen...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Dit is nog wat lastiger als de normale situatie bij audio, waar de samplefrq een oktaaf buiten het hoorbare gebied ligt.
Ik zou als eerste suggereren te kijken of een snellere Uc geen handigere oplossing is dan een complex (en mogelijk tolerantie-kwetsbaar) filter.

Arco

Special Member

Het geluid is opgeslagen in de microcontroller (met uiteraard beperkt geheugen)
Als ik de samplefrequentie verdubbel of verviervoudig (op zich geen probleem), dan neemt wel de opgeslagen pcm data ook toe (2-4 x zo groot)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Interpolatie oversampling ? Ik heb niet zo veel verstand van deze hoek, maar het is een heel standaard techniek om filters simpel te houden.

@ Arco,

Ik heb een filtertje uitgerekend Fc 3.5kHz en is -33dB bij 8kHz.

ik ben van 1kΩ impedantie uitgegaan aanpassen is uiteraard geen probleem.
Groet Henk.

Everything should be as simple as possible, but not simpler.
flash2b

Special Member

Arco: http://www.calculatoredge.com/electronics/ch%20pi%20low%20pass.htm

Of het menu up: http://www.calculatoredge.com/index.htm#electrical onder ELECTRICAL ENGINEERING

[Bericht gewijzigd door flash2b op maandag 29 augustus 2016 16:05:32 (42%)

Hier en hier doen ze het met alleen een speaker, geen echt filter. Ze hebben het over samples van 8 kHz, dat wil niet zeggen dat je dat ook echt haalt ;-).

Wat ben je eigenlijk aan het maken? Waarom geen DAC?

Als je cpu op 3.3V loopt is het niet een super-gedateerd ding, kan ie dan niet veel sneller dan 8kHz PWM-en? Het liefst heb je een kantelfrequentie iets boven je "gewenste hoogste frequentie", en dan veel demping tegen de tijd dat je bij de PWM frequentie bent.

Het KAN wel, maar als het in software kan, dan is dat natuurlijk veel beter.

Je hebt het trouwens over 3kHz bandbreedte voor audio. Dat klopt. Maar er wordt even vergeten dat de band voor audio loopt van 300 tot 3300Hz! Dus of 3500Hz kantelfrequentie al voldoende marge geeft weet ik niet. En als er een 3kHz signaal IS, ga je dan met 8kHz sampling niet ook 5kHz krijgen en horen? Dus niet 8kHz moet voldoende gedempt zijn, maar ook de gespiegelde van de hoogste werkelijke signaal-frequentie!

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Als je cpu op 3.3V loopt is het niet een super-gedateerd ding, kan ie dan niet veel sneller dan 8kHz PWM-en?

Zoals gezegd is dat geen probleem, maar de PCM data groeit dan evenredig, wat onwenselijk is.
(ik zal me eens in interpolatie verdiepen. ADPCM zou ook nog kunnen)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
JoWi

Special Member

Ooit eens een audio recorder gemaakt, PWM frequentie was 40kHz, data rate 10kHz, ik gooide elk sample er dus 4 keer uit. Maar op die manier was de 5V PWM er makkelijker eruit te filteren. Gebruikte trouwens een 4de order SallenKey filter met opamp. PWM werd 60 dB onderdrukt bij een kantelfrequentie van iets van 4kHz.

Zelf nog een linkje gevonden van het project: http://pe1grl.khds.nl/APTRecorder2/APTrecorder.htm. Was trouwens Chebysev en niet Sallen-Key zie ik nu.

Ignorance is bliss
Frederick E. Terman

Honourable Member

Was trouwens Chebysev en niet Sallen-Key zie ik nu.

Dat kan heel goed tegelijk hoor. :)
Sallen-Key is de opbouw van het filter ('hoe in elkaar'), Tsjebysjev de doorlaatkarakteristiek ervan ('welke waarden hebben de onderdelen').

Voorbeeld

En als er een 3kHz signaal IS, ga je dan met 8kHz sampling niet ook 5kHz krijgen en horen?

Yep. Oh wacht, nee natuurlijk. Dat is alleen bij opnemen een probleem; dat 5 kHz als 3 kHz in het bestand komt.
Lijk inderdaad bij afspelen zowel 3 als 5 te krijgen (en hogerop nog meer uiteraard).
--
Kun je niet van je 8-bits 8kHz naar 64 kHz 1-bits gaan? Die hardware moet te overzien zijn. En gelijk geen problemen meer met het R2R netwerk. ;)

Keramisch, kalibratie, parasitair: woordenlijst.org
RAAF12

Golden Member

Op 29 augustus 2016 17:09:52 schreef JoWi:
http://pe1grl.khds.nl/APTRecorder2/APTrecorder.htm. Was trouwens Chebysev en niet Sallen-Key zie ik nu.

De heilige drie, welke er wordt gekozen is afhankelijk van de eisen.

Op 29 augustus 2016 16:43:27 schreef Arco:
ik zal me eens in interpolatie verdiepen.

Als je gewoon je PWM op 32kHz laat draaien, en steeds 4x oude sample, 3x oude sample + 1x nieuwe sample, 2x oude sample + 2x nieuwe sample, 1x oude sample + 3x nieuwe sample uitstuurt dan kan je volgens mij heel redelijk op 3.5 of 4.0kHz filteren, terwijl de storende samplefrequentie pas 4x hoger begint. Het filter wordt dan veel simpeler omdat de ongewenste rommel al 4x verder weg zit.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

@ arco,

Ik heb gisteren nog een ontwerpje gemaakt hierbij de gegevens en een plot.
Uiteraard kan je ook een digitaal filter maken als je bij de stream kan komen.
De tolerantie van de componenten is 10%.

en de bijbehorende plot

Ik kan kijken voor een geschakeld capacitief filter.

Groet Henk.

Everything should be as simple as possible, but not simpler.

Tien procent tolerantie, maar wel waarden met vier significante cijfers ? ;) - Ik zou de plot wel eens willen zien bij 5% afwijking.

Ha Aart,

Is misschien niet zo duidelijk geformuleerd van mij 10% t.o.v de theoretische waarde.
Zo kom ik in een staffel met iets gangbare componenten vandaar de mooie ronde waarde.
Uiteraard worden de eigenschappen hierdoor minder.
Ik zal vanmiddag een filtertje uitrekenen en een plotje met 5% componenten.

Groet Henk.

Everything should be as simple as possible, but not simpler.

@ Aart,

Aart hier bij schema en plot waarden binnen 5%.

Het is uiteraard mogelijk om de sper zo te leggen dat je de 5kHz optimaliseert.

Groet Henk.

Everything should be as simple as possible, but not simpler.