Measuring bandwidth/bode plot DS1074Z/SDG2042X - Page 1
Forum section: electronics / beginners

author: kim.dd
author_rank: Newbie
timestamp: November 10, 2018, 11:45:07 am
content: Hi all I am playing arround with a Siglent SDG2042X and a DS1074Z.I was trying to create a bode plot script in scilab, but was getting unexpected data.So what I did was hookup the siggen on the Rigol and measure the response from 1..100MHz in 1Mhz steps:Cable 1 is the one included with the SDG2042X.Cable 2 is from Batronix CFL200.Drop down at the end is about -10db/decade arround the -3db point.Both devices are unlocked to maximum bandwidth.Is this because I didn't terminate (50ohm) at the scope end? I didn't expect this below 100MHz.Or did unlock backfire and is the DS1074Z defaulting to 50Mhz (system info shows DS1104Z and option for bandwidth 100mhz offcial).The SDG2042X normally has a bandwidth for sines of 40MHz, but is unlocked and shows SDG2122X and allows upto 120MHz.Scilab script:Code:clear;format("v",20);// Cable 1 => Siglent SDG 2042X included cable, markings 3D-FB// Cable 2 => Batronix BNC-Cable CLF200, 50 Ω, 1m, markings CLF-200 LOW LOSS 50 OHM COAXIAL CABLE// 0 => SDG2042X:CH1->DS1074Z:CH1 (Cable 1), SDG2042X:CH2->DS1074Z:CH2 (Cable 2)// 1 => SDG2042X:CH1->DS1074Z:CH2 (Cable 1), SDG2042X:CH2->DS1074Z:CH1 (Cable 2)// 2 => SDG2042X:CH2->DS1074Z:CH1 (Cable 1), SDG2042X:CH1->DS1074Z:CH2 (Cable 2)swap = 2;[status, deviceAddrs] = findAllInstruments();[status, defaultRM] = viOpenDefaultRM();[status, wavegen_id] = viOpen( defaultRM, deviceAddrs(1), viGetDefinition("VI_NULL"), viGetDefinition("VI_NULL"));[status, scope_id] = viOpen( defaultRM, deviceAddrs(2), viGetDefinition("VI_NULL"), viGetDefinition("VI_NULL"));[status, count] = viWrite(wavegen_id, "*IDN?");[status, wavegen_idn, count] = viRead(wavegen_id, 255);[status, count] = viWrite(scope_id, "*IDN?");[status, scope_idn, count] = viRead(scope_id, 255);[status, count] = viWrite(wavegen_id, "C1:OUTP LOAD,HZ,PLRT,NOR,WVTP,SINE");[status, count] = viWrite(wavegen_id, "C1:BSWV AMP,1V,OFST,0V,PHSE,0");[status, count] = viWrite(wavegen_id, "C1:BSWV FRQ,10000000HZ");[status, count] = viWrite(wavegen_id, "C1:OUTP ON");[status, count] = viWrite(wavegen_id, "C2:OUTP ON");[status, count] = viWrite(scope_id, ":ACQ:TYPE HRES");[status, count] = viWrite(scope_id, ":CHAN1:BWL OFF");[status, count] = viWrite(scope_id, ":CHAN1:COUP DC");[status, count] = viWrite(scope_id, ":CHAN1:DISP ON");[status, count] = viWrite(scope_id, ":CHAN1:PROB 1");[status, count] = viWrite(scope_id, ":CHAN2:BWL OFF");[status, count] = viWrite(scope_id, ":CHAN2:COUP DC");[status, count] = viWrite(scope_id, ":CHAN2:DISP ON");[status, count] = viWrite(scope_id, ":CHAN2:PROB 1");[status, count] = viWrite(scope_id, ":MEAS:STAT:ITEM VPP,CHAN1");[status, count] = viWrite(scope_id, ":MEAS:STAT:ITEM VPP,CHAN2");[status, count] = viWrite(scope_id, ":MEAS:STAT:ITEM RPH,CHAN12");function set_freq(f)disp(string(f));[status, count] = viWrite(wavegen_id, strcat(["C1:BSWV FRQ,",string(f),"HZ"]));[status, count] = viWrite(scope_id, strcat([":TIM:MAIN:SCAL ",string(0.5/f)]));sleep(2500);[status, count] = viWrite(scope_id, ":MEAS:STAT:RES");sleep(250);endfunctionfunction value = get_vpp1()[status, count] = viWrite(scope_id, ":MEAS:ITEM? VPP,CHAN1");[status, value, count] = viRead(scope_id, 255);value = strtod(value);endfunctionfunction value = get_vpp2()[status, count] = viWrite(scope_id, ":MEAS:ITEM? VPP,CHAN2");[status, value, count] = viRead(scope_id, 255);value = strtod(value);endfunctionfunction value = get_phase12()[status, count] = viWrite(scope_id, ":MEAS:ITEM? RPH,CHAN12");[status, value, count] = viRead(scope_id, 255);value = strtod(value);endfunctiondelta = 1000000;n = 100;freq_set = zeros(n,1);amp1 = zeros(freq_set);amp2 = zeros(freq_set);amp1_db = zeros(freq_set);amp2_db = zeros(freq_set);phase = zeros(freq_set);for k=1:nfreq_set(k) = delta*k;set_freq(freq_set(k));amp1(k) = mean([get_vpp1(),get_vpp1(),get_vpp1()]);amp2(k) = mean([get_vpp2(),get_vpp2(),get_vpp2()]);phase(k) = mean([get_phase12(),get_phase12(),get_phase12()]);amp1_db(k) = 20.0*log10(amp1(k)/1);amp2_db(k) = 20.0*log10(amp2(k)/1);end[status, count] = viWrite(wavegen_id, "C1:OUTP OFF");[status, count] = viWrite(wavegen_id, "C2:OUTP OFF");viClose(wavegen_id);viClose(scope_id);viClose(defaultRM);if ( swap == 0 ) thenscf();plot2d("ln",freq_set/1000000,amp1_db,2);plot2d("ln",freq_set/1000000,amp2_db,5);xlabel("Frequency ");ylabel("Amplitude ");title("Frequency sweep");legend(["SDG2042X:CH1->DS1074Z:CH1 (Cable 1)";"SDG2042X:CH2->DS1074Z:CH2 (Cable 2)"],"in_lower_left");set(gca(),"grid",[1 1]);elseif ( swap == 1 ) thenscf();plot2d("ln",freq_set/1000000,amp2_db,2);plot2d("ln",freq_set/1000000,amp1_db,5);xlabel("Frequency ");ylabel("Amplitude ");title("Frequency sweep");legend(["SDG2042X:CH1->DS1074Z:CH2 (Cable 1)";"SDG2042X:CH2->DS1074Z:CH1 (Cable 2)"],"in_lower_left");set(gca(),"grid",[1 1]);elseif ( swap == 2 ) thenscf();plot2d("ln",freq_set/1000000,amp1_db,2);plot2d("ln",freq_set/1000000,amp2_db,5);xlabel("Frequency ");ylabel("Amplitude ");title("Frequency sweep");legend(["SDG2042X:CH2->DS1074Z:CH1 (Cable 1)";"SDG2042X:CH1->DS1074Z:CH2 (Cable 2)"],"in_lower_left");set(gca(),"grid",[1 1]);end

author: kim.dd
author_rank: Newbie
timestamp: November 13, 2018, 08:30:59 pm
content: Did the measurement again now with 50ohm termination at the scope terminals:Both cables now perform the same... still similar bandwidth response.