pilot's matrix wrong dimension error , using ofdmmod function
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I am trying to generate an OFDM burst with ofdmmod function ...After defining the matrix with pilot subcarriers getting an error attached below regarding the dimension of the pilots matrix ...Attaching the code here , please advise where the problem
MCS7=64;
nfft=64;
cplen=16;
nSym = 100;
npilot=4;
nantena=1;
pilotIdx = [12 26 40 54]';
nullIdx = [1:6 33 64-4:64]';
numDataCarrs = nfft-length(nullIdx)-length(pilotIdx);
inSig = randi([0 MCS7-1],numDataCarrs,nSym);
pilots = repmat(pskmod((0:MCS7-1).',MCS7),4,nSym,1);
qamSym = qammod(inSig,MCS7,'UnitAveragePower',true);
outSig64 = ofdmmod(qamSym,nfft,cplen,nullIdx,pilotIdx,pilots);
0 Kommentare
Antworten (1)
Pratyush Roy
am 28 Jan. 2022
Hi Igor,
As per my understanding, the matrix with pilot subcarriers is gnerating an error while performing the OFDM modulation.
The shape of the matrix, as per the definition mentioned in the documentation, is -by--by-, where is the length of the pilotIdx array. However, in our case we are defining the pilot array in terms of the order of the modulation, MCS7.
A workaround for this issue would be to define the pilot indices such that the number of elements is equal to the order of modulation for QAM.
The script below might be helpful:
MCS7 = 16;
nfft = 64;
cplen = 16;
nSym = 100;
npilot = 4;
nantena = 1;
pilotIdx = [12:23 40:42 54]';
nullIdx = [1:6 33 64-4:64]';
numDataCarrs = nfft-length(nullIdx)-length(pilotIdx);
inSig = randi([0 MCS7-1],numDataCarrs,nSym);
pilots = repmat(pskmod((0:MCS7-1).',MCS7),1,nSym);
qamSym = qammod(inSig,MCS7,'UnitAveragePower',true);
outSig64 = ofdmmod(qamSym,nfft,cplen,nullIdx,pilotIdx,pilots);
Hope this helps!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Modulation finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!