Forums › SM Series Discussions › Calibration/Correction in MATLAB I/Q Data › Reply To: Calibration/Correction in MATLAB I/Q Data
MZhan
Code is below:
sm = SMIQReceiver(‘Networked’, ‘192.168.2.10’);
fprintf(‘Open Status: %s\n’, sm.getstatusstring());
fprintf(‘SN = %d\n’, sm.SerialNumber);
captureDuration = 10e-3;
sm.CenterFrequency = 2.4e9;
sm.DecimationFactor = 2;
sm.SoftwareFilterEnabled = 1;
sm.Bandwidth = sm.samplerate() * 0.8;
sm.RefLevel = 0;
sm.PreselectorEnabled = 0;
sm.OutputFormat = ‘non-interleaved’;
Fs = sm.samplerate();
captureSamps = sm.samplerate() * captureDuration;
sm.start();
iqData = sm.recv(captureSamps, true);
correction = sm.getcorrection();
sm.stop();
RBW = 100e3;
NFFT = round(Fs/RBW);
freq = [-floor(NFFT/2) : ceil(NFFT/2)-1] * Fs/NFFT;
freq = freq(1:NFFT) + sm.CenterFrequency;
Pxx = fftshift(pwelch(iqData, NFFT, NFFT/2, NFFT, Fs));
power = 10*log10(Pxx*RBW);
plot(freq, power)
