mimo código

M

mujee

Guest
hey guys
Preciso Matlab para simulações de mimo cdma.se alguém tem que faça o upload em como eu preciso para apresentar os meus resultados muito em breve, e esses códigos poderia ajudar-me terminar meu relatório no tempo

 
nenhuma ajuda

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

..... cant acredito em ninguém fez cdma mimo ..... Eu não tenho tempo contrário eu teria feito isso sozinho .... Eu só preciso gráficos ... eu tentei olhar sobre ele, mas também Mathworks couldnt encontrar isso aí
existe alguém que poderia ajudar?

 
Oi, tente este programa:limpar todos; fechar todos;N = 20;% número de utilizadores
M = 20;% espalhando ganho
L = 4;% canal fim
Z = 4;% número de antenas
Q = ML;
Símbolos = 500%;% não vetores de dados
Hadamard cx = (2 * N);
cn = cx (2: N 1,1: N); clara cx;
SNR = 25;% sinal-ruído em dB

%%% Autocorrelação matriz de espalhamento do código
RCC * cn = cn ';

po = 51;% número de pontos para a trama
nj = 50:5:300;
Po = 4%;% número de pontos para a trama
Nj =% 50:50:200;
nj% = [50 100 150 200 250 300];% tamanho dos dados vetores
% N = 200;% do número gerado símbolos

ni = po;% número de iterações
% var = logspace (-3, -1, ni);% ruído variância
var = 0,07;
SIG = sqrt (var);

%%% Dos parâmetros a partir dos algoritmos adaptativos
beta = 0,05; gm = 0,4;

% Diferença = 0;
%====================
Channel%
%====================

CHN = [
-0,0490 0,3590 I
0,4820-0.5690i
-0,5560 0,5870 I
1,0000
-0,1710 0,0610 I
0,4430-0.0364i
1,0000
0,9210-0.1940i
0,1890-0.2080i
-0,0870-0.0540i
-0,2110-0.3220i
-0,1990 0,9180 I
1,0000
-0,2840-0.5240i
0,1360-0.1900i
0,4170 0,0300 i
1,0000
0,8730 0.1450i
0,2850 0.3090i
-0,0490 0.1610i];

R = 1% canal
c1 = [-0,049 0,359 i 0,482-0.569i -0,556 0,587 i 1 -0,171 0,061 i zeros (1, ML-1)];
r1 = [-0,049 0,359 i zeros (1, M-1)];
H1 = Toeplitz (c1, r1);
% Canal r = 2
c2 = [0,443-0.0364i 1 0,921-0.194i 0,189-0.208i-0,087-0.054i zeros (1, ML-1)];
r2 = [0,443-0.0364i zeros (1, M-1)];
H2 = Toeplitz (c2, r2);
R = 3% canal
C3 = [-0,211-0.322i -0,199 0,918 i 1-0,284-0.524i 0,136-0.190i zeros (1, ML-1)];
r3 = [-0,211-0.322i zeros (1, M-1)];
H3 = Toeplitz (c3, r3);
r = 4% canal
c4 = [0,417 0,030 i 1 0,873 0,145 i 0,285 0,309 i -0,049 0,161 i zeros (1, ML-1)];
r4 = [0,417 0,030 i zeros (1, M-1)];
H4 = Toeplitz (c4, r4);

R = [zeros (ML, L) olho (ML)];% para gerar truncar matriz
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Repita o processo para uma variedade de SNR
K = 50;% o número de blocos = média dimensão
snr = zeros (1, ni);
mci = 50;% de MC não é executado
er1 = zeros (ni, mci); er2 = er1; MSX = er1;
MSE = zeros (ni, 1); nm = MSE;
ela = 1;

para p = 1: ni,
para mc = 1: mci,% 100 Monte Carlo é executado

fprintf ( '% d ª MC correr \ n', it), que é = 1;
n = nj (p);
ele = zeros (4 * (L 1), n);
szf = zeros (1, n);% detectados símbolos transmitidos
SMM = zeros (1, n);% detectados símbolos transmitidos
u = zeros (M, n);

s = randsrc (N, N);% gerar símbolos tx BPSK
u = cn * s;% tamanho M xn
Ruu = zeros (M);
% gerar correlação matriz
para m = 1: K,
Ruu = Ruu [u :), m) * u :), m) '];
fim;
Ruu = Ruu / K;
%%%%%%%%%%%%%%%%%%%%%% Antena %%%%%%%%%%%%%%%%%%%%%%%%%% 1. %%
n1 = sig * (1/sqrt (2)) * [randn (Q, n) sqrt (-1) * randn (Q, n)];% gerar ruídos aleatórios

x1 = (R * H1 * cn * s) n1;% receberam vetor para a 1 ª antena,
o tamanho do Q xn

%%%%%%%%%%%%%%%%%%%%%% Antena %%%%%%%%%%%%%%%%%%%%%%%%%% 2. %%
n2 = sig * (1/sqrt (2)) * [randn (Q, n) sqrt (-1) * randn (Q, n)];% gerar ruídos aleatórios

x2 = (R * H2 * cn * s) n2;% receberam vetor para a 2 ª antena,
o tamanho do Q xn

%%%%%%%%%%%%%%%%%%%%%% Antena %%%%%%%%%%%%%%%%%%%%%%%%%% 3. %%
n3 = sig * (1/sqrt (2)) * [randn (Q, n) sqrt (-1) * randn (Q, n)];% gerar ruídos aleatórios

x3 = (R * H3 * cn * s) n3;% receberam vetor para a 3 ª antena,
o tamanho do Q xn

%%%%%%%%%%%%%%%%%%%%%% Antena %%%%%%%%%%%%%%%%%%%%%%%%%% 4. %%
n4 = sig * (1/sqrt (2)) * [randn (Q, n) sqrt (-1) * randn (Q, n)];% gerar ruídos aleatórios

x4 = (R * H4 * cn * s) n4;% receberam vetor para a 4. antena,
o tamanho do Q xn%%%%%%%%%%%%%%
x = [x1 '.x2. "x3 ".x4 .'].';% pilha recebeu todos os vetores a partir dos 4 antenas, tamanho 4T xn

N = soma (sum ((abs (n1). ^ 2), 1)) / (Q * n);% potência média do ruído
sn = sum (sum ((abs (x1-n1). ^ 2), 1)) / (n * N);% de energia por bits, BPSK = 1 bit por símbolo
snr (p) = 10 * log10 (sn / n);

%%%%% Subespaço Blind Channel Estimation %%%%%%%%%%
Rxx = zeros (4 * Q, 4 * Q);
% gerar autocorrelação matriz
para m = 1: K,
Rxx = Rxx [x :), m) *
X :), m) '];
fim;
Rxx = Rxx / K;
[V, D] = AIE (Rxx);% eigen valor decomposição,
a dimensão de V e D é 4T x 4T
Gn = V :), 1

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

4 * Q)-M);% ruído subespaço
Gj1 = zeros (L 1, M * ((4 * Q)-M)); Gj2 = Gj1; Gj3 = Gj1; Gj4 = Gj1;
Gj = zeros (Z * (L 1), M * ((4 * Q)-M));
%%%%%%%%
c = 0;
para k = 1

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

4 * Q)-M,
b = 0;
%%% Subespaço ruído a partir da primeira antena
para i = 1: L 1,
a = Q;
para j = 1: Q, Gj1 (i, j b c) = Gn (um, k); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% Ruído subespaço da antena 2.
para i = 1: L 1,
a = 2 * Q;
para j = 1: Q, Gj2 (i, j b c) = Gn (um, k); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% Subespaço ruído a partir da terceira antena
para i = 1: L 1,
a = 3 * Q;
para j = 1: Q, Gj3 (i, j b c) = Gn (um, k); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% Subespaço ruído a partir da quarta antena
para i = 1: L 1,
a = 4 * Q;
para j = 1: Q, Gj4 (i, j b c) = Gn (um, k); a = a-1; fim;
b = b 1;
fim;

C = C M;
fim;

Gj = [Gj1 '.Gj2 '.Gj3 '.Gj4 .'].';% tamanho Z * (L 1) x M * ((4 * Q)-M)
Qx = zeros (Z * (L 1)); um claro; a = 1: M;
para i = 1

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

4 * Q)-M, QX = qx (GJ :), a) * * cn cn '* Gj :), a)'); a = a M; fim;
Obtendo %%%%%% canal estimativa, hest
[hest, A] = AIE (qx, 1, 'SM');%
de rentabilidade eigenvector autovalor mínimo corresponde à de Q, tamanho 4 (L 1) x 1
hest = hest * (c1 (1) / hest (1));% fase ambiguidade remoção

%%%%%%%%%% Blind Adaptive subespaço Tracking Algorithm %%%%%%%%%%%
% calcular a estimativa para todo o canal símbolos tx
Hq1 = zeros (Q, M); Hq2 = Hq1; Hq3 = Hq1; Hq4 = Hq1; HQ = zeros (4 * Q, M);

para m = 1: n,
% NOOJA Algoritmo
% ruído subespaço, algoritmo no intervalo i
fn = Gn '* X :), m);
gn = Gn * fn;
pn = x :), m)-gn;
BOP = ((beta) / [norm (x :), m))-norma (fn) gm]);
phi = 1/sqrt (1 (BOP ^ 2 * norma (pn) * norma (fn)));
tau = (phi-1) / norm (fn);
pi = ((-tau * gn) / BOP) (* phi pn);
chi = pi / norm (pi, 1);
ka = Gn «* chi;
Gnn = Gn-(2 * * chi ka ');% ruído subespaço para o próximo símbolo

%%%%%%%% Construir matriz Q baseado na estimativa Gn
c = M;
para k = 1

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

4 * Q)-M,
b = 0;
%%% Subespaço ruído a partir da primeira antena
para i = 1: L 1,
a = Q;
para j = 1: Q, Gj1 (i, j b c) = Gnn (a, k); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% Ruído subespaço da antena 2.
para i = 1: L 1,
a = 2 * Q;
para j = 1: Q, Gj2 (i, j b c) = Gnn (a, k); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% Subespaço ruído a partir da terceira antena
para i = 1: L 1,
a = 3 * Q;
para j = 1: Q, Gj3 (i, j b c) = Gnn (a, k); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% Subespaço ruído a partir da quarta antena
para i = 1: L 1,
a = 4 * Q;
para j = 1: Q, Gj4 (i, j b c) = Gnn (a, k); a = a-1; fim;
b = b 1;
fim;

C = C M;
fim;

Gj = [Gj1 '.Gj2 '.Gj3 '.Gj4 .'].';% tamanho Z * (L 1) x M * ((4 * Q)-M)
Qx = zeros (Z * (L 1)); um claro; a = 1: M;
para i = 1

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

4 * Q)-M, QX = qx (GJ :), a) * * cn cn '* Gj :), a)'); a = a M; fim;

%%%% Computar o canal estimativa para o próximo símbolo
mu = 0,0001;
ben hest = '* qx * hest;
galinha = hest-(mu * [(norma (hest) * qx) - (* ben olho (4 * (L
1 )))]* hest);% a estimativa actualizada canal

%%%% Armazenar todos os canais em que as estimativas
se m == 1, ele :), m) = hest; senão ele :), m) = galinha; fim;

Construa a matriz %%%%%% HQ para cada antena %%%%%%%
b = 0;
%%%, A primeira antena
para i = 1: Q,
um L = 1;
para j = 1: L 1, Hq1 (i, j b) = ele (a, m); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%%, A Antena 2.
para i = 1: Q,
a = 2 * (L 1);
para j = 1: L 1, Hq2 (i, j b) = ele (a, m); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%%, A terceira antena
para i = 1: Q,
a = 3 * (L 1);
para j = 1: L 1, Hq3 (i, j b) = ele (a, m); a = a-1; fim;
b = b 1;
fim;
b = 0;
%%% O quarto antena
para i = 1: Q,
a = 4 * (L 1);
para j = 1: L 1, Hq4 (i, j b) = ele (a, m); a = a-1; fim;
b = b 1;
fim;

HQ = [Hq1 '.Hq2 '.Hq3 '.Hq4 .'].';% o canal estimativas, tamanho 4T x M

%%%%%%%%%% Igualdade usando ZF e MMSE equalisers
Gzf = inv (HQ '* HQ) * HQ'; ZF%,
o tamanho M x 4T
Claro% tmp; tmp = Gzf; Gzf = tmp. ";% Alterar a matriz orientação

% Rxx = zeros (4 * Q, 4 * Q);
%% Gerar autocorrelação matriz
Para m = 1%: K,
Rxx% Rxx = [x :), m) *
X :), m) '];
%
No final;
Rxx% = Rxx / K;
% Gmmse = Rux * inv (Rxx);% MEEM
Gmmse = Ruu * HQ '* pinv (Rxx);% MEEM, tamanho M x 4T

%%%
De detecção para o utilizador 1.
%%% usando detector ZF / Equalizador
sx :), m) = sinal (real (cn '* Gzf * x :), m )));% tamanho M xn
%%% usando detector MEEM / Equalizador
sy :), m) = sinal (real (cn '* Gmmse * x :), m )));% tamanho M xn

fim;%
no final do ciclo de m

%%%% Obter a estimativa de dados transmitidos para o usuário 1
szf sx = (1,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorrir" border="0" />

;
SMM sy = (1,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorrir" border="0" />

;

%%% Para calcular o RIC
ZF%
para k = 1: n,
se szf (k) == s (1, k), b = 0;
else b = 1;
fim;
er1 (p, mc) = er1 (p, mc) b;
fim;
er1 (p, mc) = er1 (p, mc) / n;

MEEM%
para k = 1: n,
se SMM (k) == s (1, k), b = 0;
else b = 1;
fim;
er2 (p, mc) = er2 (p, mc) b;
fim;
er2 (p, mc) = er2 (p, mc) / n;

%%% Computar NRMSE
claro tmp; tmp = 0;
para i = 1: n, tmp = tmp norma (ele :), i)-CHN); fim;
MSX (p, mc) = tmp / n;% MSE

fim;%
no final de 'MC' loop
MSE (p) = média (MSX (p,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorrir" border="0" />

);
nm (p) = (1/norm (CHN)) * sqrt (MSE (p)); NRMSE%
fim;%
no final de 'p' loop

% Valor;
% Semilogy (snr, er1 ,'-*', snr, er2, '-o');
% Xlabel ( 'SNR (dB)');
% Ylabel ( 'RIC');
% Legenda ( "ZF", "MEEM ');
% Title ( 'Desempenho dos Detectores para o DS-CDMA ");
%
% Valor;
% Semilogy (snr, MSE ,'-*');
% Xlabel ( 'SNR (dB)');
% Ylabel ( 'MSE');
% Legenda ( "PD");
% Título ( "Desempenho do Canal Estimador para o DS-CDMA");

salvar dat5 nj nm;

valor;
parcela (nj, nm, '-o');
xlabel ( 'Número de iterações');
ylabel ( 'NRMSE');
legend ( 'PD');
título ( "Desempenho do Canal Estimador para o DS-CDMA");

 

Welcome to EDABoard.com

Sponsor

Back
Top