Files
2024-07-22 21:17:49 +08:00

32 lines
715 B
Matlab
Executable File

function [C_n, Psi] = get_Psi(N, M, epi)
if nargin == 2
epi = 0;
end
k = 1 / sqrt(M * N);
C_n = zeros(M, 1);
% Determined code 1
% C_n = repelem(0:M-1, N/M);
% Determined code 2
% C_n = repmat(0:M-1, 1, N/M);
% Determined code 3
C_n = repmat(0:M-1, 1, N/M);
C_n = C_n(randperm(length(C_n)));
Psi = zeros(N,M*N);
for n = 0 : N-1
col = zeros(1, M*N);
% C_n(n+1) = floor(rand()*M);
for q = 0 : N-1
for p = 0:M-1
f1 = p/M*C_n(n+1);
f2 = q/N*n*(1+C_n(n+1)*epi);
col(q*M+p+1) = exp(1j*2*pi*(f1 + f2));
end
end
Psi(n+1, :) = col * k;
end
end