Why is it that when I use OTFS modulation on a CDL channel, the Doppler index is concentrated in a region smaller than N/2?
Show older comments
My code is the following
close all
clear
clc
%% OTFS frame parameters
M=128;
N=32;
f0=5.9*10^9;
c=299792458;
df=15*10^3;
T=1/df;
Tf=N*T;
samplerate=M*N/Tf;
X_DD=zeros(M,N);
xp=1;
mp=1;
np=N/2;
X_DD(mp,np)=xp;
X_tilda=ifft(X_DD,[],2);
s=reshape(X_tilda,N*M,1);
nu_max=1/T/2;
tau_max=T;
cdl = nrCDLChannel('DelayProfile', 'CDL-A');
cdl.DelaySpread =tau_max;
cdl.CarrierFrequency = f0;
cdl.MaximumDopplerShift =nu_max;
cdl.TransmitAntennaArray.Size = [1 1 1 1 1];
cdl.ReceiveAntennaArray.Size = [1 1 1 1 1];
ChannelFiltering = true;
cdl.SampleRate = samplerate;
cdl.Seed = randi([0,1000]);
r=cdl(s);
Y_tilda=reshape(r,M,N);
Y_otfs=fft(Y_tilda,[],2);
figure(1)
[X,Y]=meshgrid(1:N,1:M);
plot3(X,Y,abs(Y_otfs))
xlim([1,N])
ylim([1,M])
title('DD-channel')
The result is as follows,It looks like all Doppler indexes are less than N/2

When I set :cdl.MaximumDopplerShift =0,The result is as follows,the Doppler indexes are equal to N/2,This looks normal.

When I set :cdl.MaximumDopplerShift =0,cdl.DelaySpread =0;The results are as follows,The impulse response appears in the(N/2,8),but theoretically it should be at (N/2,1)

Accepted Answer
More Answers (0)
Categories
Find more on Switches and Breakers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!