Kann die Signaldämpfung vom PC zum Mikrocontroller nicht verstehen (NI myRIO)

Ich arbeite an einem Projekt zur aktiven Geräuschunterdrückung. Ich bin auf ein Problem gestoßen, bei dem das Signal gedämpft wird, wenn sich die Audiobittiefe von PC-Daten zu Mikrocontroller ändert, und ich kann es nicht verstehen!
Mein Schaltkreis: Ich habe den Audioausgang (Kopfhörer) des PCs [der ein analoges Signal sein soll] mit dem Audioeingang des NI myRIO 1900-Geräts über ein AUX-Kabel (zweipoliges 3,5-mm-Klinkenkabel) verbunden. Ich habe ein vorab aufgezeichnetes Signal (.wav) mit sinusförmiger Wellenform mit Amplitude 1, Frequenz 2 kHz, 40000 Abtastrate, 80 Anzahl von Abtastungen, Bittiefe (Bits pro Abtastung) = 16.
Jetzt habe ich gerade eine .wav-Datei mit dem Windows Media Player abgespielt und versucht, die Wellenform auf dem NI myRIO-Modul aufzuzeichnen. Überraschenderweise bekomme ich eine Dämpfung des Signals entsprechend der Lautstärkereduzierung im PC (nicht linear!!). Nur ich kann die Wellenform im Mikrocontroller nahe der Amplitude 1 sehen, als ich die Lautstärke des Systems auf 100 % erhöht habe. Bitte erkläre das!!

Der ADC von NI myRIO hat eine Auflösung von 12 Bit, aber die Audioausgabe (.wav-Datei) besteht aus 16-Bit-Daten. Ich gehe davon aus, dass es außer Quantisierungsfehlern keine Rolle spielen muss, da am PC Audio Out die Audiodaten analog konvertiert werden sollen und am 'NI myRIO Audio In' wieder dieses analoge Signal gesampelt wird! (Bitte korrigieren Sie mich, wenn ich falsch liege!)
Eine andere Frage ist, ich habe dasselbe mit sinusförmigem Ton von Amplitude 2,5 versucht, jetzt wird das Audiosignal bei 1 V über und unter -1 V abgeschnitten. Der Nennbereich des ADC (NI myRIO) beträgt 2,499 V bis -2,5 V! Liegt es an der Bittiefenkonvertierung? Bitte erklären Sie diese Dinge !TQGeben Sie hier die Bildbeschreibung ein


BEARBEITEN: Ich konvertiere weder 16-Bit-Digitaldaten in 12-Bit-Digitaldaten noch 12 bis 16 !! Ich habe zufällig 16-Bit-Audiodaten, wenn ich diese über den Windows Media Player abspiele, werden sie am Kopfhöreranschluss in ein analoges Signal umgewandelt, und ich füttere dieses ANALOG-Signal einem ADC von NI myRIO mit 12-Bit-Auflösung.

Hatte Schwierigkeiten, Ihre Frage zu verstehen. Wenn Sie jedoch die Bittiefe erhöhen, müssen Sie das höchstwertige Bit ausrichten. Wahrscheinlich kopieren Sie 12-Bit-Daten in 16-Bit-Wörter und richten das niedrigstwertige Bit aus?
Ich denke, die Ausgabe Ihres PCs schneidet ab. Soweit ich das beurteilen kann, ist Ihre Intuition, dass die Bittiefe kein Faktor ist, richtig.
@mkeith Entschuldigung für "verwirrende Frage". Ich habe die Frage zum besseren Verständnis etwas umformuliert. Ich kopiere keine 12-Bit-Daten in 16-Bit-Worte!

Antworten (3)

Nachdem Sie Ihrer Frage weitere Informationen hinzugefügt haben, scheint die Ursache weniger mit der Abtasttiefe (Bit) als vielmehr mit der analogen Verbindung zwischen zwei Systemen zu tun zu haben.

Es sieht so aus, als ob Sie die Grenzen der Audioausgabe des PCs erreichen. PCs verwenden Line-Pegel-Ausgang, der von +1 V bis -1 Volt reicht. Das stimmt mit dem Pegel überein, den Sie auf dem myRUI 1900 sehen - Sie haben dort ein Diagramm, das das Signal im Bereich von 1 V bis -1 V zeigt, was zu erwarten ist.

Das Signal ist abgeschnitten, weil Ihr Signal vom PC abgeschnitten wird. Wenn Sie versuchen, ein Signal mit einer zu hohen Amplitude aus dem PC zu senden, wird es abgeschnitten.

Es kann die Software beschneiden, bevor es auf die Hardware trifft, oder es kann die Hardware beschneiden. Einige Teile der Lautstärkeregler befinden sich in der Hardware, einige Teile in der Software.

Die Teile der Lautstärkeregelung in der Software können ein Signal soweit verstärken, dass es nicht mehr in 16Bit darstellbar ist und geclippt wird.

Die Teile der Lautstärkeregelung in Hardware können das Signal so weit verstärken, dass der Ausgangsverstärker selbst übersteuert.


In Summe:

  1. Sie können mit einem PC kein Signal erzeugen, das am myRUI 1900 einen Vollaussteuerungseingang verursacht. Der PC kann einfach kein Signal mit dem erforderlichen Spannungsbereich erzeugen.
  2. Das Erhöhen der Lautstärke am PC, um einen höheren Pegel zu erzwingen, führt nur zu Clipping, was zu dem Signal führt, das Sie mit dem myRUI 1900 erfasst haben.
Es stimmt! Ich denke, das Clipping geschieht auf Softwareebene, denn unabhängig von der Systemlautstärke wird es abgeschnitten, wenn die Amplitude von sin über 1 V liegt (auch bei niedrigsten Lautstärken). Auch diese Line-In/Out-Spannungen variieren je nach verwendeter Soundkarte! Die eingebaute Soundkarte des PCs gibt eine Amplitude von 1,6 V für eine Sinuswelle mit einer Amplitude von 1 V und einem Lautstärkeanstieg von 100 %, während ich bei Verwendung einer externen Soundkarte eine Amplitude von 1 V erhalte, die der einer Sinuswelle entspricht. Danke !
Überraschenderweise bekomme ich eine Dämpfung des Signals entsprechend der Lautstärkereduzierung im PC (nicht linear!!). Nur ich kann die Wellenform im Mikrocontroller nahe der Amplitude 1 sehen, als ich die Lautstärke des Systems auf 100 % erhöht habe. Bitte erkläre das!!

Der Mensch nimmt die Schallintensität nicht linear, sondern logarithmisch wahr. Denn eine Reihe von Schallleistungsverdopplungen wird als lineare Lautstärkereihe wahrgenommen. Dies ist seit über einem Jahrhundert bekannt, daher wissen dies auch die Leute, die die Lautstärkeregelung in Ihrer PC-Software entwickelt haben. Um Ihnen das zu geben, was Sie als lineare Lautstärkeregelung wahrnehmen, bedeutet dies, dass die Spannung tatsächlich exponentiell variiert wird. Aus diesem Grund fällt die Spannung schnell vom Maximum ab, wenn die Lautstärke nur geringfügig heruntergedreht wird.

Ich bin auf dieses seltsame Problem gestoßen, bei dem das Signal gedämpft wird, wenn sich die Audiobittiefe ändert, und ich kann es nicht verstehen!

Sie haben ein Signal mit 12 Bit Auflösung und konvertieren es in 16 Bit. Eines von zwei Dingen passiert. Entweder: -

  1. Die ursprünglichen 12 Bits werden auf die oberen 12 Bits der 16-Bit-Zahl abgebildet und die unteren 4 Bits der neuen 16-Bit-Zahl werden auf 0 gesetzt, oder
  2. Die ursprünglichen 12 Bits werden auf die unteren 12 Bits der 16-Bit-Zahl abgebildet und die oberen 4 Bits auf Null gesetzt.

Nummer 1 wird keinen Unterschied in der Lautstärke Ihres Signals machen und Nummer 2 wird die Amplitude erheblich um 16:1 reduzieren, während das gleiche Signal-Rausch-Verhältnis beibehalten wird (keine schlechte Sache).

Warum wird #2 bevorzugt? Ein Beispiel wäre das digitale Mischen von Sounds. Sie können jetzt 16 solcher konvertierten Wellenformen hinzufügen und Clipping vermeiden. Sie können mit #1 nicht wirklich etwas tun, was Sie nicht schon tun konnten, als es noch im 12-Bit-Format war.

Entschuldigung, können Sie meine grundlegende Frage beantworten? Wenn wir eine .wav-Audiodatei haben (codiert mit 16-Bit-Daten), ist die Ausgabe des PCs über Kopfhörer ein analoges Signal oder immer noch 16-Bit-Digitaldaten!? Wird mein PC einfach einen DAC am Kopfhörerausgang haben? Scheint, als wäre meine Fragestellung nicht gut, alle haben sie missverstanden (glaube ich!). Ich mache keine 12-Bit-zu-16-Bit-Datenkonvertierung. Ich habe zufällig einen ADC mit 12-Bit-Auflösung im Mikrocontroller (myRIO) und kann .wav-Dateien nur in jedem Mediaplayer abspielen, wenn sie mit 8-Bit oder 16-Bit codiert sind!
Kopfhörer sind analog und in Ihrer Soundkarte befindet sich ein DAC - ein Lautsprecher weiß nicht, was ein digitales Signal ist, daher ist die Umwandlung in ein analoges ein MUSS. Übrigens, ich habe Ihre erste Frage in meine Antwort ganz oben kopiert - vielleicht haben Sie vergessen, was die Frage ist?
Hmm k, ich dachte, du beantwortest die ganze Frage :)
Nun, vielleicht müssen Sie es umformulieren - von dem, was ich vermute, gibt es eine viel einfachere Version Ihrer Frage, die darauf wartet, herausgekitzelt zu werden. Jetzt habe ich Ihre erste Frage und eine anscheinend ergänzende Frage beantwortet, wo sich der DAC beim Anschließen von Kopfhörern befindet. Versuchen Sie es mit einem einfacheren Ansatz.