Keysight E4428C ESG RF Programming Manual page 156

Signal generators
Table of Contents

Advertisement

Programming Examples
LAN Programming Interface Examples
% [corrFilter] = loadPsaEqFilter(psaDev[, destRate])
% Reads out the current Equalization filter active on the PSA specified.
% The communication is over TCP-IP (LAN).
% destRate is assumed to be 125e6 if missing
% Example: [corrFilter] = loadPsaEqFilter('psa4')
% output of corrFilter is in time domain.
% NOTE: The equalization filter feature in the PSA Digital Modulation
% Modulation Analysis mode must be ON for this script to work.
% It can be set to EQ Hold ON.
%
% Typically followed with something like:
%
writeMxgFir('a-n5182a-00211', 'EQ_1GHZ_62MHZ', corrFilter);
if (nargin<1 || nargin>2)
error('[corrFilter] = loadPsaEqFilter(psaDev[, destRate]) -- destRate is assumed to be 125e6 if
missing');
end
if (nargin<2)
destRate=125e6;
end
% contact PSA using LAN
t=tcpip(psaDev, 5025);
t.OutputBufferSize=1*1024*1024;
t.InputBufferSize=1*1024*1024;
fopen(t);
fprintf(t, ':FETCh:EVM9?\n');
magDb = readArrayOfDoubles(t);
fprintf(t, ':FETCh:EVM10?\n');
phaseDeg = readArrayOfDoubles(t);
fprintf(t, ':FETCh:EVM21?\n');
xSteps = readArrayOfDoubles(t);
fclose(t);
freqStep = xSteps(1 + 9*2 + 1);
oversample = 1/xSteps(1 + 8*2 +1);
% /10 compensates for issue with PSA (should be /20)
% this issue will be corrected in a future release
linmag = 10.^(magDb./10);
% *2 compensates for issue with PSA (should be *1)
% this issue will be corrected in a future release
phaseRad = phaseDeg./(360/(2*pi)).*2;
coeffs = linmag.*cos(phaseRad)+j*linmag.*sin(phaseRad);
rate = oversample*round(freqStep*length(coeffs)); % frequency range is also rate
% we now have a centered frequency domain version of the channel response
% invert so that we will cancel the channel response
148
Keysight Signal Generators Programming Guide

Advertisement

Table of Contents
loading

Table of Contents