?? tap11_equalizer.m
字號:
function [equalized_Data,estimated_a,Delay_line,Time_Offset,temp_counter,counter]=Tap11_Equalizer(MultiPathData,estimated_a,Source,Delay_line,Time_Offset,temp_counter,counter)
global SubCarrier ;
global Total_Number ;
Tap_Num=11;
step_size=0.002;
d=1;
kpp=0;
mappingqpsk=[ 7*d + i*7*d;
-7*d + i*7*d;
7*d - i*7*d;
-7*d - i*7*d];
mappingqam64=[ -7*d + i*7*d;
-5*d + i*7*d;
-3*d + i*7*d;
-d + i*7*d;
d + i*7*d;
3*d + i*7*d;
5*d + i*7*d;
7*d + i*7*d;
-7*d + i*5*d;
-5*d + i*5*d;
-3*d + i*5*d;
-d + i*5*d;
d + i*5*d;
3*d + i*5*d;
5*d + i*5*d;
7*d + i*5*d;
-7*d + i*3*d;
-5*d + i*3*d;
-3*d + i*3*d;
-d + i*3*d;
d + i*3*d;
3*d + i*3*d;
5*d + i*3*d;
7*d + i*3*d;
-7*d + i*d;
-5*d + i*d;
-3*d + i*d;
-d + i*d;
d + i*d;
3*d + i*d;
5*d + i*d;
7*d + i*d;
-7*d + i*-d;
-5*d + i*-d;
-3*d + i*-d;
-d + i*-d;
d + i*-d;
3*d + i*-d;
5*d + i*-d;
7*d + i*-d;
-7*d + i*-3*d;
-5*d + i*-3*d;
-3*d + i*-3*d;
-d + i*-3*d;
d + i*-3*d;
3*d + i*-3*d;
5*d + i*-3*d;
7*d + i*-3*d;
-7*d + i*-5*d;
-5*d + i*-5*d;
-3*d + i*-5*d;
-d + i*-5*d;
d + i*-5*d;
3*d + i*-5*d;
5*d + i*-5*d;
7*d + i*-5*d;
-7*d + i*-7*d;
-5*d + i*-7*d;
-3*d + i*-7*d;
-d + i*-7*d;
d + i*-7*d;
3*d + i*-7*d;
5*d + i*-7*d;
7*d + i*-7*d];
if(strcmp(Source,'64QAM')==1)
mapping=mappingqam64;
M=64;
else
mapping=mappingqpsk;
M=4;
end;
id=1;
for ip=1:Total_Number,
Coeff_te(id)=MultiPathData(ip*2+14);
id=id+1;
end;
if(Time_Offset==0)
end_time=Total_Number-1;
else
end_time=Total_Number;
end;
TN2=(Tap_Num-1)/2;
for j=-TN2:Total_Number-1+TN2,
if(j>Total_Number-1-TN2)
TimeData=0;
else
TimeData=Coeff_te(j+TN2+1);
end;
%%%
for ip=Tap_Num:-1:2,
Delay_line(ip)=Delay_line(ip-1);
end;
Delay_line(1)=TimeData;
%%%%%
z_k=sum(estimated_a.*Delay_line);
FFT_Buffer(counter)=z_k;
if(counter==16)
FrequencyData=fft(FFT_Buffer);
%len=length(FrequencyData)
for i=1:SubCarrier,
for b=1:M,
metrics(i,b)=(real(FrequencyData(i))-real(mapping(b,1))).^2+(imag(FrequencyData(i))-imag(mapping(b,1))).^2;
end;
[min_metrics decs]=min(metrics(i,:));
khryu=mapping(decs);
e_k(i)=khryu-FrequencyData(i);
end;
kh_k(j-15+1:j+1)=FrequencyData;
for ipp=1:SubCarrier,
ek_real=real(e_k(ipp));
ek_image=imag(e_k(ipp));
if(ek_real>0)
ek_real=1;
else
ek_real=-1;
end;
if(ek_image>0)
ek_image=1;
else
ek_image=-1;
end;
e_k(ipp)=complex(ek_real,ek_image);
end;
FFT_e_k=ifft(e_k);
end;
if (temp_counter>0)
for itt=1:Tap_Num,
estimated_a(itt)=estimated_a(itt)+step_size*FFT_e_k(counter)*conj(Delay_line(itt));
end;
end;
if(counter==16)
counter=0;
temp_counter=1;
end;
if (j<0) counter=1;
else
counter=counter+1;
end;
end;
equalized_Data=kh_k;
len1=length(equalized_Data);
Constel2(equalized_Data,SubCarrier,1);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -