📄 ml.m
字号:
function [ml_time,ml_freq]=ML(multi_path,p,L,N)
% clear
% load QPSK_base_band_re.mat re_base_band_data;
% load QPSK_base_band_imag.mat im_base_band_data;
% data=re_base_band_data(2,:)+k*(im_base_band_data(2,:));
l=L;
data=multi_path;
data1=[data zeros(1,N)];
% data1=[data zeros(1,2048)];
sum_m(1,1)=0; %共轭乘积求和
sum_e(1,1)=0; %平方和 求和
m=round(length(data)/(N+L));
p=abs(p)/(abs(p)+1);
plot_sum=[];
abs_sum=[];
abs_sum1=[];
dec_sum(1,1)=0;
dec_sum_1(1,1)=0;
for k=1:m;
for i=1:(N+l);
if i<=L;
dec_sum(k,i)=abs(sum_m(k,i))^2-(p*0.5*sum_e(k,i)/k);
dec_sum_1(k,i)=abs(sum_m(k,i))-(p*0.5*sum_e(k,i)/k);
sum_m(k,i+1)=sum_m(k,i)+data1((k-1)*(N+L)+i)*conj(data1((k-1)*(N+L)+i+N));
% sum_e(k,i+1)=sum_e(k,i)+p/2*((abs(data1((k-1)*(N+L)+i)))^2+(abs(data1((k-1)*(N+L)+i+N)))^2);
sum_e(k,i+1)=sum_e(k,i)+p/2*((abs(data1((k-1)*(N+L)+i)))^2+(abs(data1((k-1)*(N+L)+i+N)))^2);
% sum_e(k,i+1)=sum_e(k,i)+p/2*((abs(data1((k-1)*(N+L)+i)))^2);
%
else
dec_sum(k,i)=abs(sum_m(k,i))^2-(p*0.5*sum_e(k,i)/k);
dec_sum_1(k,i)=abs(sum_m(k,i))-(p*0.5*sum_e(k,i)/k);
sum_m(k,i+1)=sum_m(k,i)+data1((k-1)*(N+L)+i)*conj(data1((k-1)*(N+L)+i+N))-data1((k-1)*(N+L)+i-L)*conj(data1((k-1)*(N+L)+i+N-L));
% sum(k,i+1)=sum(k,i)+data1((k-1)*(N+L)+i)*conj(data1((k-1)*(N+L)+i+N));
sum_e(k,i+1)=sum_e(k,i)+p/2*(abs(data1((k-1)*(N+L)+i))^2+abs(data1((k-1)*(N+L)+i+N))^2-abs(data1((k-1)*(N+L)+i-L))^2-abs(data1((k-1)*(N+L)+i+N-L))^2);
% sum_e(k,i+1)=sum_e(k,i)+p/2*(abs(data1((k-1)*(N+L)+i))^2+abs(data1((k-1)*(N+L)+i+N))^2);
% dec_sum(k,i+1)=abs(sum(k,i+1))-p*0.5*sum_e(k,i+1);
% dec_sum(k,i)=abs(sum(k,i))-p*0.5*sum_e(k,i);
end ;
end;
sum_m(k+1,1)=0;%sum_m(k,i);
sum_e(k+1,1)=sum_e(k,i);
% sum_e=0;
% dec_sum(k,:)=abs(sum(k,:))-p*0.5*sum_e(k,:);
% dec_sum(k,1)=abs(sum(k,i+1))-p*0.5*sum_e(k,i+1);
% dec_sum(k+1,1)=dec_sum(k,i+1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% if k==1;
% plot_sum=sum(1,:);
% abs_sum=abs(sum(1,:))./(p*sum_e(1,:)+eps);
% else
plot_sum=[plot_sum sum_m(k,2:N+l+1)];
% abs_sum=[abs_sum abs(sum(k,2:N+L))-p*0.5*sum_e(k,2:N+L)];
abs_sum=[abs_sum dec_sum(k,:)];
abs_sum1=[abs_sum1 dec_sum_1(k,:)];
% abs_sum=[abs_sum abs(sum(k,:))./(p*sum_e(k,:)+eps)];
% end;
end;
%
%figure(1);
freq=angle(plot_sum)/(-1*2)/pi;
freq_out=freq;
% subplot(2,1,1);
% plot(abs_sum);
% subplot(2,1,2)
% plot(freq);
% % %
% figure(2);
% subplot(2,1,1);
% plot(abs_sum1);
% subplot(2,1,2)
% plot(freq);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555
% for k=1:m;
% ML_magnitude(k)=max(abs(sum(k,:)));
%
% % ML_timing(k)=find(max(abs(sum(k,:))));
% % ML_freq(k)=angle(find(ML_magnitude(k)));
% end ;
%%%%%%%%%%%%%%%%%%%%%%%%%%find
%%%%%%%%%%%%%%%%%%%%%%%%%%ml_timing%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% th=0.4;
% time=0;
% td=128/64;
% ml_magnitude=abs(plot_sum);
for k=1:m;
% max_magnitude(k)=max(abs(plot_sum([(k-1)*(N+L)+1:k*(N+L)])));
max_magnitude(k)=max(abs_sum([(k-1)*(N+l)+1:k*(N+l)]));
for i=(k-1)*(N+l)+1:k*(N+l);
% if abs(plot_sum(i))==max_magnitude(k);
if abs_sum(i)==max_magnitude(k);
ml_time(k)=i;
% ml_freq(k)=mean(freq( 1,[2+:ml_time(k)]));
ml_freq(k)=freq(ml_time(k)-1);
end;
end;
% ml_time(k)=(find(abs(plot_sum([(k-1)*(N+L)+1:k*(N+L)]))==max_magnitude(k))-(k-1)+(N+L)*(k-1))+(k-1)%+(N+L+1)*(k-1);%+(k-1)*(N+L)-k-L;
% ml_freq(k)=freq(ml_time(k)+k);
end;
% ml_freq=mean( ml_freq(1,:));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -