Author Topic: Siglent SDG6000X series 200-500 MHz AWG's  (Read 93989 times)

joseangel, Name00 and 3 Guests are viewing this topic.

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #425 on: April 18, 2023, 09:41:35 am »
Hi guys,

I had made measurements of the FM for HPW, and I noticed a very strange behavior of the SDG6022X.

Initial values:

Modulation: PM
Carrier: square wave 10MHz
Modulation: 1 degree
Modulation frequency: sine 100Hz
Level: 0dBm

See also attached photo of SDG6022X.

Situation: about 60 seconds after switching on channel 1, the spectrum changes and then stays that way. If I now switch on channel 2, the spectrum is normal again. That again for about 60 seconds. (Nothing is connected to channel 2)
This is independent of whether the channels are phase-locked or not.

I have attached two screenshots of the SA with the spectrum which is OK and then another spectrum which is weird after 60 seconds.
And I've tried attaching a video showing the behavior, but it doesn't work.

Does anyone have an explanation for this or is it an error in the modulation of the SDG6022X?

Have a nice day
Detlev
« Last Edit: April 18, 2023, 10:37:56 am by Detlev »
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #426 on: April 18, 2023, 10:31:33 am »
Is the modulation signal a square wave, too, or a sine wave?
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #427 on: April 18, 2023, 10:37:25 am »
I modulated with 100Hz sine (I just added it above)
This post is "Made in Germany" 😎
 

Online tautechTopic starter

  • Super Contributor
  • ***
  • Posts: 28391
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #428 on: April 18, 2023, 10:44:22 am »
Looks like FFT analyser mode with Harmonics turned to ON in the AWG.
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #429 on: April 18, 2023, 10:54:49 am »
Looks like FFT analyser mode with Harmonics turned to ON in the AWG.

I am not aware that I have changed something in the SDG6022X. Where can I find this?

Then another question, why after 60-65 seconds?
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #430 on: April 18, 2023, 11:48:37 am »
How does the same modulation look with a sine wave carrier?
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #431 on: April 18, 2023, 12:11:11 pm »
clean, anytime. I've also tested with sine/rectangle modulated carrier and have never had any problems here.

This from above is always reproducible
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #432 on: April 18, 2023, 12:57:29 pm »
PM with sine carrier looks plausible. With the square wave, both images look IMO strange.
How does the PM modulated square wave spectrum look over the full 0...Nyquist (150MHz?) span?
Edit: Sorry, it's a 6000, then Nyquist is higher.
« Last Edit: April 18, 2023, 01:03:26 pm by gf »
 

Offline hpw

  • Frequent Contributor
  • **
  • Posts: 366
  • Country: 00
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #433 on: April 18, 2023, 01:11:29 pm »
PM with sine carrier looks plausible. With the square wave, both images look IMO strange.
How does the PM modulated square wave spectrum look over the full 0...Nyquist (150MHz?) span?
Edit: Sorry, it's a 6000, then Nyquist is higher.

Important to not mix FM & PM behavior(s) of the Siglent... my SDG2082x is even worst on SWPM (Square Wave Phase Modulation)

So currently on Octave :palm: as it is not my friend. As a simple sine/square FM/PM 10MHz at Sine 100Hz 1Hz/1° ...
Octave to get an other independent result for my reference table.

See below as 10MHz SWPM, Sine 100Hz, 1°  :-DD .... and if 10MHz Carrier as 28Hz lower any different  :palm:

BTW: As I can tell the KS Company did there own homework...  :-+

« Last Edit: April 18, 2023, 01:14:10 pm by hpw »
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #434 on: April 18, 2023, 01:37:19 pm »
I have extended the spectrum to 1.5GHz
This post is "Made in Germany" 😎
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #435 on: April 18, 2023, 02:04:05 pm »
and here the spectrum square wave 10MHz unmodulated
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #436 on: April 18, 2023, 05:42:05 pm »
In the large scale, the modulated spectrum looks actually plaussible up to ~500MHz.
Don't know what's the "real" sample rate? 1200 or 2400 MSa/s?
If it is 1200, then the cut-off beyond 500 MHz is to be expected, and about -34dBc at 500 Mhz is expected too, for a 10 MHz square wave.

The unmodulated spectrum does not look like a square wave spectrum, but it lacks high-frequency contents.
Were different rise/fall times configured for the modulated and unmodulated test case?
Maybe you can check the waveforms and the rise times with a scope?

There are even carrier harmonics present, which are unexpected for a square wave. However their amplitudes are relatively low.



Please find attached the spectrum I would expect for a 10 MHz square wave, properly band-limited to 480 MHz (=> -120dBc at 600 MHz), and then PM-modulated with 1° deviation and a 1kHz sine wave signal. Sorry can't use 100 Hz, as this would require 10x more samples, and Gnuplots runs out of memory then. For the same reason I also can't use a smaller RBW, therefore the lobes in the zoom-in images are pretty wide. But each lobe represents just a single frequency line, not a spread spectrum.



EDIT: Updated images. Noticed that the given frequency plan allows a rectangular window w/o introducing leakage. This enables a narrower RBW for the spectrum plot.
EDIT: Added script which generates the plot
EDIT: 2023-04-27 Did a couple of script enhancements
    - square wave edges can be shaped according to given rise time and shaping method
    - alternative band-limiting methods (FIR requires too many taps)
    - minimize required FFT resolution and size
    - plot the (rise/fall-time adjusted and bandwidth limited) wavetable which is then re-sampled via DDS
    - find and print peaks



Code: [Select]
pkg load signal
more off

k = 1000
M = 1E6

fc = 10*M           % carrier freq [Hz]
waveform = "square" % square/sine
edges = "gaussian"  % gaussian/sinc/sinc2/sinc3 (only for square wave)
risetime = 0        % risetime [s] (only for square wave)
%risetime = 2e-9    % SDG6000X ?
%risetime = 8.4e-9  % SDG2000X ?

modulation = "PM"   % FM/PM/none
fmod = 1*k          % modulating signal (sine) frequency [Hz]
df = 1              % FM frequency deviation [Hz]
dp = 1              % PM phase deviation [degrees]

fs = 1200*M         % DDS sample rate [Sa/s]
%fs = 300*M         % DDS sample rate [Sa/s]
bandlimit = "RC"    % RC/brickwall/FIR
BW = 0.4*fs         % must be < 0.5*fs (for RC and FIR)
ndds = 4*1024*1024  % wavetable size

%-------------------------------------------------------------

% Find reasonable binsize and fftsize
% Try to use wider bins and rectangular window if possible
% without leakage, use narrower bins and Kaiser window otherwise.
% Quantiize frequencies to fix floating point inaccuracies.
fs = floor(fs*1024+0.5)/1024;
fc = floor(fc*1024+0.5)/1024;
fmod = floor(fmod*1024+0.5)/1024;
if mod(2*fc,fmod) == 0 && mod(2*fs,fmod) == 0
  binsize = fmod/2
  fftsize = 2*fs/fmod
  window = "rect"
  RBW_3dB = 0.88*binsize
else
  fftsize = floor(10*fs/fmod+0.5)
  binsize = fs/fftsize
  window = "kaiser"
  RBW_3dB = 2.24*binsize
end

% waveform prototype, amplitude 1 units peak
if strcmp(waveform,"square")
  wavetable = [-ones(1,ndds/2) ones(1,ndds/2)] * sqrt(0.5);
elseif strcmp(waveform,"sine")
  wavetable = sin([0:ndds-1]*(2*pi/ndds));
else
  error ("Illegal waveform");
end

% edge shaping for square wave
shaper = [ 1 zeros(1,ndds-1) ];
if strcmp(waveform,"square") && risetime > 0
  if strcmp(edges,"gaussian")
    % Gaussian shaper (80% center quantile is 1.2816*sigma)
    shaper = ifftshift(gausswin(ndds,1.2816/fc/risetime)');
  elseif strcmp(edges,"sinc")
    % sinc shaper (moving average)
    shaper = ones(1,floor(1.25*risetime*fc*ndds));
    shaper = [ shaper zeros(1,ndds-length(shaper)) ];
  elseif strcmp(edges,"sinc2")
    % sinc^2 shaper
    shaper = ones(1,floor(0.905*risetime*fc*ndds));
    shaper = fftconv(shaper,shaper);
    shaper = [ shaper zeros(1,ndds-length(shaper)) ];
  elseif strcmp(edges,"sinc3")
    % sinc^3 shaper
    shaper = ones(1,floor(0.76*risetime*fc*ndds));
    shaper = fftconv(fftconv(shaper,shaper),shaper);
    shaper = [ shaper zeros(1,ndds-length(shaper)) ];
  else
    error ("Illegal shaper");
  end
  shaper /= sum(shaper);
else
  shaper = [ 1 zeros(1,ndds-1) ];
end

% band-limit samples in wavetable and apply shaper
if strcmp(bandlimit,"RC")
  % apply raised cosine roll-off BW...0.5*fs
  low = BW/fc;
  high = 0.5*fs/fc;
  idx = [ceil(low):1:floor(high)];
  WT = fft(wavetable).*fft(shaper);
  WT(idx) .*= cos((idx-low)/(high-low)*pi/2);
  WT(ceil(high)+1:end-ceil(high)) = 0;
  WT(ndds/2+2:end) = conj(fliplr(WT(2:ndds/2)));
  wavetable = real(ifft(WT));
elseif strcmp(bandlimit,"brickwall")
  % apply ideal brickwall at Nyquist
  keep = floor(0.5*fs/fc);
  WT = fft(wavetable).*fft(shaper);
  WT(keep+1:end-keep) = 0;
  wavetable = real(ifft(WT));
elseif strcmp(bandlimit,"FIR")
  % FIR filter with BW...0.5*fs transition
  % band and 120dB stopband attenuation
  [n,Wn,beta,ftype] = kaiserord([BW/ndds/fc 0.5*fs/ndds/fc], [1 0],  [0.001 0.000001], 1);
  if n+1>ndds
    error("Too many filter taps required, choose a different 'bandlimit' method")
  end
  taps = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
  taps = [ taps zeros(1,ndds-length(taps)) ];
  wavetable = real(ifft(fft(wavetable).*fft(taps).*fft(shaper)));
else
  error("Illegal bandlimiting method")
end

% modulation signal (sine)
mod_signal = sin(2*pi*fmod*[0:fs/fmod-1]/fs);
mod_signal = repmat(mod_signal,1,ceil(fftsize/length(mod_signal)))(1:fftsize);

% generate modulated carrier via DDS
if strcmp(modulation,"FM")
  phases = cumsum(ndds/fs*(fc+mod_signal*df));
elseif strcmp(modulation,"PM")
  phases = [0:length(mod_signal)-1]*ndds/fs*fc + mod_signal*ndds*dp/360;
elseif strcmp(modulation,"none")
  phases = [0:length(mod_signal)-1]*(fs*fc/ndds);
else
  error("Illegal modulation")
end
signal = wavetable(1+floor(mod(phases + ndds, ndds)));

% 16-bit quantization
%signal = floor(signal * 32768 + 0.5) / 32768;

% 14-bit quantization
%signal = floor(signal * 8192 + 0.5) / 8192;

% 14-bit quantization + random noise
%signal = floor(signal * 8192 + 0.5 + 0.5*randn(1,length(signal))) / 8192;

% Window function for FFT
if strcmp(window,"kaiser")
  w = kaiser(length(signal)+1,17)(1:end-1)';
else
  w = ones(1, length(signal));
end
w /= mean(w);

% plot spectrum
frequencies = [0:length(signal)-1]*fs/length(signal);
magnitude = abs(fft(signal.*w)/length(signal)*2);
figure 1
clf
plot(frequencies/M,20*log10(magnitude+1e-12))
grid on
title(sprintf("%s, deviation %g°, fc=%gMHz (square), fmod=%gkHz (sine)", modulation, dp, fc/M, fmod/k))
xlabel("MHz")
ylim([-100 5])
xlim([0 0.5*fs/M])
%xlim([10-0.007 10+0.007])    % zoom-in to 10MHz
%xlim([450-0.007 450+0.007])  % zoom-in 450 MHz

% plot wavetable
figure 2
clf
plot([0:ndds-1]/(fc*ndds*1e-9),wavetable)
title("Wavetable")
xlabel("ns")
grid on

% find and print peaks > -120dB
idx = 2:length(signal)/2-1;
peaks = find(frequencies(idx)<=BW &
             magnitude(idx)>1e-6 &
             magnitude(idx)>magnitude(idx-1) &
             magnitude(idx)>magnitude(idx+1)) + 1;
for f = peaks
  printf("peak: %10.6f MHz: %6.1f dB\n",frequencies(f)/M,20*log10(magnitude(f)+1e-12));
end
« Last Edit: April 29, 2023, 08:34:49 am by gf »
 
The following users thanked this post: Detlev

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #437 on: April 18, 2023, 06:12:07 pm »
It's the SDG6022X,  200MHz / 2.4GSa/s

I've attached a screenshot of the unmodulated square wave. SDG to RTB with 50 Ohm termination

I can also make the spectra the same again with a 1kHz modulation
This post is "Made in Germany" 😎
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #438 on: April 18, 2023, 06:33:58 pm »
Here again the spectra with 1kHz sine modulation at the 10MHz square wave carrier

Here, too, the additional spectral lines appear after around 60s.
This post is "Made in Germany" 😎
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #439 on: April 18, 2023, 07:06:53 pm »
It's the SDG6022X,  200MHz / 2.4GSa/s

I've attached a screenshot of the unmodulated square wave. SDG to RTB with 50 Ohm termination

I can also make the spectra the same again with a 1kHz modulation

somehow the forum messed up the picture, I'll upload it again tomorrow
This post is "Made in Germany" 😎
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #440 on: April 19, 2023, 07:14:21 am »
It's the SDG6022X,  200MHz / 2.4GSa/s

I've attached a screenshot of the unmodulated square wave. SDG to RTB with 50 Ohm termination

I can also make the spectra the same again with a 1kHz modulation

here hopefully with the correct picture
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #441 on: April 19, 2023, 10:16:55 am »
Here again the spectra with 1kHz sine modulation at the 10MHz square wave carrier

Both don't look correct. IMO the sidebands below and above the 10MHz fundamental should look the same as with a 10MHz sine wave carrier PM-modulated with 1kHz sine (at least as long as the deviation and modulation frequency are low enough, so that the side bands of the square wave harmonics don't overlap - which is granted with the given frequency plan).
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #442 on: April 19, 2023, 10:27:32 am »
Here again the spectra with 1kHz sine modulation at the 10MHz square wave carrier

Both don't look correct. IMO the sidebands below and above the 10MHz fundamental should look the same as with a 10MHz sine wave carrier PM-modulated with 1kHz sine (at least as long as the deviation and modulation frequency are low enough, so that the side bands of the square wave harmonics don't overlap - which is granted with the given frequency plan).

The second spectrum is definitely broken. That only occurs after the delay and this is where the SDG6022X has a problem.

The first would be interesting to simulate. I'm in the process of getting used to Octave.
This post is "Made in Germany" 😎
 

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #443 on: April 19, 2023, 10:47:19 am »
I once tried to upload a video of this problem to Youtube. Here you can see how the spectrum changes without doing anything and after activating the second channel, everything is ok again... for around 60 seconds

EDIT: Remove the link to the Video. Reason: The Problem ist solved in the Firmware V6.01.01.36R3
« Last Edit: April 21, 2023, 02:59:14 pm by Detlev »
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #444 on: April 19, 2023, 10:57:09 am »
The first would be interesting to simulate. I'm in the process of getting used to Octave.

See plots in this earlier message.
If you want I can also attach the script which generated the plot. Eventually I went the simple DDS way, but used enough resolution and a big wavetable to keep DDS spurs below -130dBc, and the square wave gets properly band-limited with -120dB stop band attenuation at Nyquist, so that the DDS re-sampling does not noticeably suffer from aliasing.
« Last Edit: April 19, 2023, 10:59:05 am by gf »
 
The following users thanked this post: Detlev

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #445 on: April 19, 2023, 11:01:14 am »
very happy, then I have more to open in Octave  :)
This post is "Made in Germany" 😎
 

Online gf

  • Super Contributor
  • ***
  • Posts: 1186
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #446 on: April 19, 2023, 12:38:03 pm »
Added the script to this message.
 
The following users thanked this post: Detlev

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #447 on: April 21, 2023, 02:57:24 pm »
Hello everyone,

good news on the SDG6022X. Today I installed the current firmware (V6.01.01.36R3) and the problems with the modulation are fixed (bevore the 6.01.01.36 was installed).

So far I had avoided this firmware version because there is a problem with the external reference. When the AWG is turned on, the setting that the external reference is active is lost.

It says in the release notes

Quote from: Siglent SDG6000X Release Notes
Fixed bug in FM modulation on square waveform

and that made me curious. Now it looks much better and the problem that the spectrum changes after 60 seconds has been fixed.

Since the frequency of the generator is now adjusted, I can live with the fact that the external reference is not active after switching on.

Greetings and a nice Weekend
Detlev
This post is "Made in Germany" 😎
 
The following users thanked this post: 2N3055

Offline Detlev

  • Regular Contributor
  • *
  • Posts: 54
  • Country: de
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #448 on: May 11, 2023, 02:57:25 pm »
Since Siglent has improved the phase noise of the external reference in the new firmware 6.01.01.36R3, I measured the phase noise again here.

I made one measurement with the internal reference and one measurement with the external reference (Leo Bodnar GPSDO). Both are attached as an image. The values now look almost identical.

Greetings from rainy Germany
Detlev
This post is "Made in Germany" 😎
 
The following users thanked this post: 2N3055

Offline mathstudi

  • Contributor
  • Posts: 32
  • Country: ch
Re: Siglent SDG6000X series 200-500 MHz AWG's
« Reply #449 on: September 01, 2023, 02:34:19 pm »
Hi,
I am planning to buy a Siglent SDG6000X. As I read here in the forum, most of the bugs have been fixed. Since the SDG6000X has been on the market for about 5 years, I wonder if there will be a successor in the near future.

Cheers
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf