Ich möchte auf einem digitalen Pin "Ein-Bit-Audio" ausgeben und stehe vor der Frage, dies mit einem hochfrequenten Kleinsignal zu tun, dass auf einen liearen Verstärker geführt wird, oder einen PWM Verstärker zu nehmen. Die Sache sieht im Fall 1 so aus, dass mir aus einem PLD 20MHz zur Verfügung stehen, um eine PWM zu machen. Gfs wäre auch eine PDM möglich, muss ich sehen. Danach käme ein zu definierendes Tiefpassfilter und ein käuflicher 25 Watt Sinus AMP mit unsymmetrischem Eingang von +/-125 mV Empfindlichkeit gegen GND. Die Alternative wäre eine preiswertere PWM Vollbrücke, die 60 Watt Dauerlast kann und die direkt auf einen Lautsprecher arbeitet. Diese würde ich vorziehen, habe aber das Problem, dass die nur bis maximal 1MHz zu betreiben ist, weil da die Verluste auf 25% hochgehen. Es handelt sich wohl um die Umschaltverluste der Transistoren. Die Brücke ist unter anderem für Leistungsmotoren empfohlen, wobei dort 100kHz als ideale Taktfrequenz geraten werden. Am Liebsten wäre mir eine Frequenz um 300kHz (Verluste geringer als 10%). Aber: Ich sorge mich um die Güte des Signals! Im Fall1 kann ich ja beliebig steil steuern und eine Filtergrenzfrequenz von z.B. 5kHz nehmen und bekomme ein sehr gutes Audiosignal, das von der Linearstufe auch noch gut verarbeitet wird. Im Fall 2 gibt es aber nicht soviel headroom zwischen 300kHz und dem Audioband, gerade Faktor 10. Ich tue mich nun schwer, die Verzerrungen / das digitale Rauschen zu berechnen, die ein solches PWM Signal hat. Wie gelange ich zu einem Spektrum, auf das ich das analoge Rekonstruktionsfilter loslassen könnte? Idee? Formel?
Hallo, lsb Fehler ermitteln, Jitter ermitteln dann kommt es noch auf den PWM an welche Art von PWM? Linearitätsabweichung anhand einer geraden Steigung, Interpolation des PWM Signals. Der Gameboy Advance hat doch das auch so gemacht oder? Also für sprache geht so etwas schon, aber für Audio, ich weiß nicht...
Moin, Also prinzipiell sollte das schon gehen. Auch mit besserer Qualitaet als im Gameboy Advanced. Google mal nach: 9789400713864-c2.pdf und guck' dir erstmal nur die Bilder an, insbesondere Fig.2.17. Mit einem SigmaDelta-Modulator hoeherer Ordnung und einem dazu passenden, steilflankigen Tiefpass (in dem Beispiel waeren das ja dann z.B. 80dB / Decade=24dB/Octave - klingt also als passives LC Filter noch machbar) vor dem Lautsprecher koennte das hinhauen. Ist bloss die Frage, ob du an deinem Digitalausgang sowas erzeugen kannst oder ob du da auf "Unterschichten"-PWM ;-D festgenagelt bist. Bei der PWM wird das Stoerspektrum mutmasslich nicht gleichmaessig aussehen, sondern mit Peaks bei der PWM-Frequenz und ihren ungeradzahligen Vielfachen. Um die rauszufiltern wirst du wohl eher einen Cauerartigen oder Tschebyscheff2-artigen Tiefpass mit den genau dazu passenden Nullstellen im Frequenzgang brauchen. Formeln dazu kann ich aber auch keine aus dem Aermel schuetteln... Gruss WK
Rolf Sassinger schrieb: > Ich tue mich nun schwer, die Verzerrungen / das digitale Rauschen zu > berechnen, die ein solches PWM Signal hat. Das könnte ich jetzt auch nicht. Sicher muss man sich auf eine Frequenz festlegen. Was wäre denn die höchste zu übertragende Oberwelle? Für diese und einige darunter müsste man das Funktional aufstellen, oder die Schaltung durchsimulieren. Dann hätte man das Spektrum. Es macht sicher auch noch einen Unterschied, ob die Schaltung schon eingeschwungen ist, oder der transiente Verlauf genommen wird, weil in die PWM-Thematik auch deren aktueller Zustand eingeht. Solche Schaltungen haben ja eine Regelschleife. Ob man das mit linearer Regelungstechnik noch machen kann, weiss ich nicht. Ist zu lange her. Kannst Du es in Matlab simulieren und einen Filter hinhängen und einfach den Sinus abziehen?
Moin, Auf die Schnelle kann man mit GNU Octave solche lustigen Bilder rechnen...
1 | samples=[]; |
2 | for c=0:4096 |
3 | samples=[samples ones(1,128+125*sin(c*pi/32)) -ones(1,128-125*sin(c*pi/32))]; |
4 | end |
5 | firfilter=firls(1280,[0 0.0003 0.003 1],[1 1 0 0],[1 100]); |
6 | spectrum1=(abs(fft(conv([1],samples)))); |
7 | spectrum2=(abs(fft(conv(firfilter,samples)))); |
8 | clf; |
9 | hold on; |
10 | plot(20*log10(spectrum2(1:10000)),'g'); |
11 | plot(20*log10(spectrum1(1:10000)),'r'); |
Gruss WK
Ok, MATLAB und Gnu Octave wäre eine Lösung. Leider durchschaue ich den Code nicht 100%, was er tut und ob da die PWM drin steckt. Zur PWM: Ich verwende ein PLD, das die PWM direkt bei Änderung ausgibt. Spannung +/- 3Vss.
:
Bearbeitet durch User
Moin, Jepp, die PWM steckt da drinnen; in der Zeile innerhalb der for-schleife. Da wird der Vektor "samples" jeweils um 256 samples verlaengert. Jedes dieser Samples kann immer nur +1 oder -1 sein. Es geht immer mit einer Anzahl 128+N von Einser Samples los, gefolgt von einer Anzahl 128-N Samples mit jeweils dem Wert -1. D.h. der "samples" Vektor stellt eine Rechteckschwingung dar, deren Tastverhaeltnis von N abhaengt. N kommt in dem Listing nicht vor, sondern ist dann gleich 125*sin(blafasel) - also wird das Tastverhaeltnis der Rechteckschwingung in "samples" mit einem Sinus moduliert - PWM halt... Wenn du noch ein bisschen Platz in dem PLD hast, wuerd' ich eher zur SigmaDelta-Modulation statt PWM greifen. Ich bin mir nicht 100% sicher, aber ich glaub', dass da das Spektrum des Qantisierungsrauschens "schoener" als bei PWM aus dem Spektrum des Nutzsignals rausgemogelt werden kann. Gruss WK
Bei einer Mithilfe von Komparatoren gebauten Analogen PWM-Stufe, wie sie als Teil eines analogen Klasse D Verstärker verkaut wird, gibt es keine Quantisierung, sondern nur einen Klirrfaktor. Der berechnet sich wie üblich aus den Koeffizienten der Fouierreihe. Bei digital gesteuerten PWM Modulatoren, errechnet sich das Quantisierungsraischen wie bei allen andern Topologien der DAs auch. Kannst du ja mal Googlen. Ja, bei der Delta Sigma Geschichte, liegt das Nutzsignal und das Spektrum des Carriers weiter auseinander. Das hat den Vorteil, dass du auch mit weniger Steilen Filtern, ein annehmbares Resultat bekommst.
Ich sehe schon, ich werde messen müssen ..
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.