mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP 1Bit Audio als Alternative zu PWM


Autor: Gilbert F (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
was meint Ihr zu der Umsetzbarkeit der folgenden Idee. Es gibt einige 
Projekte bei denen die PWM Einheit eines MCUs zur Tonausgabe genutzt 
wird. Da die Geschwindigkeit der PWM meist identisch zum Takt des 
Microcontrollers ist muss hierfür die Qualität stark reduziert werden. 
Also z.B. 8Bit Amplitudenauflösung und 44,1kHz Abtastrate entspricht 
ungefähr einem Takt von 11,2MHz.

Nun verwenden ja z.B. viele CD-Player "1-Bit DACs". Wenn ich es richtig 
verstehe wird hierbei aus dem PCM Signal eine Bitfolge generiert welche 
dann z.B. mit etwa 2MHz ausgegeben und analog Tiefpassgefiltert wird. 
Die Qualität ist dann identisch zu den 16bit/44,1kHz einer CD - wenn 
nicht besser da dieses Wandlerprinzip Vorteile gegenüber einem 
"normalen" DAC hat.

Was spräche also prinzipiell dagegen eine solche Sequenz vorab zu 
berechnen (Ich vermute für eine Liveberechnung ist ein typischer 8bit 
MCU nicht leistungsfähig genug), auf einer SD-Karte abzulegen und dann 
mittels eines Timers und ISR auszugeben?

Ich freue mich auf eure Meinung:)

Autor: Rolf (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Gilbert F schrieb:
> was meint Ihr zu der Umsetzbarkeit der folgenden Idee. Es gibt einige
> Projekte bei denen die PWM Einheit eines MCUs zur Tonausgabe genutzt
> wird.

Das ist nix neues. Man kann auch kurze Wavs im uC-Flash ablegen und per 
PWM ausgeben. Man braucht aber ein halbwegs gutes Filter dahinter, wenn 
die NF-Quali halbwegs gut sein soll.

Autor: Clemens L. (c_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilbert F schrieb:
> Nun verwenden ja z.B. viele CD-Player "1-Bit DACs". Wenn ich es richtig
> verstehe wird hierbei aus dem PCM Signal eine Bitfolge generiert welche
> dann z.B. mit etwa 2MHz ausgegeben und analog Tiefpassgefiltert wird.

http://de.wikipedia.org/wiki/Pulsdichtemodulation

> Was spräche also prinzipiell dagegen eine solche Sequenz vorab zu
> berechnen (Ich vermute für eine Liveberechnung ist ein typischer 8bit
> MCU nicht leistungsfähig genug), auf einer SD-Karte abzulegen und dann
> mittels eines Timers und ISR auszugeben?

Bei 8-Bit-PCM -> PWM brauchst du nur ein Byte pro Sample.
Bei PDM musst du die Einzel-Bits mit den vollen 2Mbit/s von der SD-Karte 
zum I/O-Pin schaufeln.

: Bearbeitet durch User
Autor: Audio Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilbert F schrieb:
> Nun verwenden ja z.B. viele CD-Player "1-Bit DACs".

Du meinst das ADPCM Signal? Oder DSD?

Ich sehe nicht, wo man da was sparen kann. Insbesondere müsste das 
Signal ja noch konvertriert werden. Das Einfachste ist es ein Signal 
direkt als PCM zu speichern und abzuspielen - das ist dann sozusagen 
optimiertes PWM, nämlich in Form von Sigma Delta Modulation.

Autor: Gilbert F (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann eure Einwände nicht so ganz nachvollziehen. Sicherlich wird dem MCU 
mehr abverlangt, da nicht einmal pro 1/44100 sec ein neuer PWM Wert 
geschrieben werden muss, sondern eine Sequenz mit 2MBit ausgegeben 
werden muss - das ist auch mein Hauptproblem - schaffe ich das, z.B. mit 
einem MSP430 bei 16MHz.

Aber der Vorteil wäre, wenn ich keinen Denkfehler haber, das die 
Qualität den 16Bit/44.1kHz einer CD entspricht und nicht 8Bit/44.1kHz 
wie es mit der PWM Methode erreichbar ist.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Gilbert F (Gast)

>Nun verwenden ja z.B. viele CD-Player "1-Bit DACs". Wenn ich es richtig
>verstehe wird hierbei aus dem PCM Signal eine Bitfolge generiert welche
>dann z.B. mit etwa 2MHz ausgegeben und analog Tiefpassgefiltert wird.

Viel mehr als 2 MHz. Nennt sich Sigma-Delta Wandler.

>Was spräche also prinzipiell dagegen eine solche Sequenz vorab zu
>berechnen (Ich vermute für eine Liveberechnung ist ein typischer 8bit
>MCU nicht leistungsfähig genug), auf einer SD-Karte abzulegen und dann
>mittels eines Timers und ISR auszugeben?

Der unsinnige Resourcenverbrauch. Heute gibt es billige MP3 Dekoder, die 
kann jeder Arduino-user ansteurn. Fertig.
Für einfachere Anforderungen tut es auch 8 Bit Sound mit 22kHz, war in 
den 1980er der neueste Schrei bei den 16 Bit Systemen ala Atari, Amiga & 
Co.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Hans (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Naja sowas wie PDM sollte sogar mit einem AVR möglich sein.

PWM hat den Vorteil eine minimale Anzahl von Schaltflanken zu haben.
PDM dagegen quasi die maximale. Damit fängt das Störspektrum erst viel 
weiter "oben" an. => leichter zu filtern.

44.1kHz @ 8Bit würden 11.29MHz takt für den "PDM-DAC" benötigen.

Sagen wir wir würden mit 6-Bit Dynamik durchkommen, dann wären wir bei 
ca 2.8MHz Takt (44.1kHz*64).

11.289MHZ Quarte gibts (Oh wunder ;P) ja. Damit wüsstest du den SPI nur 
mit 1/4tel vom CPU-CLK betreiben und das wäre gelöst.

Die Sequenz lässt sich einfach voraus berechnen:

64-bit pro Eingangsbyte macht 2kByte Lookup-Table (für die Werte 0-255 
jeweils 64bit Daten die per SPI raus müssen).

Zuerst würde ich mal PWM emulieren probieren.

Also bits von 0-63 raufzählen und mit dem Eingangswert vergleich.
Wenn Bit-Position < Wert, dann kommt ne 1.

Beispiel für 2bit Eingangswort und 4bit Ausgangswort:

Wort zu andeln wäre 10b (also 50%)
<pre>
Zähler -> Bit im 4-bit breitem Ausgangswort
00b    -> kleiner also 1
01b    -> kleiner also 1
10b    -> nicht kleiner also 0
11b    -> nicht kleiner also 0
</pre>

Also quasi PWM - 50% 0 und 1.

Wenn du jetzt die 1ner gleichmäßig verteilst über die 8Byte dann hast do 
sowas wie PDM.

Ziemlich Gleichmäßig verweilen geht übrigends sehr einfach.

Eingangs-Byte mit der "gedrehten" bit-position (MSB-LSB -> LSB-MSB) im 
8-byte array vergleichen. Wenn kleiner dann wird das bit eine 1, sonst 
eine 0.

Beispiel wieder für 10b (also 50%)
<pre>
Zähler -> "gedreht" -> Bit im 4-bit breitem Ausgangswort
00b    -> 00b       -> kleiner also 1
01b    -> 10b       -> nicht kleiner also 0
10b    -> 01b       -> kleiner also 1
11b    -> 11b       -> nicht kleiner also 0
</pre>

Macht 50% 1 und 50% 0 und schön gleichmäßig verteilt.


Hoffe das war verständlich...

73

Autor: Audio Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum muss man denn überhaupt 1 Bit Audio verwenden, wenn man den Sound 
schon als 44khzx16 hat? Einfach auf einen billigen 1,90 DAC und fertig. 
Besser, als jedes digitale Zeug. Oder wenn digital: Dann einfach den 
digitalen Datenstrom auf I2S ausgeben und einen digitalen Wandler ran.

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Audio Phil schrieb:
> Warum muss man denn überhaupt 1 Bit Audio verwenden
Frage ich mich auch. Vielleicht nicht mehr Pins frei? ;-)

Audio Phil schrieb:
> Einfach auf einen billigen 1,90 DAC und fertig.
Oder nur 10 Cent, siehe
Beitrag "DAC-Erweiterung mit TDA1311/PT8211?"
Braucht aber 3 Pins für 2 Kanäle, also einen mehr.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder einen dsPIC33FJ64GP802 mit einem integriertem 16-bit Dual Channel 
DAC.

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Franz schrieb:

> Oder einen dsPIC33FJ64GP802 mit einem integriertem 16-bit Dual Channel
> DAC.

Gibt's den auch in DIL?

(Frage nicht wirklich ernst gemeint...)

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Franz schrieb:
>
>> Oder einen dsPIC33FJ64GP802 mit einem integriertem 16-bit Dual Channel
>> DAC.
>
> Gibt's den auch in DIL?
>
> (Frage nicht wirklich ernst gemeint...)

Ja. SDIP28.

Die Antwort ist ernst gemeint.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Franz schrieb:
>
>> Oder einen dsPIC33FJ64GP802 mit einem integriertem 16-bit Dual Channel
>> DAC.
>
> Gibt's den auch in DIL?
>
> (Frage nicht wirklich ernst gemeint...)

Ja.

(Antwort ernst gemeint...)

Autor: W.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilbert F schrieb:
> kann eure Einwände nicht so ganz nachvollziehen. Sicherlich wird dem MCU
> mehr abverlangt, da nicht einmal pro 1/44100 sec ein neuer PWM Wert
> geschrieben werden muss, sondern eine Sequenz mit 2MBit ausgegeben
> werden muss

Und ich kann deinen Einwand nicht nachvollziehen.

Also: bei 44.1 kHz Abtastfrequenz müssen eben die Samples mit 44.1 kHz 
ausgegeben werden. Das schafft jeder bessere µC.

Aber: Die Qualität hängt direkt von der Taktfrequenz ab, mit der der 
PWM-Timer getaktet wird. Man schreibt eben ein Sample in das 
Compare-Register, während der Timer mit einer Gesamtzeit von 44.1 kHz 
durchläuft. Aber wie fein man die ON/OFF-Zeiten per Compare-Register 
machen kann, hängt direkt davon ab, wie weit der Timer bis zum Reload 
zählen kann.

Für 8 Bit muß der Timer mit mindestens 256*44.1kHz getaktet werden, für 
16 Bit wären das dann 64K * 44.1 kHz. Ersteres geht problemlos ab 
Taktfrequenzen von 12 MHz.

Ne andere Frage wäre, ob es nicht besser wäre, auf 22kHz runterzugehen 
und dafür ein Bit mehr an Amplitude sich zu gönnen.

Noch viel besser ist es freilich, dafür die IC's zu nehmen, die 
tatsächlich dafür vorgesehen sind, also Audio-DAC's bzw. Audio-Codecs 
und selbige per I2S anzubinden.


W.S.

Autor: Tim    (cpldcpu)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ist das hier der große Technikratethread?

Bei den 1-Bit DACs handelt es sich um Sigma-Delta Wandler:

http://de.wikipedia.org/wiki/Delta-Sigma-Modulation

Prinzipiell kann man so etwas sehr einfach in Software auf einem MCU 
programmieren. Sieht in etwas so aus:

uint 16_t accu=0;
uint 8_t adc_value=123;

while (1) {
    
    accu+=adc_value;

    if (accu&0x100) PORT=1; else PORT=0;
}

Blöd ist nur, dass die CPU dann nichts anderes machen kann.

Vielleicht bastelt ja jemand mit einem hoch getakteten PWM einen 
Multi-Bit Sigma-Delta DAC? Dann könnte noch genug CPU Zeit frei bleiben.

p.s.: Die Audio DACs verwenden üblicherweise 64faches oversampling und 
einen Modulator mit Ordnung>1.

: Bearbeitet durch User
Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tim    schrieb:
> p.s.: Die Audio DACs verwenden üblicherweise 64faches oversampling und
> einen Modulator mit Ordnung>1.

Na, dann machen wir es mal konkret: Der, den ich im Studiowandler habe, 
arbeitet auf 256fach oversampling, nutzt non linear predistortion und 
noise shaping /dithering für die Ausgabe. Das kann man in einem AVR 
nicht mehr nachbilden. Da geht gerade noch in einem FPGA, da aber auch 
nur bedingt wirtschaftlich. Die Wandlerpreise machen es möglich.

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein paar Versuche mit der 1 Bit wandlung auf dem Arduino:
http://www.hobby-roboter.de/forum/viewtopic.php?f=...

Autor: Tim    (cpldcpu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris_ schrieb:
> Hier ein paar Versuche mit der 1 Bit wandlung auf dem Arduino:
> http://www.hobby-roboter.de/forum/viewtopic.php?f=...

| digitalWrite(13, HIGH);

Wenn Du das hier weg lässt, wird die Schleife 50x schneller...

Autor: lrep (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilbert F schrieb:
> da dieses Wandlerprinzip Vorteile gegenüber einem
> "normalen" DAC hat.

Die "Vorteile" sind so groß, dass Philips das seinerzeit beinahe nicht 
in den Griff bekommen hat und bei 14 Bit Schluß machen wollte.
Also lass den Pfusch und nimm einen käuflichen DAC mit garantierten 
Daten.

Autor: bork (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lrep schrieb:
> Gilbert F schrieb:
>> da dieses Wandlerprinzip Vorteile gegenüber einem
>> "normalen" DAC hat.
>
> Die "Vorteile" sind so groß, dass Philips das seinerzeit beinahe nicht
> in den Griff bekommen hat und bei 14 Bit Schluß machen wollte.
> Also lass den Pfusch und nimm einen käuflichen DAC mit garantierten
> Daten.

"Philips" und "Damals" klingt nach den Anfängen der CD-Player. Damals 
hat man noch keine ΔΣ-DACs eingesetzt.

Autor: Tom W. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Gilbert F schrieb:
> Aber der Vorteil wäre, wenn ich keinen Denkfehler haber, das die
> Qualität den 16Bit/44.1kHz einer CD entspricht und nicht 8Bit/44.1kHz
> wie es mit der PWM Methode erreichbar ist.

Könnte das jemand erklären, wieso bei PCM hierbei 16 Bit 44,1 erreicht 
werden?  Die Nettodaten von 2MHz x 1 Bit sind ja eigentlich weniger. 
Lohnt sich dann eine solche PCM-Ausgabe direkt?

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PCM ist doch sozusagen die Bruttoinformation, wenn das binäre Format 
dekodiert wurde. Das kann weder besser, noch effektiver sein.

Autor: Tom W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass nie mehr rauskommen kann, als man mal reingesteckt hat, ist mir 
schon klar, aber das wäre ja nur in dem Fall von Gilbert (s.o.) so, wenn 
wirklich CD-Daten gewandelt werden.

Mir ginge es darum, zu verstehen, wie es wäre, wenn man gar nicht erst 
PCM speichern würde, sondern direkt die Delta-Sigma-Daten. Das wäre ja 
dann das topic, nämlich:

"1Bit Audio als Alternative zu PWM".

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Thomas W. schrieb:
> Mir ginge es darum, zu verstehen, wie es wäre, wenn man gar nicht
> erst PCM speichern würde, sondern direkt die Delta-Sigma-Daten.
Das ist dann wieder DSD, aber wie hier und auch an anderer Stelle 
diskutiert, ist der Vorteil eben nicht oder kaum hörbar - wenn auch 
theoretisch vorhanden.
Um es nochmal vereinfachend zu sagen, ist die Reduktion des 
Informationsgehalts des Modulatorsignals durch die Dezimation runter auf 
das übliche Audioformat von 16kHz@44kHz durchaus signifikant - bei dem 
"Zwischenstopp" auf 24Bit@192kHz aber eben nicht. Dieses Format ist 
ausreichend gut. Messtechnisch kann man die Unterschiede meistens 
zeigen, mathematisch immer. Zu Hören sind sie praktisch nicht.

Autor: Mike (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
> Mir ginge es darum, zu verstehen, wie es wäre, wenn man gar nicht erst
> PCM speichern würde, sondern direkt die Delta-Sigma-Daten. Das wäre ja
> dann das topic, nämlich

Gibt es doch schon. Nennt sich Direct Stream Digital (DSD):
https://de.wikipedia.org/wiki/Direct_Stream_Digital

Autor: Tom W. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
An Jürgen und Mike: Ja, dass es das gibt und wie es heißt, ist mir schon 
bekannt. Die Frage aber war, wann es was bringt. Es gibt ja doch zwei 
Lager: Die einen behaupten, das 1-Bit Audio sei deutlich schlechter, als 
das PWM, während die anderen das Gegenteil behaupten und DS 
favorisieren.

Ich nenne dazu den im anderen topic erwähten link auf einen DSD Wandler 
der Firma RME, der das authentische Audio propagiert, während mindestens 
ebenso viele ebenso kompetente Leute das 1-Bit Audio verteufeln.

Literatur z.B. von  Yoshio Yamasaki (Waseda-Universität)

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Um zu verstehen, dass ein unverändertes Signal (das vom 1-Bit Wandler) 
grundsätzlich besser ist, als ein etwa dezimiertes (das aus dem 
AD-Wandler parallel rauskommt) braucht man keine japanische Universität. 
Unter der Voraussetzung, dass ein Delta-Sigma-Wandler sauber 
funktioniert, ist das immer das Beste, das zu speichern und zu behalten. 
Aber:

"sauber funktioniert" ist eine Definitionsfrage. Das Sigma wird 
idealisiert als lineares Integral angesehen und erfordert zur 
Rekonstruktion eine Schaltung, die es in der Praxis nicht gibt - 
jedenfalls nicht perfekt. Daher kann man da "drehen", ohne jetzt zu sehr 
in die Details zu gehen und auf reale Filter optimieren.

Entscheidend ist aber die Rate! Wenn man das "1-Bit" mit einem 
entsprechenden parallelen ADC vergleicht, hat der immer die schlechtere 
Auflösung. Nur bei genügendem Abstand zwischen DSD-Frequenz und Fs gilt 
die Behauptung. Bei DSD64 gilt das definitv nicht. So ist es auch zu 
erklären, dass einige Dokumente zu der Schlussfolgerung kommen, dass 
1-Bit-Audio schlechter sei, während andere das Gegenteil behaupten. Es 
geht einfach um den head room der Frequenz.

Ob es in einer konkreten Anwendung sinnvoll ist, bei DSD zu bleiben, 
hängt vom Anspruch ab:

Bei der reinen Speicherung und Wiedergabe, sind 192kHz ausreichend. So 
erklären sich die Ergebnisse des Hörversuchs des ETI Detmold.

Wenn man aber das Signal modulieren will, z.B. um es in einem 
Synthesizer abzuspielen und schneller zu machen, Vibrato draufzugeben, 
etc - dann ist das mit DSD nicht nur einfacher, sondern auch genauer und 
mit weniger Fehlern behaftet. Schon das resampeln auf z.B. 48kHz statt 
44,1 ist mit einem 1-Bit Signal aus dem Modulator genauer, besonders, 
wenn es in Echtzeit sein soll.

Was man sagen grundsätzlich kann:

Bei der Dezimation muss man Annahmen über Profil und Grenzfrequenz das 
Rekonstruktionsfilters machen, was praktisch nicht geht. Damit hört sich 
PCM auf unterschiedlichen DACs auch unterschiedlicher an.

Bei DSD ist es weniger wichtig, ob ein Filter bei 18 oder bei 20kHz 
beginnt zuzumachen und wie der Verlauf ist, weil das hochfrequente 
Signal das besser wegdithered.

Aber wie weiter oben schon gesagt: Man kann es meistens nur messen und 
berechnen, nicht aber hören. Das liegt beim Audio einfach daran, dass 
Mikrofone viele Probleme haben, Höhen sauber omnidirektional und linear 
aufzunehmen und Lautsprecher wiederum ebenfalls es kaum schaffen, sie 
korrekt abzubilden.

Autor: Audiomann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Das liegt beim Audio einfach daran, dass
> Mikrofone viele Probleme haben, Höhen sauber omnidirektional und linear
> aufzunehmen und Lautsprecher wiederum ebenfalls es kaum schaffen, sie
> korrekt abzubilden.

Was aber eigentlich keine Begründung liefert, dass die digitalen Systeme 
es sich leisten könnten, dort Ungenauigkeiten reinzubringen. (was sie 
offenbar tun)

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Es war auch nicht so gedacht. Die Argumentation ist, dass man im 
digitalen Pfad keine abartig höhere Genauigkeit benötigt, als andere 
(analoge oder mechanische) Komponenten in der Kette vorgeben.

Mich stört generell, daß nicht wenige immer wieder den Blick auf eine 
Komponente in der Signalkette richten und da bis zum geht nicht 
optimieren und andere, viel relevantere Dinge ignorieren. Lautsprecher 
sind da ein Thema und auch Mikros. Die Unterschiede in der Qualität der 
gespeicherten Daten unterschiedlicher Formate sind oft marginal gegen 
die Artefakte am Beginn und Ende der Audiokette.

Autor: Dogbert (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich schlage einen Delta-Sigma modulator 2. Ordnung der 16 Bit Samples zu 
n-Bit pwm Samples mit einer Frequenz von m*44.1KHz ausgibt vor.

n und m sind hier den Gegebenheiten des Microcontrollers etc. 
anzupassen.

Ich denke für das Upsampling kommt man mit null Samples einfügen für 
brauchbare Qualität weg? Natürlich nur wenn der resample Faktor 
ganzzahlig gewählt wird.

So ist die CPU laufzeit für einen DS 2. Ordnung klein.

In einem LPC8xx (30MHz, Cortex M0) habe ich 3 DSM 2. Ordnung mit 250KHz 
gesampled die je einen PWM timer versorgen realisieren können.
Dies brauchte nur ca. 10% der CPU, rest war nötig für diverse feed 
forward Berechnungen, Dithering der PWM-Periodendauer zur Linearisierung 
und eine PI Regelschleife in einer Schaltwandler "Power" Anwendung.

Auf dieser Plattform könnte geschätzt m=42 und damit n=16 gut sein.
Also 1.875MHz PWM und 4 Bit pro Sample.

S/N bis 20KHz könnte praktisch irgendwo zwischen 60-90Db liegen, schätze 
ich, doch diverse Verzerrungen und Störugen (PWM Analogperformance des 
Controllers) sind wohl relevanter.

Autor: Pallhuber (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dogbert schrieb:
> Ich denke für das Upsampling kommt man mit null Samples einfügen für
> brauchbare Qualität weg? Natürlich nur wenn der resample Faktor
> ganzzahlig gewählt wird.
Da bitte Ich doch mal um eine Erklärung, wieso man hier mit dem Einfügen 
von Nullsamples "gut weg" kommt. Was soll das bringen?


> m=42 und damit n=16 gut sein
Was ist denn M und n?  Dezimierungsfaktoren nehme Ich an?

> S/N bis 20KHz könnte praktisch irgendwo zwischen 60-90Db liegen
90 wären vielleicht noch zu ertragen, aber 60 ist doch reichlich 
schlecht, meine Ich. ?

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Pallhuber schrieb:
> Da bitte Ich doch mal um eine Erklärung, wieso man hier mit dem Einfügen
> von Nullsamples "gut weg" kommt. Was soll das bringen?

Na, die samples, die durch das erhöhte Abtasten "eingefügt" werden, 
müssen ja einen Wert haben, also irgendwie belegt werden.
Die Idee, Nullen einzufügen, rührt aus der Überlegung, keine Information 
hinzufügen zu wollen. Das funktioniert natürlich nur bei Daten, die ihre 
Nulllinie auf der Achse haben.
Bei unsymmetrischen Datenströmen mit Offset hat man da ein Problem. Dann 
wäre das Einfügen des Offsets die Lösung. Dies gelingt aber aus 
praktischen Gründen nicht immer:

Beim Audio ist das deshalb meistens schlecht, weil es gleichstromfrei 
übertragen wird. Real mittelt sich jeder Gleichanteil, den man hat oder 
erzeugt, mehr oder weniger weg und genau dieses "mehr oder weniger" ist 
der Punkt:

Er mittelt sich immer ein bischen weg, weswegen das Einfügen der Null 
(auch bei symmetrischem Datenstrom) versagt.
Er mittelt sich aber nicht perfekt weg, weswegen es nur eine lokale 
Nulllinie gibt und das Einfügen eines berechneten BIAS versagt.

Es gibt also praktisch einen BIAS-Fehler, der sich je nach Filter am 
Ausgang und Analogpfad etc auswirkt.

Der Filter ist dabei das größte Problem:

Das Einfügen der Nichtinformation per Null oder des BIAS-Wertes gelingt 
nur theoretisch, weil es bei der Rekonstruktion ein ideales Filter 
benötigt.
Da es das nicht gibt, bekommt man immer Fehler im Signal. Daher braucht 
es auch bei ganzzahligen Abtastverhältnissen immer ein 
Interpolationsfilter vor der Ausgabe. Bei Audio stimmt man das einfach 
auf die Bandbreite, z.B. 20...20.000 Hz ab. Dann hat man eine 
ausreichend gute Interpolation mit korrektem BIAS-Wert. Mit der Annahme 
eines guten Rekonstruktionsfilter, kann man etwas konservativer sein und 
das Filter auf 10Hz bis Nyqust der Abtastung auslegen.
Auf diese Weise sind quasi 2 Interpolationsfilter in Reihe geschaltet, 
wobei das eine idealerweise die Probleme des anderen vermeidet.

Wenn z.B. am Ausgang ein analoges mehrstufiges IIR sitzt, neigt das zum 
Schwingen, wenn es durch die Sprünge angeregt wird. Das ist praktisch 
überhaupt nicht mehr der Fall, wenn man die Werte aus einfachen 
Mittelwerten bildet, wodurch nur noch Knicke überbleiben.

Es gibt noch ein weiteres Argument für die Vorinterpolation:

Der Pegel des Signals reduziert sich nicht. Wenn man ein Signal um 
Faktor 3 hochsampelt, hätte man ansonsten nur ein Drittel des Pegels. 
Das macht nur bei rein digitaler Weiterverarbeitung keinen Unterschied, 
wohl aber, wenn das Signal auf einen Analogfilter geht.

Autor: Reinhard Salzgeber (rs1972)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilbert F schrieb:
> Was spräche also prinzipiell dagegen eine solche Sequenz vorab zu
> berechnen (Ich vermute für eine Liveberechnung ist ein typischer 8bit
> MCU nicht leistungsfähig genug), auf einer SD-Karte abzulegen und dann
> mittels eines Timers und ISR auszugeben?

Da sich Giilbert F aus dem Forum verabschiedet zu haben scheint, ist 
wohl die Idee nicht mehr so wichtig.

Zum Thema kann Ich noch beisteuern, dass das direct digital streaming 
gerade wieder auflebt:

https://www.nativedsd.com/

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das DSD hatten wir ja schon oben diskutiert. Ich greife die Frage aber 
mal auf:

Wer hört denn hier DSD-Audio?
(und noch wichtiger) Über welche Hardware?

Zur Verdeutlichung des Thema Zero-Inserting bei den Samples noch diese 
Grafik:
http://96khz.org/oldpages/digitalupsampling.htm

Autor: Dogbert (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Es gibt noch ein weiteres Argument für die Vorinterpolation:

Ich denke mal die zusätzlichen Rekonstruktionsartefakte durch den nicht 
flachen Frequenzgang von Audio gegen 0Hz und real world 
Rekonstruktionsfilter spielen praktisch keine Rolle, die spielen sich in 
den Harmonischen der Samplerate ab und würden praktisch in der ganzen 
Signalkette ausreichend gefiltert. (Ist ja ein low cost hack, oder?)

Die Pegelreduktion oder die Konzentration des Signals auf die 
harmonischen der Samplefrequenz sind aber wirklich blöd für den DS 
modulator, denn diese reduzieren dessen Aussteuerbarkeit und 
Praktikabilität empfindlich.

Also ein Interpolationsfilter macht absolut Sinn.

Da steckt dann etwas Aufwand drin.

Ein 42-fach multiphase FIR mit einer "tolerierbaren" Anzahl taps (>10?) 
wäre mein Ansatz.

Muss ja nicht besser von den duch das Resampling erzeugten Rechenfehlern 
(S/N) als die zu erwartende Gesamtperformance von Audio aus Controller 
PWM I/O auf R/C tiefpass sein.

Vielleicht gibt es noch weitere Optimierungen dafür im konkreten Fall 
die mir gerade nicht einfallen.

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Mich stört generell, daß nicht wenige immer wieder den Blick auf eine
> Komponente in der Signalkette richten und da bis zum geht nicht
> optimieren und andere, viel relevantere Dinge ignorieren. Lautsprecher
> sind da ein Thema und auch Mikros.

Vor allem sollten auch manche High-End-Fetischisten einsehen, dass in 
den Studios, in denen die Tonträger aufgenommen wurden, auch nur mit 
Wasser gekocht wird, d.h. zwar großenteils eine technisch hochwertige 
Ausstattung der jeweiligen Zeit verwendet wird, aber eben keine bei 
Vollmond aus handgewalztem Silber handgeklöppelten und mit levitiertem 
Weihwasser gespülten, armdicken monokristallinen Litzen. Und dann meinen 
solche Leute, mit ihren esoterischen Anlagen irgendwelche Klangdetails 
in Aufnahmen aus den 1930er bis 1960er Jahren entdecken zu können, als 
man den Umstieg vom Tondraht zum Magnetband gerade mit Mühe geschafft 
hatte und im Vergleich zum Bandrauschen selbst die Niagarafälle als 
schalltoter Raum gelten müssten.

Autor: Dogbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas S. schrieb:
> High-End-Fetischisten

Sind ein hochprofitabler Markt.
Und wo Kunden sind finden sich Verkäufer.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Andreas S. schrieb:
> Vor allem sollten auch manche High-End-Fetischisten einsehen, dass in
> den Studios, in denen die Tonträger aufgenommen wurden,

Ja die Sache ist äußerst ambivalent! Selbst in den Studios sitzen nicht 
überwiegend sachlich denkende Ingenieure, sondern self made mixer, die 
sich traditionell audio engineer nennen und dort findet man Leute, die 
nüchtern und klar geradlinig produzieren und auch konsequent die 
Verbesserung der Aufnahme und Speicherung von Audiodaten vorangetrieben 
haben und es gibt die, welche irgendwelche Artefakte als grossartig und 
warm erachten.

Aus dem Grund halten sich in den Studio nach wie vor stark färbende 
Mikrofone, alte Mikrofeone, klangverfälschende Lautsprecher und 
Analogaudiotechnik, die mehr Gemüse erzeugt, als Probleme der 
Digitaltechnik zu umgehen.

Die Schwierigkeit ist, dass heute existierende Audiosignale aus allen 
Epochen stammen und unter verschiedenen Strategien erzeugt wurden. Man 
erinnere sich nur an die exorbitanten Lautsprecher von Grundig mit ihren 
Kugeln und anderem. Viele dieser Mischungen nehmen auf die 
Hörgewohnheiten und Abspielsysteme Rücksicht.

Somit ist es bisweilen schwierig, sehr neutral klingende Mikrofone und 
neutrale Lautsprecher zu verkaufen oder umgekehrt Mischungen in den 
Markt zu bringen, die solche Systeme erfordern. Es klingt oft 
langweiliger, weniger druckvoll und luftig.

Daher schneiden verfärbende Komponenten im Hörtest oft besser ab und die 
Leute kaufen holzige Lautsprecher, Röhrenverstärker und Klangverbesserer 
der unterschiedlichsten Sorte.

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Selbst in den Studios sitzen nicht überwiegend sachlich denkende
> Ingenieure,

sondern es bestehen natürlich auch kommerzielle Zwänge, insbesondere 
natürlich bei kleinen Klitschen, in denen höchstens in paar Hobbymusiker 
ihre Demoaufnahmen machen lassen. Wobei dies heutzutage sicherlich eher 
am heimischen PC erfolgt. Gerade wenn man sich einige sehr frühe 
Aufnahmen von "Die Ärzte" anhört, kann man sehr sicher sein, dass die 
klangliche Unvollkommenheit nicht unter künstlerischen Aspekten 
entstanden ist, sondern weil es billig und einfach sein musste. Wer dann 
heute solche Aufnahmen auf seiner High-End-Kunstinstallation abspielt, 
wird da aber sicherlich mühelos alle möglichen Intentionen und 
Klangerlebnisse hineininterpretieren können.

> Viele dieser Mischungen nehmen auf die
> Hörgewohnheiten und Abspielsysteme Rücksicht.

Früher war das Radio das Tor zur Welt, und der Stolz jeder wohlhabenden 
Familie war die Musiktruhe, für die man locker ein halbes Jahresgehalt 
hinlegte. Sozusagen "frühes High-End". Und dann hörte man gebannt zu. 
Heutzutage dürfte aber der Anteil derjenigen, die zuhause in der guten 
Stube Radio hören, verschwindend gering sein. Das Radio dudelt hingegen 
im Auto, im Büro, auf der Baustelle und in einigen Ladengeschäften, also 
Umgebungen mit vielen Störgeräuschen.

Gerade die üblichen Dudelsender optimieren also ihre Mischungen auf 
billige Kofferradios und Autoradios.

> Daher schneiden verfärbende Komponenten im Hörtest oft besser ab und die
> Leute kaufen holzige Lautsprecher, Röhrenverstärker und Klangverbesserer
> der unterschiedlichsten Sorte.

Oder sie kaufen sich grafische Equalizer und stellen darauf möglichst 
lustige Hügel ein. :-/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.