Kuinka mitata dynaamista eritelmät kuten SINAD ja ADC?

G

geethki

Guest
Hi all ..
Olen yrittää mitata dynaamista specs 8 bittiä putkijohdoissa ADC vuonna peikko ..
Suorittamaan mittaus i antaa sinimuotoisella panos 1.245MHz ja minun kellon taajuus on 15,360 MHz ...
I ve johdettu näiden arvojen kanssa suhteessa fin / fsample = Nwindow / Nrecord, missä Nwindow ja Nrecord arvot ovat 83 ja 1024 vastaavasti ..
Kuinka paljon kesto i tarvitse tehdä ohimenevä analyysin Piirretään DFT?
Olen suorittaa simulointi noin 67.25u ..Onko tämä kesto riittävästi suorittamaan DFT jälkeen tuottaneella rappu ja muuntamalla sitä vastaava analoginen erotusdiagnoosissa panos ...
Vai riittääkö vain DFT varten 4-5 sykliä tuotoksen?

 
For your Nwindow ja Nrecord arvot ovat 83 ja 1024.Se olisi ainakin 1024 sykli tuotos, joka voi varmista signaalin FFT on integroitu.Lisätty jälkeen 3 minuuttia:Olen pahoillani, se olisi 83 fin syklit

 
Kiitos bigpop ...Tein ohimenevä simulointi 67.25u, tuotti rappu ja muunnetaan vastaavan analogisen erotusdiagnoosissa panos ...sitten löytyi DFT alkaen 0.5859u 67.25u on luotu signaali ..Kun yritän mitata SINAD, mikä on suhde signaalin amplitudi / sqrt (summa (neliösumman (kaikki osat, paitsi dc tasolla ja perusvapauksien taajuus))) saan erittäin huono arvo ...En tiedä, missä olen väärässä ..Pls oikea minulle ...

 
En näe tietojasi joten en tiedä miksi.Yritän seuraavassa vaiheessa
1.Tarkista, jos ADC on vakaa
2.Tarkista syntyy signaalin löytää, jos on joitakin epälineaariset tiedot
3.lisätä ikkunan teidän DFT analyysi.kuten hunning, Blackman

 
Kiitos bigpop ....Minua on pyydetty tekemään laskelmia Matlab .. Itse sain Matlab-koodi, joka laskee SINAD, SFDR ...Mutta i dont tiedä miten rehu tuloste peikko tähän koodi ..
Tämä on MATLAB-koodi ..

fclk = 80E 6;
numpt = 4096;
numbit = 10;
kuormitus saradcdata.txt;% Load tietoja levylle;
a = saradcdata ";
N = pituus (a);
% [M, N] = koko (a);% lukumäärä tiedot;
i = 1:1: N;%
c = int2str (a (i));% Muutos integer tyyppi tiedot string tyyppi;
temp = 0;%
Nlength = pituus (c);% pituus merkkijono;
j = 1:1: Nlength;%
d = str2num (c (j)) * 2 ^ (Nlength-j);% Binary on desimaalisaation
temp = temp d;%
end;%
koodi (i) = temp/4096 * 2,5%:
end;
% N = pituus (koodi);
% Näyttö varoitus, kun tulon luo koodi suurempi kuin täysimittaisia
%, jos (max (koodi) == 2 ^ numbit-1) | (min (code) == 0)
% DISP ( "Varoitus: ADC voidaan leikkautumisen !!!');
%
end% Piirretään tuloksia aikaan verkkotunnuksen
luku;
plot ([1: N]-koodi);
otsikko ( "TIME DOMAIN)
xlabel ( 'NÄYTTEIDEN');
ylabel (DIGITAL OUTPUT KOODI ");
zoom XON;
% Recenter digitaalisen siniaallolla
Dout = koodi
% - (2 ^ numbit-1) / 2;
% Jos mitään toimintoa ei käytetä, panos sävy on päättänyt olla ainutlaatuinen ja
% huomioon näytteenottotiheys.Tämän saavuttamiseksi prime-numerot otetaan käyttöön ja
% panos sävy määräytyy FIN = fSAMPLE * (Prime Number / Data Record Koko).
% Haluat rentoutua tämän vaatimuksen, ikkuna-toimintoja, kuten Hanning ja HAMING (ks. alla) voi
% otettava käyttöön, mutta tärkeää tuloksena FFT spektrin näyttää "terävämpi"
% ilman käyttöä ikkunan toimintoja.
Doutw = Dout;
% Doutw = Dout .* Hanning (numpt);
% Doutw = Dout .* hamming (numpt);
% Laitteen Fast Fourier Transform
Dout_spect = fft (Doutw, numpt);
% Laske DB
Dout_dB = 20 * log10 (abs (Dout_spect));
% plot ([1: N / 2], Dout_dB (1: N / 2));
% Näytä tuloksia on taajuusalueen kanssa FFT plot
luku;
maxdB = max (Dout_dB (2: numpt / 2));
% Saat TTIMD, käytä seuraavaa lyhyt rutiini, normalisoidu on 6.5dB täysimittaisia.
% plot ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB-6,5);
plot ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB);
grid on;
title ( 'FFT PLOT');
xlabel ( "ANALOG INPUT TAAJUUS (MHz) ');
ylabel ( 'Amplitudi (dB)');
a1 = akselin suuntaan; axis ([a1 (1) a1 (2) -120 a1 (4)]);
% Lasketaan SNR, SINAD, THD ja SFDR arvot
% Etsi signaali bin numero, DC = bin 1
fin = löytää (Dout_dB (1: numpt / 2) == maxdB);
% Span tulosignaalin taajuus kummallakin puolella
% span = 5;
span = max (round (numpt/200), 5);
% Approximate haku span varten harmonisten kummallakin puolella
spanh = 2;
% Määritetään teho spektrin
spectP = (abs (Dout_spect )).*( abs (Dout_spect));
% Etsi DC offset teho
PDC = summa (spectP (1: span));
% Uuteöljyt yleinen signaalin teho
Ps = summa (spectP (fin-span: fin span));
% Vektori / matriisi säilyttäminen sekä taajuus ja teho signaali ja harmonisten
Fh = [];
%
1. osa vektorihyönteisten / matriisi edustaa signaali, seuraava osa edustaa
%
2. harmoninen jne.
Ph = [];
% Etsi harmoninen taajuudet ja teho-komponentit, FFT spektrin
varten har_num = 1:10
% Input ääniä enemmän kuin fSAMPLE ovat aliased takaisin taajuuksien
sävy = rem ((har_num * (FIN-1) 1) / numpt, 1);
jos sävy> 0.5
% Input ääniä enemmän kuin 0,5 * fSAMPLE (kun aliakset) on otettu
sävy = 1-tone;
loppu
Fh = [Fh sävy];
% Tämän menettelyn työtä, varmistaa taivutettuja korkea jotta harmonisten eivät ole päällekkäisiä
% ja DC tai signaali tai alempi jotta harmonisten
har_peak = max (spectP (pyöreä (sävy * numpt)-spanh: pyöreä (sävy * numpt) spanh));
har_bin = löytää (spectP (pyöreä (sävy * numpt)-spanh: pyöreä (sävy * numpt) spanh) == har_peak);
har_bin = har_bin round (sävy * numpt)-spanh-1;
Ph = [Ph summa (spectP (har_bin-1: har_bin 1))];
loppu
% Määritetään yhteensä vääristymistä teho
Pd = summa (Ph (2:5));
% Määritetään melu teho
Pn = summa (spectP (1: numpt / 2))-PDC-Ps-Pd;
muodossa;
A = (max (koodi)-min (koodi))
% / 2 ^ numbit
ADB = 20 * log10 (A)
SINAD = 10 * log10 (Ps / (Pn Pd))
SNR = 10 * log10 (Ps / Pn)
DISP (THD lasketaan
2. kautta 5th jotta harmonisten ');
THD = 10 * log10 (Pd / Ph (1))
SFDR = 10 * log10 (Ph (1) / max (Ph (2:10)))
DISP ( "Signal & Harmoninen Power Komponentit: ');
HD = 10 * log10 (Ph (1:10) / Ph (1))
% Erottaa kaikki harmonisten paikoissa on FFT plot
pitää kiinni;
plot (Fh (2) * fclk, 0, 'mo', Fh (3) * fclk, 0, "CX", Fh (4) * fclk, 0, "r ", Fh (5) * fclk, 0, "g * ', Fh (6)

* fclk, 0, "bs, Fh (7) * fclk, 0," bd, Fh (* fclk, 0, "kv", Fh (9) * fclk, 0, "y ^ ');
legenda (1 kpl ",
2 nd ','3 rd','4 th ','5 th','6 th ','7 th", "8 th','9 th ');
% pidä poisto;
% Dynamic-Range eritelmiä, TTIMD
% Kaksisävyinen IMD voi olla hankala mittaamista, koska muita tarvittavia laitteita (a

teho combiner yhdistää kaksi panos taajuudet) voivat osaltaan ei-toivottuja Intermodulation

tuotteet, joita väärentää ja ADC:
n Intermodulation vääristyminen.Sinun on seuraavat

edellytyksiä optimoida IMD suorituskykyä, vaikka ne tekevät valinnan oikea syöttö

taajuudet yksi ikävä tehtävä.
% Ensinnäkin Syöttöparametrin äänet on laskettava osaksi passband järjestelmään tallentaminen suodatin.Jos nämä äänet ovat

lähellä toisiaan (useita kymmeniä tai satoja kilohertsin varten megahertsin kaistanleveys), joka

asianmukaista ikkuna-toiminto on valittu hyvin.Sijoitus niitä liian lähellä toisiaan,

voivat kuitenkin sallia, että valta combiner väärentää yleistä IMD lukemat osallistumalla

ei-toivottuja 2.-ja 3.-order IMD tuotteet (riippuen panos ääniä "sijaintiin, joka on

passband).Spacing Syöttöparametrin äänet liian kaukana toisistaan, voi pyytää eri ikkunassa tyypin

on pienempi taajuus päätöslauselmaa.
% Käyttöönotto edellyttää lisäksi vähintään kolmen vaiheen sisämaajäsenvaltioille signaali generaattorit.Tämä vaatimus

harvoin aiheuttaa ongelmia testi labs, mutta generaattorit on erilaiset valmiudet

vastaava taajuus ja amplitudi.Kompensoivien tällainen epäsuhta saavuttamiseksi (esimerkiksi) a --

0.5dB FS kaksisävyinen määrärahavarauksesta ja signaali laajuuksien of-6.5dB FS lisätä ponnisteluja ja

testi (ks. alla oleva ohjelma-koodi uuttamista).
% Saat TTIMD, käytä seuraavaa lyhyt rutiini, normalisoidu to-6.5dB täysimittaisia.
% plot ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB-6,5);
plot ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB);
grid on;
title ( 'FFT PLOT');
xlabel ( "ANALOG INPUT TAAJUUS (MHz) ');
ylabel ( 'Amplitudi (dB)');
a1 = akselin suuntaan; axis ([a1 (1) a1 (2) -120 a1 (4)]);

Kanisteri u auttaa minua kuinka ruokkia bittiä D0 .... D8 tähän koodi ..

 

Welcome to EDABoard.com

Sponsor

Back
Top