melanippe
13-11-2004, 10:20
Salve a tutti!
Devo fare una simulazione in matlab che consista nel:
- creare un vettore riga di una lunghezza L i cui elementi siano randomn
- generare una matrice di N righe tutte uguali alla prima
- aggiungere a queste righe (tranne alla prima) un certo errore, generato randomn e con una certa varianza
- devo ripetere questa procedura per cento volte e mediare le 100 matrici ottenute per ottenerne una sola
A questo punto devo applicare alla matrice media una certa funzione che ho già implementato e che si chiama genera_canale. Essa restituisce in uscita ancora una matrice.
Anche questa procedeura devo iterarla per 100 volte e mediare le 100 matrici ottenute per ottenere una sola matrice, che poi sarà quella che devo restituire in uscita dalla funzione.
Il problema è che credo che nel codice che ho scritto ci sia qualcosa che non va sulle medie, voi che ne dite?
____________________________________________________
function [B] =dispersivo(var,N,L);
count=100; % nummero di cicli su cui medio
H=zeros(N,L);
eps=zeros(N,L);
B=zeros(N,N);
for s=1:count
for k=1:count
h_init=randn(1,L)+j*randn(1,L);
h=h_init/norm(h_init);
for n=1:N
H_init(n,: )=h; % matrice di partenza
end
if var~=0
for t=2:N
eps_init=randn(1,L).*sqr(var+j*randn(1,L).*sqrt(var);
eps(t,: )=eps_init/norm(eps_init); % matrice dell'errore
end
end
Herr=H_init+eps; % matrice di partenza affetta da errore
H=H+Herr; % somma delle count matrici Herr generate
end
Hmedio=H/count; % matrice media?
B=B+genera_canale(Hmedio); % somma delle count matrici cui ho applicato la funzione
end
B=B/count; % matrice media?
____________________________________________________
Per favore,
AIUTOOOOOOOOOOOOO!!!
:cry:
Devo fare una simulazione in matlab che consista nel:
- creare un vettore riga di una lunghezza L i cui elementi siano randomn
- generare una matrice di N righe tutte uguali alla prima
- aggiungere a queste righe (tranne alla prima) un certo errore, generato randomn e con una certa varianza
- devo ripetere questa procedura per cento volte e mediare le 100 matrici ottenute per ottenerne una sola
A questo punto devo applicare alla matrice media una certa funzione che ho già implementato e che si chiama genera_canale. Essa restituisce in uscita ancora una matrice.
Anche questa procedeura devo iterarla per 100 volte e mediare le 100 matrici ottenute per ottenere una sola matrice, che poi sarà quella che devo restituire in uscita dalla funzione.
Il problema è che credo che nel codice che ho scritto ci sia qualcosa che non va sulle medie, voi che ne dite?
____________________________________________________
function [B] =dispersivo(var,N,L);
count=100; % nummero di cicli su cui medio
H=zeros(N,L);
eps=zeros(N,L);
B=zeros(N,N);
for s=1:count
for k=1:count
h_init=randn(1,L)+j*randn(1,L);
h=h_init/norm(h_init);
for n=1:N
H_init(n,: )=h; % matrice di partenza
end
if var~=0
for t=2:N
eps_init=randn(1,L).*sqr(var+j*randn(1,L).*sqrt(var);
eps(t,: )=eps_init/norm(eps_init); % matrice dell'errore
end
end
Herr=H_init+eps; % matrice di partenza affetta da errore
H=H+Herr; % somma delle count matrici Herr generate
end
Hmedio=H/count; % matrice media?
B=B+genera_canale(Hmedio); % somma delle count matrici cui ho applicato la funzione
end
B=B/count; % matrice media?
____________________________________________________
Per favore,
AIUTOOOOOOOOOOOOO!!!
:cry: