LMS Equalizer for SC_FDE

A

adi_sharma84

Guest
Hi All,
Jeg forsøger at simulere en SC-Frequency domæne LMS equalizer.

Nu da det er SC påvisning skal være i gang domæne selv om
kanal estimering i hyppighed domæne så jeg følge disse trin

1) Multiplicer data -> data_f (i hyppighed domæne) med vægte i hyppighed
domæne
2) Konverter data i tide domæne data_t ved ifft og ledes gennem
detektor.
3) beregne den fejl (detektor - data_t)
4) konvertere fejl tilbage i frekvens domæne (ved fft eller fejl) -> err_f
5) opdatering vejer ved vægte = vægt Mu * (data_f * conj (err_f)), hvor Mu er
skridt størrelse
6) nu formere nye vægt med næste sæt af data, og gentag processen

Jeg gør noget forkert så fejlen aldrig falder uanset hvad jeg gør
og det øger hurtigt med hvert løb.

Enhver form for hjælp er meget værdsat, da dette gør mig skør.

Hilsen
Aditya

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Gråd eller meget trist" border="0" />Se venligst prøve Matlab koden nedenfor

________________________________________

lukke alle
rydde alle
CLC

z = nuller (1256);
zd = 0;
x1 = [];
Z3 = [];
pak_loc = [];
pak_loc_1 = [];
pak_dis = [];
map_bins = [];

%%%%%%%%%%%%%%% usr1 %%%%%%%%%%%%%%%%%%%%%%%%%%%
for k = 1:50
%%%%%%%%%%%%%%%%% paking 32 bokspaller venstre 32 bokspaller ret% Center dc
nul %%%%%%%%%
x = (floor (2 * rand (1,64)) -. 5) / (.5) j * (gulv (2 * rand (1,64)) -. 5) / (.5);
x1 = [x x1];

for n = 97:128
z (n) = x (n-96);
ende
for n = 130:161
z (n) = x (n-97);
ende
t = fftshift (z);
map_bins = [map_bins z];
DTD = fft (t, 256);
%%%%%%%%%%%%%% subcarrier kortlægning %%%%%%%%%%%%%
subm_d = [];
subm_l = [];
subm_l = [DTD];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%% 256 point ifft af lokaliseret og
disterbuted %%%%%%%%%%%%%%%%%%%%%
iff_out_l = ifft (subm_l, 256);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% cyklisk præfiks %%%%%%%%%
out_l_s = [];
out_l_s = [iff_out_l (193:256) iff_out_l]; %%%%%%%%% en OFDM symbol med
cyklisk præfiks
%%%%%%%%%%%%%%%%% 50 symbol pakkekoblende %%%%%%%%%%%%% 1 symbolet er 320 prøver
lang
pak_loc_1 = [pak_loc_1 out_l_s];
ende

%%%%%%%%%%%%%%%%%%%% præamblen til 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 = nuller (1256);
ff_2 = nuller (1256);
d2 = p_all (1:2:201);
d1 = p_all (1:4:201);
ff_2 (129 (-100:2:100)) = sqrt (2) * d2 ;%%%%% længe præamblen

usr1_pre = fft (ff_2, 256 );%%%%%%%%%%%%% fft af usr1

ot1 = [usr1_pre];

i_ot1 = ifft (ot1, 256);

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

preamble_cp_usr1 = c_iot1; %%%%%%% længe præamblen

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]; %%%%%%%%%% kanal

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

%%%%%%%%%%%% kanal estimation
cp_long_pre = fil_ch_out (1:320);
long_pre = cp_long_pre (65: udgangen);

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

ratio_usr1 = long_usr1./usr1_pre;%%%% forholdet recived præamblen til
kendt præamblen

ratio_usr1 = ratio_usr1 (1:2: udgangen);
%%%% interpolering
inter_r_us1 = [];
for n = 1: Længde (ratio_usr1) -1
inter_r_us1 = [inter_r_us1 ratio_usr1 (n)
(ratio_usr1 (n) ratio_usr1 (n 1)) / 2];

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

ch1_fr = fft (ci1, 256);

tal (1)
vent
plot (abs (log (inter_r_us1)), 'linewidth', 4)
plot (abs (log (ch1_fr)), 'xg')
hold off
titel ( 'kanal i grøn til anslået kanal i blå «)
axis ([1 256 -2 2])

%%%%%%%%%%%%%% lms_equil %%%%%%%%%%%%%%%%
L8 = 320;
data = fil_ch_out (321: udgangen);
w = dem (1.256) ./inter_r_us1;%%%% w = anslået kanal
errtt = [];
for n = 1:50
dat = data ((n-1) * L8 1: n * l

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

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

eq_dat_f = dat_f .* w;

dat_t = ifft (eq_dat_f, 256);

tallet (2)
plot (dat_t, 'x')
%%%%%%%%%%%%%%% detektor
detc = [];
for n = 1:256
dc_tmp = dat_t (n );%%%%%%%%%%%%% input til detektor
sinng = tegn (real (dc_tmp));
hvis sinng == 1
hvis reelle (dc_tmp) <0,5
rl_tmp = 0;
anden
rl_tmp = 1;
ende
anden
hvis reelle (dc_tmp)> -0,5
rl_tmp = 0;
anden
rl_tmp =- 1;
ende
ende
sinng = tegn (IMAG (dc_tmp));
hvis sinng == 1
hvis IMAG (dc_tmp) <0,5
ig_tmp = 0;
anden
ig_tmp = 1;
ende
anden
hvis IMAG (dc_tmp)> -0,5
ig_tmp = 0;
anden
ig_tmp =- 1;
ende
ende
tmp_d = rl_tmp i * ig_tmp;
detc = [detc tmp_d]; %%%%%%%%%%%%%%%% produktion af detektor
ende
tallet (3)
plot (detc, 'x')
titel ( "detektor plot ')
akse ([-2 2 -2 2])

err_t = detc-dat_t;%%%% fejl af detektorrespons til data i tide domæne

err_f = fft (err_t, 256 );%%%%% fejl tilbage i freq domæne
errtt = [errtt err_f];
figur (4)
subplot (2,1,1)
plot (abs (err_t));
subplot (2,1,2)
plot (abs (err_f));
w_up = (dat_f. * conj (err_f));%%% nye vægt i freq domæne
w = w 0,01 * (w_up );%%%% vægte opdatering lms algrothim
ende
Figur (5)
plot (abs (errtt))

___________________________________

 
adi_sharma84 wrote:

Hi All,

Jeg forsøger at simulere en SC-Frequency domæne LMS equalizer.Nu da det er SC påvisning skal være i gang domæne selv om

kanal estimering i hyppighed domæne så jeg følge disse trin1) Multiplicer data -> data_f (i hyppighed domæne) med vægte i hyppighed

domæne

2) Konverter data i tide domæne data_t ved ifft og ledes gennem

detektor.

3) beregne den fejl (detektor - data_t)

4) konvertere fejl tilbage i frekvens domæne (ved fft eller fejl) -> err_f

5) opdatering vejer ved vægte = vægt Mu * (data_f * conj (err_f)), hvor Mu er

skridt størrelse

6) nu formere nye vægt med næste sæt af data, og gentag processenJeg gør noget forkert så fejlen aldrig falder uanset hvad jeg gør

og det øger hurtigt med hvert løb.Enhver form for hjælp er meget værdsat, da dette gør mig skør.Hilsen

Aditya
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Gråd eller meget trist" border="0" />
............... sniffed ............

___________________________________
 

Welcome to EDABoard.com

Sponsor

Back
Top