Jitter in analoog-digitaal omzetters.
Het idee is om een signaal (bijvoorbeeld een 11025 Hz sinus met daarbij een 229 Hz LSB toggelende sinus) te "verpesten" met jitter. En dan kijken wat
het doet in het spectrum. Ik heb daarbij de tijd verjitterd. Op iedere klokslag kan je immers de functiewaarde van die 11025 Hz + 229 Hz sinus
uitrekenen en dat wordt dan het rechterkanaal. Het linkerkanaal verschuif ik de tijd volgens een Gaussische verdeling met een zekere variantie. En dan
natuurlijk de functiewaarde uitrekenen bij de nieuwe tijd, de verjitterde tijd.
In MatLab ziet dat er zo uit:
Code: |
clear;
pack;
SampleRate = 44100;
BitDepth = 24;
h = waitbar(0,'Please wait...(until this baby disappears)');
t = 0:1./SampleRate:5;
PiekPiekTimeJitter = 100e-9;
SigmaKwadraat = PiekPiekTimeJitter;
%
for n = 1:1:length(t);
tJitter(n) = t(n) + random('Normal', 0, SigmaKwadraat);
end
%f = SampleRate./4;
f = 11025;
%AdBFS = -60;
%A = 10.^(AdBFS./20);
A = 0.5;
c = A.*sin(2.*pi.*f.*tJitter) + (2.^(-16)).*sin(2.*pi.*(SampleRate./192).*tJitter);
c2 = A.*sin(2.*pi.*f.*t) + (2.^(-16)).*sin(2.*pi.*(SampleRate./192).*t);
%
ft = c;
gt = c2;
wavwrite([ft' gt'],SampleRate,BitDepth,'xxxx/temp/SingleTone11025Hz_LSBtoggle229_6875Hz');
close(h)
|
, waarbij ik niet helemaal zeker ben van de waarde die ik moet invullen bij "SigmaKwadraat" in:
random('Normal', 0, SigmaKwadraat)
Hier heb ik 3 waarden voor gekozen:
* 100 ps
* 500 ps
* 100 ns (!)
Het spectrum bij 100e-12 (links is verjitterd en rechts is zuiver):
Het spectrum bij 500e-12 (links is verjitterd en rechts is zuiver):
Het spectrum bij 100e-9 (links is verjitterd en rechts is zuiver):
Wat opvalt is dat de ruisvloer omhoog komt. Dus geen spikes of troep, maar gewoon ruis. Ergens is dat logisch, de intersymbool fouten zijn random en
dat zorgt voor ruis. En omdat de tijd Gaussisch verruisd is, is de ruis ongecorreleerd met het signaal. Een vorm van dither eigenlijk...
Het wordt wat interessanter als ik de tijd niet Gaussisch verruis, maar deterministisch. De for-loop wordt dan:
Code: |
for n = 1:1:length(t);
% tJitter(n) = t(n) + random('Normal', 0, SigmaKwadraat);
tJitter(n) = t(n) + SigmaKwadraat.*sin(2.*pi.*(SampleRate./10000).*t(n));
end
|
De sampletijd is ongeveer 22,7 microseconden en ik kan dus middels de variabele "SigmaKwadraat" de tijd verschuiven. Maximaal 10 microseconden en dan
is de klok toch heel goed fout!
Merk op dat ik steeds 24 bits bestanden gebruik, zo kan ik diep kijken en isoleer ik het probleem dat van de klok alleen af komt.
Amplitude = 100 p
Eigenlijk is de tijdjitter dus 200 ps piek-piek, omdat de amplitude 100 p is.
De 11025 Hz wordt in amplitude gedemoduleerd:
Dit is het signaal dat je aan weerszijden van de 11025 Hz zult zien als je het bestand wat hierboven staat in een audio editor laat zien. Mijn plaatje
is relatief tov de amplitude van die 11025 Hz.
Amplitude = 500 p
Tijdjitter dus 1 ns piek-piek.
De 11025 Hz in amplitude gedemoduleerd:
Amplitude = 100 n
Tijdjitter dus 200 ns piek-piek.
De 11025 Hz in AM gedemoduleerd:
Hier ook een FM demodulatie:
Amplitude = 1 micro
Tijdjitter dus 2 micros piek-piek.
De 11025 Hz AM gedemoduleerd:
En in FM gedemoduleerd:
Amplitude = 10 micro
Tijdjitter = 20 microseconden piep-piek, bijna een hele klokslag.
De 11025 AM gedemoduleerd:
En FM gedemoduleerd:
Omdat de verjittering in de tijd slechts heel langzaam gebeurt, is er relatief weinig aan de hand. Het enige wat je kunt zeggen is dat het gewenste
signaal er uitkomt zoals het hoort en daarbovenop doet zich een modulatie voor met de stoorsignalen, in eerste instantie als AM en als het te gortig
wordt ook als FM. In dit voorbeeld is 1 deterministisch signaal gebruikt dat bij uitstek geschikt is voor analyse.
Dit thema zou ik graag verder onderzoeken met meerdere signalen ipv 1 stoorsignaal met 1 frequentie.
Dan nu het hoofdstuk "harmonische vervorming". Deze blijkt niet te ontstaan, dwz als ik een ingangssignaal van fs/12 = 3675 Hz beschouw komen er geen
producten op 2*3675 = 7350 Hz en 3*3675 = 11025 Hz etc. Om dit te laten zien heb ik het spectrum bepaald van een fs/12 ingangssignaal dat ik
"verjitter" in de tijd met een fs/10000 signaal, de piek-piek tijdjitter = 20 microseconden (!):
Zoals je ziet, geen spoortje vervorming tgv niet-lineariteit te vinden.
Dit is dus bij een stoorsignaal dat relatief laagfrequent is tov de "carrier". 4,41 Hz als stoorsignaal versus 3675 Hz als ingangssignaal. Een collega
opperde om een stoorsignaal dichtbij de carrier te kiezen (hij had ook al eens gespeeld met vergelijkbare simulaties...). Dus kies ik in plaats van
fs/10000 een stoorsignaal met een frequentie van fs/14 = 3150 Hz. Om direct met de deur in huis te vallen (piek-piek tijdjitter = 20 microseconden
(!)):
Waarbij ik wat markers geplaatst heb. Ze zijn allen terug te voeren op 3675 +/- n*3150. Dus componenten op 3675 + 3150 = 6825 Hz, 3675 + 2*3150 = 9975
Hz etc. Maar ook 3675 - 3150 = 525 Hz, 3675 - 2*3150 = -2625 Hz en dit spiegelt naar +2625 Hz. etc etc. Geen harmonischen van de 3675 Hz component te
vinden. Op het originele signaal vindt geen harmonische vervorming plaats.
De oplettende kijker zal 2 op het eerste gezicht vreemde frequentiecomponenten opgemerkt hebben, ik zoom in vlak voor de 3675 Hz carrier:
Dit zijn de componenten op 2920.3 Hz en op 3379.7 Hz. Deze komen in principe van hetzelfde proces dat bij de carrier een rol speelt. Ik heb nog een
carrier meegestuurd, namelijk een sinus met een frequentie van fs/192 = 229.7 Hz. 229.7 + 3150 = 3379.7 en 229.7 - 3150 = -2920.3 Hz die terugvouwt
naar +2920.3 Hz. Daarmee is de cirkel rond.
Merk overigens op dat het proces dat ik gesimuleerd heb veel weg heeft van jitter bij de AD conversie. Hoe het bij DA conversie werkt, weet ik nog
niet maar het zal vergelijkbaar zijn.
Er is overigens wel een lineair verband te ontdekken bij de simulaties. Als ik het geval neem van de laagfrequente jitter, kom ik voor de AM modulatie
op een overdracht van 8 nV/ps en de FM modulatie heeft een overdracht van 22 pV/ps. Dus een jittersignaal met amplitude A = 100 ps, resulteert in een
800 nV (grelateerd aan 1 V) stoorsignaal tov het uitgangssignaal, ofwel @ -122 dBFS. De FM component zal op 2,2 nV ofwel -173 dBFS zitten. Dit thema
wil ik ook nog verder onderzoeken. De gevonden overdracht is geldig voor de frequentie die ik beschouwd heb en ik zou daar meer van willen weten.
Groet,
Jacco
|