LMS Egaliseur pour SC_FDE

A

adi_sharma84

Guest
Salut tous,
Je suis en train de simuler un SC-Frequency domain LMS égaliseur.

Maintenant, puisque
c'est la SC de détection doit être dans le temps même si le domaine
channel estimation est en fréquence, afin de suivre ces étapes i

1) Multiplier les données -> data_f (en fréquence) avec le poids de la fréquence
domaine
2) Convertir les données dans le domaine temporel par data_t IFFT et le transmettre par le biais de
détecteur.
3) calculer l'erreur (détecteur - data_t)
4) la conversion de l'erreur de retour en fréquence (fft ou par erreur) -> err_f
5) mise à jour pèse par des poids = poids Mu * (* data_f conj (err_f)) où Mu est
pas de
6) maintenant multiplier nouveau poids avec la prochaine série de données et de répéter le processus

Ai-je fait quelque chose de mal que l'erreur ne diminue pas, quel que soit i do
et elle augmente rapidement avec chaque terme.

Tout type d'aide est très appréciée en tant que ce fait me rend folle.

Observe
Aditya

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Pleurer ou très triste" border="0" />S'il vous plaît voir l'exemple de code ci-dessous matlab

________________________________________

fermer tous les
effacer tous les
clc

z = zeros (1.256);
zd = 0;
x1 = [];
z3 = [];
pak_loc = [];
pak_loc_1 = [];
pak_dis = [];
map_bins = [];

%%%%%%%%%%%%%%% USR1 %%%%%%%%%%%%%%%%%%%%%%%%%%%
pour k = 1:50
%%%%%%%%%%%%%%%%% paking 32 bacs de 32 bacs de gauche à droite centre dc%
zéro %%%%%%%%%
x = (floor (2 * rand (1,64)) -. 5) / (.5) j * (floor (2 * rand (1,64)) -. 5) / (.5);
x1 = [x x1];

pour n = 97:128
z (n) = x (n-96);
fin
pour n = 130:161
z (n) = x (n-97);
fin
t = fftshift (z);
map_bins = [map_bins z];
dtd = fft (t, 256);
Sous-%%%%%%%%%%%%%% cartographie %%%%%%%%%%%%%
subm_d = [];
subm_l = [];
subm_l = [dtd];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256 point %%%%%%%%%%% IFFT localisées et
disterbuted %%%%%%%%%%%%%%%%%%%%%
iff_out_l = IFFT (subm_l, 256);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% préfixe cyclique %%%%%%%%%
out_l_s = [];
out_l_s = [iff_out_l (193:256) iff_out_l]; %%%%%%%%% un symbole OFDM
préfixe cyclique
%%%%%%%%%%%%%%%%% 50 symbole 1 sachet %%%%%%%%%%%%% symbole est de 320 échantillons
long
pak_loc_1 = [pak_loc_1 out_l_s];
fin

%%%%%%%%%%%%%%%%%%%% préambule de USR1 %%%%%%%%%%%%%%%%%%%%%%%%%%%
a = 1 j;
b =- 1 j;
c =- 1-j;
d = 1-j;

p_all = [ddcaddbdddacaacaccd b. ..
ddcaddbdddacaacaccd b. ..
ddcaddbdddacaacaccd b. ..
aadbaacaaabdbbdbdda c. ..
ccbdccacccdbdbbdbbc a. ..
0 ...
cabbcaaacadbdbbbbdc c. ..
bdaabdddbdcccaaaacb b. ..
acddacccacbbbddddba a. ..
cabbcaaacadddbbbbdc c. ..
dbccdbbbdbaaaccccadd];

ff_1 = zéros (1.256);
ff_2 = zéros (1.256);
d2 = p_all (1:2:201);
d1 = p_all (1:4:201);
ff_2 (129 (-100:2:100)) = sqrt (2) * d2 ;%%%%% long préambule

usr1_pre = fft (ff_2, 256 );%%%%%%%%%%%%% fft de USR1

OT1 = [usr1_pre];

i_ot1 = IFFT (OT1, 256);

c_iot1 = [i_ot1 (193:256) i_ot1];

preamble_cp_usr1 = c_iot1; %%%%%%% long préambule

pak_usr1_preamble = [preamble_cp_usr1 pak_loc_1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CI1 = [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .5 * j]; %%%%%%%%%% chaîne

fil_ch_out = filter (CI1, 1, pak_usr1_preamble);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

%%%%%%%%%%%% channel estimation
cp_long_pre = fil_ch_out (1:320);
long_pre = cp_long_pre (65: fin);

ff_long_pre = fft (long_pre, 256);
long_usr1 = ff_long_pre;

ratio_usr1 = long_usr1./usr1_pre;%%%% ratio recived du préambule de la
connu préambule

ratio_usr1 = ratio_usr1 (1:2: end);
%%%% interpolation
inter_r_us1 = [];
pour n = 1:
length (ratio_usr1) -1
inter_r_us1 = [inter_r_us1 ratio_usr1 (n)
(ratio_usr1 (n) ratio_usr1 (n 1)) / 2];

fin
inter_r_us1 = [inter_r_us1 ratio_usr1 (128) ratio_usr1 (128)];

ch1_fr = fft (CI1, 256);

figure (1)
patienter
plot (abs (log (inter_r_us1)), "raie", 4)
plot (abs (log (ch1_fr)), 'xg')
attendre
titre ( «canal en vert à l'estimation de canal bleu»)
axis ([1 256 -2 2])

%%%%%%%%%%%%%% lms_equil %%%%%%%%%%%%%%%%
l8 = 320;
data = fil_ch_out (321: fin);
w = plus (1.256) ./inter_r_us1;%%%% p = estimé chaîne
errtt = [];
pour n = 1:50
dat de données = ((n-1) * l8 1: n * l

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

;
dat1 dat = (65: fin);
dat_f = fft (dat1, 256);

eq_dat_f = dat_f .* w;

dat_t = IFFT (eq_dat_f, 256);

figure (2)
plot (dat_t, 'x')
%%%%%%%%%%%%%%% détecteur
detc = [];
pour n = 1:256
dc_tmp = dat_t (n );%%%%%%%%%%%%% contribution au détecteur de
sinng signe = (real (dc_tmp));
si sinng == 1
si réel (dc_tmp) <0.5
rl_tmp = 0;
autre
rl_tmp = 1;
fin
autre
si réel (dc_tmp)> -0,5
rl_tmp = 0;
autre
rl_tmp =- 1;
fin
fin
sinng signe = (imag (dc_tmp));
si sinng == 1
si imag (dc_tmp) <0.5
ig_tmp = 0;
autre
ig_tmp = 1;
fin
autre
si imag (dc_tmp)> -0,5
ig_tmp = 0;
autre
ig_tmp =- 1;
fin
fin
tmp_d = rl_tmp i * ig_tmp;
detc = [detc tmp_d]; %%%%%%%%%%%%%%%% sortie de détecteur
fin
figure (3)
plot (detc, 'x')
titre ( «détecteur de terrain»)
axis ([-2 2 -2 2])

err_t = detc-dat_t;%%%% erreur de détecteur de données dans le domaine temporel

err_f = fft (err_t, 256 );%%%%% erreur en freq de domaine
errtt = [errtt err_f];
figure (4)
subplot (2,1,1)
plot (abs (err_t));
subplot (2,1,2)
plot (abs (err_f));
w_up = (* dat_f. conj (err_f));%%% en poids de nouvelles freq domaine
w w = 0.01 * (mise à jour w_up );%%%% poids lms algrothim
fin
figure (5)
plot (abs (errtt))

___________________________________

 
adi_sharma84 a écrit:

Salut tous,

Je suis en train de simuler un SC-Frequency domain LMS égaliseur.Maintenant, puisque c'est la SC de détection doit être dans le temps même si le domaine

channel estimation est en fréquence, afin de suivre ces étapes i1) Multiplier les données -> data_f (en fréquence) avec le poids de la fréquence

domaine

2) Convertir les données dans le domaine temporel par data_t IFFT et le transmettre par le biais de

détecteur.

3) calculer l'erreur (détecteur - data_t)

4) la conversion de l'erreur de retour en fréquence (fft ou par erreur) -> err_f

5) mise à jour pèse par des poids = poids Mu * (* data_f conj (err_f)) où Mu est

pas de

6) maintenant multiplier nouveau poids avec la prochaine série de données et de répéter le processusAi-je fait quelque chose de mal que l'erreur ne diminue pas, quel que soit i do

et elle augmente rapidement avec chaque terme.Tout type d'aide est très appréciée en tant que ce fait me rend folle.Observe

Aditya
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Pleurer ou très triste" border="0" />
reniflée ............... ............

___________________________________
 

Welcome to EDABoard.com

Sponsor

Back
Top