Hi zusammen, ich bastle grad einen kleinen Amp mit STA311b als DSP und PWM Treiber sowie PCM4202 AD Wandler. Läuft soweit auch, wenn ich jetzt nun die Phase messe (von Analog in des PCM4202) nach Analog out (hinter LC Filter des PWM Ausganges) dann habe ich eine sehr unruhige Phase ab etwa 1kHz. Ich habe mich bewusst für den PCM4202 entschieden da dieser eine sehr lineare Phase hat. Die Phasenschweinerei muss also im STA311b entstehen. Gibt es eine Möglichkeit die Phase zu linearisieren? Eventuell über Filter Coeffizienten? Wie wird das üblicherweise gemacht? Danke, Gruß Matthias
>>Die Phasenschweinerei muss also im STA311b entstehen.
kann doch auch das LC Filter sein!?
Cheers
detlef
Detlef _a schrieb: > kann doch auch das LC Filter sein!? Nein das habe ich bereits gemessen, Phasenverzug über den LC Filter beträgt max. 5°.
Phasenverlauf eines Biquad kann recht überraschend sein: http://www.kvraudio.com/forum/viewtopic.php?p=5225317 Eine endgültige Lösung wird mit dem STA vermutlich nicht möglich sein, denn die Biquads sind da fest eingebaut, so zumindest lese ich die Intro bei STM.
:
Bearbeitet durch User
Matthias Sch. schrieb: > Phasenverlauf eines Biquad kann recht überraschend sein: > http://www.kvraudio.com/forum/viewtopic.php?p=5225317 > Eine endgültige Lösung wird mit dem STA vermutlich nicht möglich sein, > denn die Biquads sind da fest eingebaut, so zumindest lese ich die Intro > bei STM. Ja die Biquads sind fest eingebaut aber eben nicht gesetzt. Sprich aktuell sind alle Werte auf Default und die DSP Einheit steht auf Bypass. Aber mein Phasenverlauf macht genau solche Sprünge wie im verlinkten Artikel der zweite Beitrag. Immer im Zickzack.
Matthias Machmal schrieb: > Aber mein Phasenverlauf macht genau solche Sprünge wie im verlinkten > Artikel der zweite Beitrag. Immer im Zickzack. Hmm, das spricht doch aber dafür, das da noch eines aktiv ist. Welches das ist, könntest du ja herausfinden, indem du nach der aktiven Frequenz schaust. Sind da noch irgendwelche Loudness- oder Bass/Treble Filter aktiv?
Zeig doch mal einen Plot, sonst kann man nur raten was dein Problem ist.
Matthias Sch. schrieb: > Hmm, das spricht doch aber dafür, das da noch eines aktiv ist. Welches > das ist, könntest du ja herausfinden, indem du nach der aktiven Frequenz > schaust. Sind da noch irgendwelche Loudness- oder Bass/Treble Filter > aktiv? Mal sehen, ich schau mir das heute Abend nochmal an ... > Zeig doch mal einen Plot, sonst kann man nur raten was dein Problem ist. ... und erstelle ein Plot.
Bei einem Filter mit konstanter Gruppenlaufzeit ändert sich die Phase linear mit der Frequenz und "springt" dann ab und zu scheinbar um 360 Grad. Vielleicht ist das schon alles...
>>Vielleicht ist das schon alles...
In dem plot springen die Phasen nicht um 360° (das ist auch kein Sprung
sondern ein Darstellungsproblem) sondern um 180 Grad. Und das passiert
genau dann, 'wenn man mit der Frequenz an einer Polstelle langgeht, die
nahe am Kreis liegt', um das mal so salopp aber in Gänsefüßchen zu
sagen. Du hast im DSP noch biquads zu laufen, die sind nicht abgestellt.
Cheers
Detlef
So ich hab nun die gewünschten Plots. Drei Stück: - Einmal nur den LC Ausgangsfilter (vom PWM Out des DSP bis zur Lautsprecherklemme). - Einmal das komplette System vom Analog Input bis zur Lautsprecherklemme - Einmal nur die Vorstufe vor dem PCM4202 (aufgebaut mit OPA1632 wie im Datenblatt des PCM4202 vorgegeben) Die Plots sehen alle bis auf das über den DSP sehr gut aus (meine Meinung). Alle durch den "User" programmierbaren DSP Funktionen, Treble, Xover, Loudness und Biquads sind abgeschaltet. Zum Test habe ich auch mal ein paar Biquads erstellt. Dies ergibt nur leichte Unterschiede zum komplett deaktivierten DSP (aber ja, es wird dadurch noch "schlimmer"). Jemand eine Ahnung woran das noch liegen kann? Achja, Verbindung ADC -> DSP läuft mit PCM I2S 96kHz 256fs 24.576Mhz Masterclock. Danke!
So, Nachtrag! Mit einer Samplingfrequenz von 192kHz wurde es drastisch besser! Vermutlich weil der DSP dann kein Oversampling mehr machen muss. So ganz gefällt es mir aber trotzdem noch nicht...
Der Sprung um annähernd 360° scheint mir ok aber ne lineare Phase ist das nicht. Warum ist bei bypass aller Filter der Phasengang abhängig von der samplefrequenz !? Cheers Detlef
Detlef _a schrieb: > Der Sprung um annähernd 360° scheint mir ok aber ne lineare Phase ist > das nicht. Ja, leider... > Warum ist bei bypass aller Filter der Phasengang abhängig von > der samplefrequenz !? Vielleicht weil der DSP intern nativ mit 192kHz arbeitet und dann kein oversampling mehr notwendig ist?
Matthias Machmal schrieb: > Vielleicht weil der DSP intern nativ mit 192kHz arbeitet und dann kein > oversampling mehr notwendig ist? Hmm, oversampling sollte aber nicht die Ursache für Phasendreh sein, im Gegenteil. Da der Dreh bei 5kHz und etwa 16kHz noch da ist, spricht das für mich dafür, das da noch ein Filter im Spiel ist. Abhängig von der Samplingfrequenz schaltet der STA vermutlich Antialiasing Filter dazu, die könnten evtl. die Ursache sein, wenn du den DSP selbst ausschliessen kannst.
Hmm leider kann man im STA311 nicht allzuviel rumkonfigurieren. Alle Register die mir dahingehend interessant schienen wie z.B. Noise Shaper habe ich bereits durchgeforstet und getestet. Hab das jetzt auch mal an den ST Support weitergegeben. Mal sehen was die dazu sagen. Vielleicht können die ja auch einen Phaseplot aus ihrem Labor veröffentlichen. Danke aber schon mal für die Unterstützung.
Ich komme leider nicht weiter... so ein Mist. Mich ärgert das weil meine zwei Halbbrücken und das ganze Drumherum echt super läuft, nur der DSP zickt rum. Hab testweise auch mal einen TAS5558 verwendet mit leider noch schlechterem Ergebnis. Was mache ich denn falsch? Ich habe einen AD Converter (mittlerweile schon drei verschiedene versucht), dann gehe ich mit I2S in den STA311b DSP (alle möglichen Samplingraten bis 192khz schon durch) und anschließend kommen zwei IRS20124 Brückentreiber und die Ausgangsfets sowie ein LC Filter. Ich hab auch schon den PWM Ausgang des STA311b auf verschiedene Art und Weisen gefiltert um direkt am DSP Ausgang zu messen. Auch dort sieht die Phase nahezu identisch aus wie der Ausgang. Daher schließe ich die Ausgangsstufe samt dem LC Filter mal als Fehlerquelle aus. Jemand eine Idee was ich noch machen könnte? ich bin mittlerweile ratlos, hab schon sämtliche Register des STA311b durchforstet, verschiedenste PLL Konfigs durchgetestet... MEEEENSCH!! Anbei noch ein paar Scope Bilder bei verschiedenen Frequenzen. Man sieht auch hier sehr schön wie der Eingang (gelb) vom Ausgang (grün) abweicht. So macht das natürlich keinen Sinn :( Vor allem dass es mit dem TAS5558 von TI noch schlechter aussieht wundert mich. Es hat also definitiv was mit dem DSP zu tun. Sind diese "Out-of-the-box" DSPs wirklich so grottig? Muss ich eventuell auf einen Blackfin oder Xmos etc umstiegen und alles selbst erstellen? Ich bin um jede Hilfe dankbar!!
:
Bearbeitet durch User
Wie sieht der Amplitudengang aus ? Wie sieht der Phasengang aus, wenn man die Frequenz linear darstellt (und nicht logarithmisch wie in einem der obigen Bilder)? Wie sieht die Gruppengeschwindigkeit in Abhängigkeit von der Frequenz aus?
:
Bearbeitet durch User
Martin O. schrieb: > Wie sieht der Amplitudengang aus ? (siehe Bild) Gemessen direkt am PWM Pin des STA311b mit 680 Ohm und 4.7nF als Tiefpass, PWM Frequenz: 384kHz. > Wie sieht der Phasengang aus, wenn man die Frequenz linear darstellt > (und nicht logarithmisch wie in einem der obigen Bilder)? (siehe Bild) ebenfalls am PWM Pin des STA311b wie oben beschrieben gemessen. Zum Vergleich auch ein Bild des selben Phasengangs in log. Darstellung. > Wie sieht die Gruppengeschwindigkeit in Abhängigkeit von der Frequenz > aus? (siehe Bilder) konstante 155µS (was in Bezug auf die Phase keinen Sinn macht, oder?)
:
Bearbeitet durch User
Ich wage jetzt mal ne Interpretation: Wenn "unkontrollierte/störende/zufällige" Filter aktiviert wären, wären vermutlich weder Verstärkung noch Gruppenlaufzeit so schön konstant über den weiten Frequenzbereich wie beobachtet. Die Signalverarbeitung im IC führt zu insgesamt ca. 155us Verzögerung, was zu dem beobachteten (sehr linaren) Phasengang führt. Die "Phasensprünge" sind der Darstellung geschuldet. Vermutlich ist die Welt also in Ordnung...
Martin O. schrieb: > Ich wage jetzt mal ne Interpretation: > Wenn "unkontrollierte/störende/zufällige" Filter aktiviert wären, > wären vermutlich weder Verstärkung noch Gruppenlaufzeit so schön > konstant über den weiten Frequenzbereich wie beobachtet. Ja, wie gesagt die DSP Einheit steht auf Bypass. > > Die Signalverarbeitung im IC führt zu insgesamt ca. 155us Verzögerung, > was zu dem beobachteten (sehr linaren) Phasengang führt. > Die "Phasensprünge" sind der Darstellung geschuldet. > > Vermutlich ist die Welt also in Ordnung... Hmm... meinst wirklich? Man sieht aber aufn den Oszi Bildern (4 Posts weiter oben) auch sehr deutlich dass das Ausgangssignal nicht konstant mit dem Eingang "mitläuft". So wirklich linear sieht mir das nicht aus.
Beachte: "Konstante Zeitverschiebung" ist nicht "konstante Phasenverschiebung". Während 100us bei 100Hz fast keine Phasenverschiebung sind, sind 100us bei 10kHz schon 360 Grad.
Martin O. schrieb: > Beachte: > "Konstante Zeitverschiebung" ist nicht "konstante Phasenverschiebung". > > Während 100us bei 100Hz fast keine Phasenverschiebung sind, > sind 100us bei 10kHz schon 360 Grad. Hmm ABER ist es nicht Sinn und Zweck eines konstanten Group Delays alle Frequenzen als "Gruppe" zu behandeln und gleichmäßig durch den DSP zu schicken? So hab ich das zumindest mal gelernt. Mein Problem ist dass ich das Signal was rauskommt mit dem Eingang vergleichen möchte und das stellt sich aktuell als nahezu unmöglich dar.
....dass ich das Signal was rauskommt mit dem Eingang vergleichen möchte und das stellt sich aktuell als nahezu unmöglich dar. Wenn ein System eine Gruppenlaufzeit von T hat, muss Du das Ausgangssignal mit dem um T verschobenen Eingangssignal vergleichen, was bei T=150uS mit einem einfachen Oszilloskop schwer sein dürfte, weil Du die Kanäle um 150us gegeneinander verschieben musst. Ob und mit welchen Digital-Skopes das geht weiss ich nicht.... Schick doch mal nen "weichen Puls" mit 100us Dauer durchs System und schau wann und wie verformt er rauskommt.
Matthias Machmal schrieb: >> Vermutlich ist die Welt also in Ordnung... > > Hmm... meinst wirklich? Man sieht aber aufn den Oszi Bildern (4 Posts > weiter oben) auch sehr deutlich dass das Ausgangssignal nicht konstant > mit dem Eingang "mitläuft". So wirklich linear sieht mir das nicht aus. Es ist alles gut, sehe ich auch so. lineare Phase = konstante Gruppenlauzeit = konstante 'Durchlaufzeit' 155us, ist doch ok. Was meinst Du mit 'mitläuft': Wenn Du die Frequenz hochdrehst ändert sich natürlich die Phase zwischen Eingang und Ausgang. Cheers Detlef
Hmm dann habe ich da wohl eine falsche Auffassung. Meiner Ansicht nach sollte der Phasenwinkel zwischen Ein- und Ausgangssignal über den Bereich des Nutzsignales (20Hz-20kHz) konstant bleiben. Aaaaber gut wenn das natürlich anders ist dann lag der Fehler die ganze Zeit bei mir :-(
>>>>>>
Meiner Ansicht nach sollte der Phasenwinkel zwischen Ein- und
Ausgangssignal über den Bereich des Nutzsignales (20Hz-20kHz) konstant
bleiben.
Nein, der Phasenwinkel wird größer. Das ist intuitiv einzusehen:
Der Puls oder der Sinus hat eine konstante Durchlaufzeit durch das
System. Dieser konstanten Zeit entspricht bei hohen Frequenzen 'mehr
Winkel', um das mal so salopp zu sagen. Also man braucht lineare Phase
und deren Ableitung ist konstant, das ist die Gruppenlaufzeit.
Cheers
Detlef
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.