J
jeniffer
Guest
Bok svima,
Ja sam težak to simulirati ADC za SFDR, SNR, THD i SNDR.U Matlab kod je priložen kao ispod.Ja sam novi u Matlab i ne može u potpunosti razumjeti program.
Za simulaciju, ja ulazni signal niske frekvencije sinewave i ADC je trčanje na 50Ms / s.Trebam li uzeti izlaz iz ADC ili trebam spojiti izlazna ADC da idealno DAC i koristiti izlaz iz tog ideal DAC i pokrenite program ispod?(1) Može li netko objasniti programa u nastavku.
% Pedalj od ulaznih Frekv na svakoj strani
span% = 5;
raspon = max (okrugli (numpt/200), 5);
(2) Kada pokrenete program, to pokazuje pogrešku i ne znam kako to popraviti!Može netko ispravan program ispod koje će se koristiti u 10-bitni ADC frekvencija takta na 50MHz.
Cijenim bilo koji pomaže.************************************************** ********************
%------------------------------------------------- %
%% Matlab koda za izračunavanje SNR, SNDR, THD SFDR
%% Datum:
11. srpnja 2005
%% rev: 1
%------------------------------------------------- %
fclk = 80e 6;
numpt = 32;
numbit = 3;
load test.dat;% učitati podatke s diska
a = test ';
N = length (a);
% [M, n] = size (a);% broja podataka
for i = 1:1: N;
c = int2str (a (i));% promijeniti vrstu podataka za cijeli niz vrsta
temp = 0;
Nlength = duljina (c);% dužine niz;
za j = 1:1: Nlength;
d = str2num (c (j)) * 2 ^ (Nlength-j);% binarnih znakova u pro
temp = temp d;
end;
broj (i) = temp;% / numpt * 2,5;
end;
N = length (broj);
% zemljište rezultate u vremensko područje
lik;
zemljište ([1: N], broj);
naslov ( 'TIME DOMAIN ")
xlabel ( 'Uzorci');
ylabel ( 'digitalni izlaz kod ");
xon zoom;
% recenter digitalni sinewave
Dout = (code-(2 ^ numbit-1)) / 2;
% ako ne prozor functionis koriste, ulazni ton mora biti izabrani
% da bude jedinstven i koji se odnose na uzorkovanje freq.To postići
% to, premijera brojevi su uvedeni i ulazni ton
% određuje FIN = fSAMPLE * (Prime Broj / record Data size).
% Opustiti taj uvjet,
prozorske funkcije kao HANNING
% HAMING može biti uveden, ali je temeljna u
% rezultira FFT spektru pojavi "oštriji" bez
% korištenje prozora funkcije.
Doutw = Dout;
% Doutw = Dout .* hanning (numpt);
% Doutw = Dout .* Hammingov (numpt);
% obavljanju FFT
Dout_spect = fft (Doutw, numpt);
% preračunati u dB
Dout_dB = 20 * log10 (ABS (Dout_spect));
% zemljište ([1: N / 2], Dout_dB (1: N / 2));
% prikaz rezultata u frekvencijskom domenu s FFT zemljište
lik;
maxdB = max (Dout_dB (2: numpt / 2));
%% za TTIMD, koristite sljedeći kratki rutinu, normalizirani na-6.5dB
% pune skale.
% zemljište ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB-6,5);
zemljište ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB);
grid on;
naslov (FFT ZEMLJIŠTA ');
xlabel ( 'Analogni ULAZ FREKVENCIJI (MHz)');
ylabel ( 'Amplituda (dB)');
% a1 = axis; axis ([a1 (1) A1 (2) -120 A1 (4)]);
%-----------------------------------------------%
% izračunajte SNR, SINAD, ENOB, THD SFDR i vrijednosti
%-----------------------------------------------%
% pronaći signal bin broj, DC = 1 kanta
FIN naći = (Dout_dB (1: numpt / 2) == maxdB);
% Pedalj od ulaznih Frekv na svakoj strani
span% = 5;
raspon = max (okrugli (numpt/200), 5);
% pribliľna traži span za harmonici na svakoj strani
spanh = 2;
% odrediti spektar snage
spectP = (ABS (Dout_spect )).*( ABS (Dout_spect));
% pronaći offset DC power
PDC = suma (spectP (1: span));
% ekstrakta ukupni signal power
Ps = suma (spectP (FIN-span: span FIN));
% vektor / matric za pohranu oba Frekv i snaga signala i harmonici
FH = [];
%
1. elementa u vektor / matrica predstavlja signal,
% sljedeći element reps
2. harmonik, itd..
PH = [];
% pronaći snage i harmoničko Frekv komponente u FFT spektra
za har_num = 1:10
% ulaznih tonova veći od fSAMPLE su aliased nazad u spektru
ton = Rem ((har_num * (FIN-1) 1) / numpt, 1);
ako je ton> 0,5
% ulaznih tonova veći od 0,5 * fSAMPLE (nakon poduzorkovanje) odražavaju se
ton-ton = 1;
kraj
FH = [FH ton];
% za ovaj postupak na posao, osigurati povratak visoke omotane naručiti harmonici
% ne preklapaju
% s ili DC signal ili niži poredak harmonici
har_peak = max (spectP (okrugli (ton * numpt)-spanh: round (ton * numpt) spanh));
= har_bin pronaći (spectP (okrugli (ton * numpt)-spanh: round (ton * numpt) spanh) == har_peak);
har_bin = har_bin okrugli (ton * numpt)-spanh-1;
PH = [Ph zbroj (spectP (har_bin-1: har_bin 1))];
kraj
% utvrditi ukupan izobličenju napajanja
Pd = suma (pH (2,5));
% odrediti snaga šuma
Pn = suma (spectP (1: numpt / 2))-PDC-PS-Pd;
format;
A = (max (broj)-min (code))
ADB = 20 * log10 (A);
SINAD = 10 * log10 (Ps / (PN Pd));
SNR = 10 * log10 (Ps / PN);
disp ( 'THD se obračunava od
2. do
5. reda harmonici');
THD = 10 * log10 (Pd / Ph (1));
SFDR = 10 * log10 (pH (1) / max (Ph (2:10)));
disp ( 'Signal & Harmonic moć komponente:');
HD = 10 * log10 (pH (1:10) / Ph (1));
ENOB = (SNR-1.7) / 6,0206;
% razlikovao harmonici svih lokacija unutar FFT zemljište
na čekanju;
zemljište (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 (Cool fclk *, 0, 'kv', FH (9) * fclk, 0, 'y ^');
legend ('1 st ','2 nd','3 rd ','4 th', th'5 ','6 th','7 th ', th'8','9 th ');
fprintf ( 'SINAD =% gdB \ n', SINAD);
fprintf ( 'SNR =% gdB \ n', SNR);
fprintf ( '% THD = gdB \ n', THD);
fprintf ( 'SFDR =% gdB \ n', SFDR);
fprintf ( 'ENOB =% g \ n', ENOB);
% dinamički opseg naočale, TTIMD
% dva zvona IMD može biti lukav mjerenja, jer je dodatna oprema
% obavezna (a power combiner za kombiniranje dvije ulazne frekvencije) može pridonijeti
% neželjenih intermodulacijski proizvode na koje se falsifikovati ADC-a intermodualtion
% distortion.You mora pridržavati sljedećih uvjeta da optimizirate IMD
% performansi, iako oni čine odabir ispravnog unosa Frekv jedan
% zamoran zadatak.
% Prvo, ulaznih tonova mora pasti u passband za unos filter.If
% tih tonova bliski zajedno (nekoliko desetaka ili stotina kiloherc za
% megahertz bandwith), odgovarajući prozor funkcija mora biti izabran za
% well.Placing ih previše bliski zajedno, međutim,
svibanj omogućiti power combiner
% u ukupnom falsifikovati IMD čitanja koje pridonose neľeljenih
2. i
3.% IMD naručiti proizvode (u zavisnosti od ulaznih tonova 'mjesto unutar
passband%). Razmak ulaznih tonova previše udaljeni svibanj poziv za neku drugu
% prozor tipa koji ima manje Frekv resolution.The setup također zahtijeva od min
% tri fazno zaključan generators.This signal zahtjeva rijetko predstavlja
% problem za test laboratorija, ali generatori imaju različite mogućnosti za
% podudaranje Frekv i amplitude.Compensating takve mismatches postići (za
% primjer) a-0.5dB FS dva-ton omotnica i signal amplitude of-6.5dB FS
% će povećati vaš napor i test vremena (pogledajte sljedeći program-code
% ekstrakcija).
Ja sam težak to simulirati ADC za SFDR, SNR, THD i SNDR.U Matlab kod je priložen kao ispod.Ja sam novi u Matlab i ne može u potpunosti razumjeti program.
Za simulaciju, ja ulazni signal niske frekvencije sinewave i ADC je trčanje na 50Ms / s.Trebam li uzeti izlaz iz ADC ili trebam spojiti izlazna ADC da idealno DAC i koristiti izlaz iz tog ideal DAC i pokrenite program ispod?(1) Može li netko objasniti programa u nastavku.
% Pedalj od ulaznih Frekv na svakoj strani
span% = 5;
raspon = max (okrugli (numpt/200), 5);
(2) Kada pokrenete program, to pokazuje pogrešku i ne znam kako to popraviti!Može netko ispravan program ispod koje će se koristiti u 10-bitni ADC frekvencija takta na 50MHz.
Cijenim bilo koji pomaže.************************************************** ********************
%------------------------------------------------- %
%% Matlab koda za izračunavanje SNR, SNDR, THD SFDR
%% Datum:
11. srpnja 2005
%% rev: 1
%------------------------------------------------- %
fclk = 80e 6;
numpt = 32;
numbit = 3;
load test.dat;% učitati podatke s diska
a = test ';
N = length (a);
% [M, n] = size (a);% broja podataka
for i = 1:1: N;
c = int2str (a (i));% promijeniti vrstu podataka za cijeli niz vrsta
temp = 0;
Nlength = duljina (c);% dužine niz;
za j = 1:1: Nlength;
d = str2num (c (j)) * 2 ^ (Nlength-j);% binarnih znakova u pro
temp = temp d;
end;
broj (i) = temp;% / numpt * 2,5;
end;
N = length (broj);
% zemljište rezultate u vremensko područje
lik;
zemljište ([1: N], broj);
naslov ( 'TIME DOMAIN ")
xlabel ( 'Uzorci');
ylabel ( 'digitalni izlaz kod ");
xon zoom;
% recenter digitalni sinewave
Dout = (code-(2 ^ numbit-1)) / 2;
% ako ne prozor functionis koriste, ulazni ton mora biti izabrani
% da bude jedinstven i koji se odnose na uzorkovanje freq.To postići
% to, premijera brojevi su uvedeni i ulazni ton
% određuje FIN = fSAMPLE * (Prime Broj / record Data size).
% Opustiti taj uvjet,
prozorske funkcije kao HANNING
% HAMING može biti uveden, ali je temeljna u
% rezultira FFT spektru pojavi "oštriji" bez
% korištenje prozora funkcije.
Doutw = Dout;
% Doutw = Dout .* hanning (numpt);
% Doutw = Dout .* Hammingov (numpt);
% obavljanju FFT
Dout_spect = fft (Doutw, numpt);
% preračunati u dB
Dout_dB = 20 * log10 (ABS (Dout_spect));
% zemljište ([1: N / 2], Dout_dB (1: N / 2));
% prikaz rezultata u frekvencijskom domenu s FFT zemljište
lik;
maxdB = max (Dout_dB (2: numpt / 2));
%% za TTIMD, koristite sljedeći kratki rutinu, normalizirani na-6.5dB
% pune skale.
% zemljište ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB-6,5);
zemljište ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-maxdB);
grid on;
naslov (FFT ZEMLJIŠTA ');
xlabel ( 'Analogni ULAZ FREKVENCIJI (MHz)');
ylabel ( 'Amplituda (dB)');
% a1 = axis; axis ([a1 (1) A1 (2) -120 A1 (4)]);
%-----------------------------------------------%
% izračunajte SNR, SINAD, ENOB, THD SFDR i vrijednosti
%-----------------------------------------------%
% pronaći signal bin broj, DC = 1 kanta
FIN naći = (Dout_dB (1: numpt / 2) == maxdB);
% Pedalj od ulaznih Frekv na svakoj strani
span% = 5;
raspon = max (okrugli (numpt/200), 5);
% pribliľna traži span za harmonici na svakoj strani
spanh = 2;
% odrediti spektar snage
spectP = (ABS (Dout_spect )).*( ABS (Dout_spect));
% pronaći offset DC power
PDC = suma (spectP (1: span));
% ekstrakta ukupni signal power
Ps = suma (spectP (FIN-span: span FIN));
% vektor / matric za pohranu oba Frekv i snaga signala i harmonici
FH = [];
%
1. elementa u vektor / matrica predstavlja signal,
% sljedeći element reps
2. harmonik, itd..
PH = [];
% pronaći snage i harmoničko Frekv komponente u FFT spektra
za har_num = 1:10
% ulaznih tonova veći od fSAMPLE su aliased nazad u spektru
ton = Rem ((har_num * (FIN-1) 1) / numpt, 1);
ako je ton> 0,5
% ulaznih tonova veći od 0,5 * fSAMPLE (nakon poduzorkovanje) odražavaju se
ton-ton = 1;
kraj
FH = [FH ton];
% za ovaj postupak na posao, osigurati povratak visoke omotane naručiti harmonici
% ne preklapaju
% s ili DC signal ili niži poredak harmonici
har_peak = max (spectP (okrugli (ton * numpt)-spanh: round (ton * numpt) spanh));
= har_bin pronaći (spectP (okrugli (ton * numpt)-spanh: round (ton * numpt) spanh) == har_peak);
har_bin = har_bin okrugli (ton * numpt)-spanh-1;
PH = [Ph zbroj (spectP (har_bin-1: har_bin 1))];
kraj
% utvrditi ukupan izobličenju napajanja
Pd = suma (pH (2,5));
% odrediti snaga šuma
Pn = suma (spectP (1: numpt / 2))-PDC-PS-Pd;
format;
A = (max (broj)-min (code))
ADB = 20 * log10 (A);
SINAD = 10 * log10 (Ps / (PN Pd));
SNR = 10 * log10 (Ps / PN);
disp ( 'THD se obračunava od
2. do
5. reda harmonici');
THD = 10 * log10 (Pd / Ph (1));
SFDR = 10 * log10 (pH (1) / max (Ph (2:10)));
disp ( 'Signal & Harmonic moć komponente:');
HD = 10 * log10 (pH (1:10) / Ph (1));
ENOB = (SNR-1.7) / 6,0206;
% razlikovao harmonici svih lokacija unutar FFT zemljište
na čekanju;
zemljište (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 (Cool fclk *, 0, 'kv', FH (9) * fclk, 0, 'y ^');
legend ('1 st ','2 nd','3 rd ','4 th', th'5 ','6 th','7 th ', th'8','9 th ');
fprintf ( 'SINAD =% gdB \ n', SINAD);
fprintf ( 'SNR =% gdB \ n', SNR);
fprintf ( '% THD = gdB \ n', THD);
fprintf ( 'SFDR =% gdB \ n', SFDR);
fprintf ( 'ENOB =% g \ n', ENOB);
% dinamički opseg naočale, TTIMD
% dva zvona IMD može biti lukav mjerenja, jer je dodatna oprema
% obavezna (a power combiner za kombiniranje dvije ulazne frekvencije) može pridonijeti
% neželjenih intermodulacijski proizvode na koje se falsifikovati ADC-a intermodualtion
% distortion.You mora pridržavati sljedećih uvjeta da optimizirate IMD
% performansi, iako oni čine odabir ispravnog unosa Frekv jedan
% zamoran zadatak.
% Prvo, ulaznih tonova mora pasti u passband za unos filter.If
% tih tonova bliski zajedno (nekoliko desetaka ili stotina kiloherc za
% megahertz bandwith), odgovarajući prozor funkcija mora biti izabran za
% well.Placing ih previše bliski zajedno, međutim,
svibanj omogućiti power combiner
% u ukupnom falsifikovati IMD čitanja koje pridonose neľeljenih
2. i
3.% IMD naručiti proizvode (u zavisnosti od ulaznih tonova 'mjesto unutar
passband%). Razmak ulaznih tonova previše udaljeni svibanj poziv za neku drugu
% prozor tipa koji ima manje Frekv resolution.The setup također zahtijeva od min
% tri fazno zaključan generators.This signal zahtjeva rijetko predstavlja
% problem za test laboratorija, ali generatori imaju različite mogućnosti za
% podudaranje Frekv i amplitude.Compensating takve mismatches postići (za
% primjer) a-0.5dB FS dva-ton omotnica i signal amplitude of-6.5dB FS
% će povećati vaš napor i test vremena (pogledajte sljedeći program-code
% ekstrakcija).