Generating I and Q modulation data
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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!!
0 commentaires
Réponses (1)
Soumya
le 31 Jan 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;
0 commentaires
Voir également
Catégories
En savoir plus sur Modulation dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!