Generating I and Q modulation data

15 visualizaciones (últimos 30 días)
Yashas Lakshminarasimhaiah Rajendra
Respondida: Soumya el 31 de En. de 2025
Hi everyone,
I am developing a transmitter and would like to test the same with the help of modulated waveforms. I am considering developing a simple OTFS modulated waveform, and from this generate a text files with I and Q data that can be used with keysight ADS and measuring equipment.
Could someone give me a basic overview of how this can be done?
Thank You!!

Respuestas (1)

Soumya
Soumya el 31 de En. de 2025
Hi,
To start with OTFS(Orthogonal Time Frequency Space),we have to first define the parameters required like number of delay bins, doppler bins, modulation order and frequency. As real communication signal would have random bits, so we create random input data and map it to the QAM constellation. QAM can be applied through “qammod” functions. We reshape the QAM into a grid representing delay-Doppler domain. Then, perform ISFFT along both the delay bins and Doppler bins using “ifft” and “ifftshift” function. Finally, we can convert it into time domain and extract the inphase using “real” and quadrature using “imag” functions. Convert each of them to a txt file or csv file and use it in keysight ADS and other equipments. You can refer to the following documentations for any further reference:
You can refer to the following code for reference:
% OTFS Modulation Parameters
noSubcarr = 32; % Number of subcarriers (delay bins)
noofSymbols = 32; % Number of symbols (Doppler bins)
modOrder = 16; % 16-QAM
% Random data symbols for 16-QAM
data = randi([0 modOrder-1], noSubcarr * noofSymbols, 1);
qamSymbols = qammod(data, modOrder, 'UnitAveragePower', true);
% Reshape data into a delay-Doppler grid
dDGrid = reshape(qamSymbols, noSubcarr, noofSymbols);
% Perform Inverse Symplectic Finite Fourier Transform (ISFFT)
txWaveform = ifft(ifftshift(dDGrid, 1), [], 1);
txWaveform = fftshift(ifft(txWaveform, [], 2), 2);
I = real(txWaveform(:));
Q = imag(txWaveform(:));
writematrix([I, Q], 'OTFS_IQ_Data.txt', 'Delimiter', 'tab');
figure;
plot(I, Q, 'o');
title('OTFS Modulated Waveform');
xlabel('In-phase (I)');
ylabel('Quadrature (Q)');
grid on;

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by