Thank you for your help @Zack and @andrewback.
I’m sharing an example script for Matlab to transmit a Single Side Band Suppressed Carrier (SSBSC) signal:
% Waveform example: Single Side Band Suppressed Carrier (SSBSC) signal.
N = 1000; % Number of points in the waveform
T = 101;
phi = (2piT/N)[0:N-1]; %Instantaneous Phase. LimeSDR’s Sample_Rate(T/N) determines the frequency offset from the carrier.
I = cos(phi); Q = sin(phi);
% Construct a single array with Interleaved IQ data
waveform(1:2:2N) = I;
waveform(2:2:2N) = Q;
%Normalization of the signal (+/-1), scaling to full range of the DAC with 16 bit representation.
waveform = round(waveform * (32767 / max(abs(waveform))));
% Create file
myfile = fopen(‘samples_matlab.wfm’, ‘w’);
% Write samples to file in big endian format.
written = fwrite(myfile, waveform, ‘int16’, ‘ieee-be’);
Once the file is loaded in FPGA Controls, there are times when the signal appears wrong in the FFT viewer. In that case:
- Stop the transmission and send the a signal from the GUI (the OneTone signal in the FPGA Controls or the NCO-generated signal in TxTSP).
- Stop the test signal transmission and play the custom signal again.
I upload a screenshot of the custom signal.