Skip to content

Instantly share code, notes, and snippets.

@kumanna
Created February 18, 2024 09:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kumanna/b2cd25686eae53314658bffe5142bf34 to your computer and use it in GitHub Desktop.
Save kumanna/b2cd25686eae53314658bffe5142bf34 to your computer and use it in GitHub Desktop.
clear;
M = 4;
N = 4;
W = exp(1j * 2 * pi * (0:(M*N-1))' * (0:(M*N-1)) / N / M) / sqrt(N * M);
Nt = 3;
Nr = 2;
## In the slide 39 of this:
## https://ecse.monash.edu/staff/eviterbo/OTFS-VTC18/Tutorial_ICC2019___OTFS_modulation.pdf
## Assume that s is MNN_t cross 1
## H = [. -> each entry becomes Nr x Nt matrix]
## -> H size is MNN_r x MNN_t
L = 1;
H_1 = [1 2 3;-3 4 2];
P = zeros(M*N);
P(1,end) = 1;
P(2:(M*N),1:(M*N-1)) = eye(15);
D = diag(exp(1j * 2 * pi * 1 * (0:(M*N-1))/(M*N)));
## We will construct P_mimo which is a MNNr x MNNr matrix
P_mimo = kron(P, eye(Nr));
H_1_mimo = kron(eye(M*N), H_1);
D_mimo = kron(D, eye(Nt));
## Sanity check:
disp(max(max(abs(H_1_mimo - kron(W', eye(Nr)) * H_1_mimo * kron(W, eye(Nt))))));
H_1_rect_eff = kron(W, eye(Nr)) * P_mimo * kron(W', eye(Nr)) * H_1_mimo * kron(W, eye(Nt)) * D_mimo * kron(W', eye(Nt));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment