www.gusucode.com > GPS仿真Matlab编程源码程序 > GPS仿真Matlab编程源码程序/Wrelax3_jinggu.m

    
function [codePhase,carrFreq]= Wrelax3_jinggu(p, settings, loopCnt,t1,fd1)
% function acqResults= Wrelax(p, settings)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% clear all
% clc;
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% addpath include             % The software receiver functions
% addpath geoFunctions        % Position calculation related functions
addpath include1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 算法初值设定 =====================================================
M = 1;    %% 四阵元
N=settings.samplingFreq*300e-3;%0.05
N1=settings.samplingFreq*500e-3;
Nunit=settings.samplingFreq*1e-3;
samplesPerCode = round(settings.samplingFreq / (settings.codeFreqBasis / settings.codeLength));
codeFreq = settings.codeFreqBasis;
% count=2*M*N; % 处理4通道20ms数据
timebegin=0;
timeend=N/settings.samplingFreq;%0.05
timeend1=1e-3;
% m1=zeros(32,1);
% w=zeros(M,32);
% xreal=zeros(24e4,4);
% ximag=zeros(24e4,4);
% data=zeros(1,10);
% data1=zeros(1,10);
% delay1=zeros(10,32);
% cfreq=zeros(10,32);
% peakmatirx=zeros(10,32);
% delta=10;
% L=2^21;
% L=2^(nextpow2(N)+8);
% L1=2^nextpow2(N1);
% cnt=N/N1;
% uniqFftPt = ceil((L + 1) / cnt);
% FftPts = ceil((L1 + 1) / cnt);
t=0:1:N-1;
M1=N/(settings.samplingFreq*1e-3);
L=2^nextpow2(N);%15;
% m=13;
% delayor=0;
count=0;
snr=-18;    % dB
As=10^(snr/20);%1;
% s=zeros(10,10);
% y=zeros(N,2);
%% 仿真数据读取 =====================================================
% fid=fopen( 'realD10.dat','r');
% input_buffer = fread(fid, 2*M*N, 'single');
% fclose(fid);
% fid = fopen('imagD10.dat','r');
% input_buffer2= fread(fid, 2*M*N, 'single');
% fclose(fid);
% for p=1:10
file1=['h:\real_' int2str(p) '.dat'];
fid=fopen(file1,'r');
fseek(fid,8*Nunit*loopCnt,'bof');
% if loopCnt==1
%     fseek(fid,4*ceil(cPhaseold-1),'bof');
% else
%     fseek(fid,4*ceil(skip),'bof');
% end
input_buffer = fread(fid, N, 'double');
fclose(fid);
file2=['h:\imag_' int2str(p) '.dat'];
fid = fopen(file2,'r');
fseek(fid,8*Nunit*loopCnt,'bof');
% if loopCnt==1
%     fseek(fid,4*ceil(cPhaseold-1),'bof');
% else
%     fseek(fid,4*ceil(skip),'bof');
% end
input_buffer2= fread(fid, N, 'double');
fclose(fid);
xreal=input_buffer;
ximag=input_buffer2;
% for i=1:M
%     xreal(:,i)=input_buffer(1+(i-1)*N1:i*N1);
%     ximag(:,i)=input_buffer2(1+(i-1)*N1:i*N1);
% end
% 多天线
% for i=1:M
%     xreal(N+1:2*N,i)=input_buffer(1+(i-1+4)*N:(i+4)*N);
%     ximag(N+1:2*N,i)=input_buffer2(1+(i-1+4)*N:(i+4)*N);
% end
%% 数据预处理 =====================================================
%     snr=-18;    % dB
%     As=10^(snr/20);%1;
% s=As*signalgen(13,timebegin,settings.samplingFreq,timeend,0.7145e-3,1.6890825e6,codeFreq);%
% x=s.';
x=xreal+1i*ximag;
% randn('state',102);%+rand(1)*10);
% Noise=randn(M,N)+1i*randn(M,N);
% x1=x-Noise.';
% x=x1(1:N);
zz=fft(x);
% zz=x(1:6000,1);
% y1=round(real(x.'));
ma=max(abs(real(x.')));
y0=round(real(x.')*128/ma);
% y2=round(real(x.')*2^24);

% for i=1:6000:N
%     xx=xx+x(i:6000+i-1);
% end
% zz=fft(xx);
% plot(20*log10(abs(fft(zz))))
% z=fft(x(1:N))/max(fft(x(1:N)));
% plot(20*log10(abs(fft(z)/max(abs(fft(z))))))%(-N/2:N/2-1)/N*6e6,

%% 最小功率法求迭代初值 =====================================================
for m=13:13
% [codePhase,carrFreq,peak]=acquisition1(y0, settings, m);
        
%     if   peak>settings.acqThreshold

    count=count+1;

        bn=1;
        omiga=0;%0.7205*2*pi*settings.samplingFreq/N;
        sm=0;
        alpha=0;
        tao=0;
        flag=0;
        tag=0;
        
        x2=x.^2-mean(x.^2);
%         x2=x.*conj(x1)-mean(x.*conj(x1));
        pxx=abs(fft(x2,L));
        
        [fftMax1, fftMaxIndex1] = max(pxx);
        fdq1=(fftMaxIndex1/2-1)/L*settings.samplingFreq;
        fdq1=settings.samplingFreq/2-fdq1;
        pxx(fftMaxIndex1)=0;
        [fftMax2, fftMaxIndex2] = max(pxx);
        fdq2=(fftMaxIndex2/2-1)/L*settings.samplingFreq;
        fdq2=settings.samplingFreq/2-fdq2;
        
        Z=zeros(L-N,1);
        yt=[x2;Z];
        fd11=fdq1-5;
        fd21=fdq1+5;
        fun=@(fdp) -abs((exp(-1j*(0:L-1)*fdp/settings.samplingFreq*2*pi*2)*yt.^2).');
        fdm1=fminbnd(fun,fd11,fd21);
        
        fd11=fdq2-5;
        fd21=fdq2+5;
        fun=@(fdp) -abs((exp(-1j*(0:L-1)*fdp/settings.samplingFreq*2*pi*2)*yt.^2).');
        fdm2=fminbnd(fun,fd11,fd21);
        
        clear Z yt y1 y2 fun
                
               s=As*signalgen(m,timebegin,settings.samplingFreq,timeend,0,fdm1,codeFreq);%
               s=fft(s).';
               y1=conj(s).*zz;
               y2=abs(fft(y1,L));
               
%                [a,b]=max(abs(fft(real(y1),L)));
%                 omiga3=((b-1)/L)*2*pi;
%                 omiga3=mod(omiga3,settings.samplingFreq*2*pi*1e-3/N);
                [B,k]=max(y2);%(1:uniqFftPt-1));
                omiga2=(1-(k-1)/L)*2*pi;
                omiga2=mod(omiga2,settings.samplingFreq*2*pi*1e-3/N);
                or=settings.samplingFreq*2*pi*0.714518*1e-3/N;
                
                Z=zeros(L-N,1);
                yt=[y1;Z];
                fun=@(omigam) -abs((exp(-1j*(0:L-1)*omigam)*yt).');
                omiga(1)=fminbnd(fun,omiga2-2*pi/L,omiga2+2*pi/L);
                                
                delay(1)=omiga(1)*N/(2*pi*settings.samplingFreq)*1e3;
                
                omiga(1)=settings.samplingFreq*2*pi*delay(1)*1e-3/N;
                a=exp(-1i*omiga(1)*t).';
                alpha(1)=(a'.*s'*zz)/norm(s.*a)^2;
                
                clear Z yt y1 y2 fun
                          
%         g(1)=(norm(zz-alpha(1)*exp(1i*omiga(1)*t).'))^2;     %cost function
        g(1)=(norm(zz-alpha(1)*s.*exp(1i*omiga(1)*t.')))^2;
        g(2)=g(1);
        d1=inf;d2=inf;
        q1=inf;q2=inf;
       while abs((g(2)-g(1)))/g(1)>5e-5||flag==0
           g(1)=g(2);
%            if flag ==0
               flag=1;
%                %             for n=2:-1:1% 迭代次数
%                %             z1=fft(zz.*exp(-1i*2*pi*fdm*t).');
%                s=As*signalgen(m,timebegin,settings.samplingFreq,timeend,0,fdm,codeFreq);%
%                s=fft(s).';
%                y1=conj(s).*zz;
%            else
%                y=zz-alpha(2)*s.*a;
%                y1=conj(s).*y;
%            end
           

                
%                 s2=As*signalgen(m,timebegin,settings.samplingFreq,timeend,0,fdm,codeFreq);
%                 s2=fft(s2).';
                
%                 a=exp(-1i*omiga(1)*t).';

                y=zz-alpha(1)*s.*a;
                y1=conj(s).*y;
                y2=abs(fft(y1,L));

                %             plot(20*log10(abs(fft(y))))(1 : FftPts-1)
                
%                 ffts=abs(fft(y1,L));
%                 [B,k]=max(ffts);
                


                %-----------------FFT fmin----------------%
                [B,k]=max(y2(1:Nunit));%(1:uniqFftPt-1));
                omiga2=(1-(k-1)/L)*2*pi;
                omiga2=mod(omiga2,settings.samplingFreq*2*pi*1e-3/N);
                Z=zeros(L-N,1);
                yt=[y1;Z];
                fun=@(omigam) -abs((exp(-1j*(0:L-1)*omigam)*yt).');
                omiga(2)=fminbnd(fun,omiga2-2*pi/L,omiga2+2*pi/L);
                

           
                %-----------------计算时延-----------------%
                delay(2)=omiga(2)*N/(2*pi*settings.samplingFreq)*1e3;               
                
                omiga(2)=settings.samplingFreq*2*pi*delay(2)*1e-3/N;
                a=exp(-1i*omiga(2)*t).';
                alpha(2)=(a'.*s'*y)/norm(s.*a)^2;
                
                clear Z yt y1 y2 fun
                
               y=zz-alpha(2)*s.*a;
               y1=conj(s).*y;
                
                y2=abs(fft(y1,L));
            
                [B,k]=max(y2(1:Nunit));%(1:uniqFftPt-1));
                omiga1=(1-(k-1)/L)*2*pi;
                omiga1=mod(omiga1,settings.samplingFreq*2*pi*1e-3/N);
                Z=zeros(L-N,1);
                yt=[y1;Z];
                fun=@(omigam) -abs((exp(-1j*(0:L-1)*omigam)*yt).');
                omiga(1)=fminbnd(fun,omiga1-2*pi/L,omiga1+2*pi/L);
                                
                delay(1)=omiga(1)*N/(2*pi*settings.samplingFreq)*1e3;
                
                omiga(1)=settings.samplingFreq*2*pi*delay(1)*1e-3/N;
                a=exp(-1i*omiga(1)*t).';
                alpha(1)=(a'.*s'*zz)/norm(s.*a)^2;
                
                clear Z yt y1 y2 fun
                
            if  delay(1)-delay(2)>1e-4
                temp=delay(2);
                delay(2)=delay(1);
                delay(1)=temp;
                temp=omiga(2);
                omiga(2)=omiga(1);
                omiga(1)=temp;
            end

%             g(2)=(norm(zz-(alpha*exp(1i*omiga'*t)).'))^2;
            g(2)=(norm(zz-alpha(1)*s.*exp(1i*omiga(1)*t.')-alpha(2)*s.*exp(1i*omiga(2)*t.')))^2;
%             errort(1)=abs((min(delay)-t1*1e3)*1e6);
%             errort(2)=abs((max(delay)-t2*1e3)*1e6);
%             if max(abs(errort))<100
%                 break;
%             end
       end
%                 B1=delay(1)*1e-3-1e-7;E1=delay(1)*1e-3+1e-7;
%                 B2=fdm1-1;E2=fdm1+1;
%                 sj=signalgen(m,timebegin,settings.samplingFreq,timeend1,t1,fd1,codeFreq);
%                 t_sig=timebegin:1/settings.samplingFreq:timebegin+timeend1-1/settings.samplingFreq;
%                 myfun=@(x) -max(abs(ifft(fft(sj.*exp(-1i*2*pi*x(2)*(t_sig-x(1))))...
%                     .*conj(fft(signalgen1(m,timebegin,settings.samplingFreq,timeend1,x(1),codeFreq))))));
%                 x0=[B1;B2];
%                 xx=fmincon(myfun,x0,[],[],[],[],[B1;B2],[E1;E2],[],...
%                     optimset('Algorithm','interior-point','TolX',1e-10,'TolFun',1e-12,'TolCon',1e-12));%'TolConSQP',1e-20
%                 delay1_p=xx(1);
%                 fdm_p=xx(2);
%                 clear myfun sj xx t_sig
       delay_1=delay(1);
       delay_2=delay(2);
%        fdm1=fdm_p;
       s1=s.*exp(-1i*omiga(1)*t).';
       s2=s.*exp(-1i*omiga(2)*t).';
       C1=norm(zz'*s1*inv(s1'*s1)*s1'*zz)+norm(zz'*s2*inv(s2'*s2)*s2'*zz);
       
       clear s1 s2 a
       
               s=As*signalgen(m,timebegin,settings.samplingFreq,timeend,0,fdm2,codeFreq);%
               s=fft(s).';
               y1=conj(s).*zz;
               y2=abs(fft(y1,L));
               
%                [a,b]=max(abs(fft(real(y1),L)));
%                 omiga3=((b-1)/L)*2*pi;
%                 omiga3=mod(omiga3,settings.samplingFreq*2*pi*1e-3/N);
                [B,k]=max(y2);%(1:uniqFftPt-1));
                omiga2=(1-(k-1)/L)*2*pi;
                omiga2=mod(omiga2,settings.samplingFreq*2*pi*1e-3/N);
                or=settings.samplingFreq*2*pi*0.714518*1e-3/N;
                
                Z=zeros(L-N,1);
                yt=[y1;Z];
                fun=@(omigam) -abs((exp(-1j*(0:L-1)*omigam)*yt).');
                omiga(1)=fminbnd(fun,omiga2-2*pi/L,omiga2+2*pi/L);
                                
                delay(1)=omiga(1)*N/(2*pi*settings.samplingFreq)*1e3;
                
                omiga(1)=settings.samplingFreq*2*pi*delay(1)*1e-3/N;
                a=exp(-1i*omiga(1)*t).';
                alpha(1)=(a'.*s'*zz)/norm(s.*a)^2;
                
                clear Z yt y1 y2 fun
                          
%         g(1)=(norm(zz-alpha(1)*exp(1i*omiga(1)*t).'))^2;     %cost function
        g(1)=(norm(zz-alpha(1)*s.*exp(1i*omiga(1)*t.')))^2;
        g(2)=g(1);
        d1=inf;d2=inf;
        q1=inf;q2=inf;
        flag=0;
       while abs((g(2)-g(1)))/g(1)>5e-5||flag==0
           g(1)=g(2);
%            if flag ==0
               flag=1;
%                %             for n=2:-1:1% 迭代次数
%                %             z1=fft(zz.*exp(-1i*2*pi*fdm*t).');
%                s=As*signalgen(m,timebegin,settings.samplingFreq,timeend,0,fdm,codeFreq);%
%                s=fft(s).';
%                y1=conj(s).*zz;
%            else
%                y=zz-alpha(2)*s.*a;
%                y1=conj(s).*y;
%            end
           

                
%                 s2=As*signalgen(m,timebegin,settings.samplingFreq,timeend,0,fdm,codeFreq);
%                 s2=fft(s2).';
                
%                 a=exp(-1i*omiga(1)*t).';

                y=zz-alpha(1)*s.*a;
                y1=conj(s).*y;
                y2=abs(fft(y1,L));

                %             plot(20*log10(abs(fft(y))))(1 : FftPts-1)
                
%                 ffts=abs(fft(y1,L));
%                 [B,k]=max(ffts);
                


                %-----------------FFT fmin----------------%
                [B,k]=max(y2);%(1:uniqFftPt-1));
                omiga2=(1-(k-1)/L)*2*pi;
                omiga2=mod(omiga2,settings.samplingFreq*2*pi*1e-3/N);
                Z=zeros(L-N,1);
                yt=[y1;Z];
                fun=@(omigam) -abs((exp(-1j*(0:L-1)*omigam)*yt).');
                omiga(2)=fminbnd(fun,omiga2-2*pi/L,omiga2+2*pi/L);
                

           
                %-----------------计算时延-----------------%
                delay(2)=omiga(2)*N/(2*pi*settings.samplingFreq)*1e3;               
                
                omiga(2)=settings.samplingFreq*2*pi*delay(2)*1e-3/N;
                a=exp(-1i*omiga(2)*t).';
                alpha(2)=(a'.*s'*y)/norm(s.*a)^2;
                
                clear Z yt y1 y2 fun
                
               y=zz-alpha(2)*s.*a;
               y1=conj(s).*y;
                
                y2=abs(fft(y1,L));
            
                [B,k]=max(y2);%(1:uniqFftPt-1));
                omiga1=(1-(k-1)/L)*2*pi;
                omiga1=mod(omiga1,settings.samplingFreq*2*pi*1e-3/N);
                Z=zeros(L-N,1);
                yt=[y1;Z];
                fun=@(omigam) -abs((exp(-1j*(0:L-1)*omigam)*yt).');
                omiga(1)=fminbnd(fun,omiga1-2*pi/L,omiga1+2*pi/L);
                                
                delay(1)=omiga(1)*N/(2*pi*settings.samplingFreq)*1e3;
                
                omiga(1)=settings.samplingFreq*2*pi*delay(1)*1e-3/N;
                a=exp(-1i*omiga(1)*t).';
                alpha(1)=(a'.*s'*zz)/norm(s.*a)^2;
                
                clear Z yt y1 y2 fun

            if  delay(1)-delay(2)>1e-4
                temp=delay(2);
                delay(2)=delay(1);
                delay(1)=temp;
                temp=omiga(2);
                omiga(2)=omiga(1);
                omiga(1)=temp;
            end

%             g(2)=(norm(zz-(alpha*exp(1i*omiga'*t)).'))^2;
            g(2)=(norm(zz-alpha(1)*s.*exp(1i*omiga(1)*t.')-alpha(2)*s.*exp(1i*omiga(2)*t.')))^2;
%             errorf=abs(fdm-fd1);
%             errort=abs((delay-[t1,t2]*1e3)*1e6);
%             errort(1)=abs((min(delay)-t1*1e3)*1e6);
%             errort(2)=abs((max(delay)-t2*1e3)*1e6);
%             if max(abs(errort))<100
%                 break;
%             end
%             if d1<errort(1) && d2<errort(2)
%                 errort(1)=d1;
%                 errort(2)=d2;
%                 break;
%             end
%             d1=errort(1);d2=errort(2);
%             fdm;
%             delay;
%             fdm-fd1
%             (delay-[t1,t2]*1e3)*1e6

%             errorf
%             errort
       end
       delay_3=delay(1);
       delay_4=delay(2);
%        fdm2=fdm_p;
       s1=s.*exp(-1i*omiga(1)*t).';
       s2=s.*exp(-1i*omiga(2)*t).';
       C2=norm(zz'*s1*inv(s1'*s1)*s1'*zz)+norm(zz'*s2*inv(s2'*s2)*s2'*zz);  
       
       clear s1 s2 a
       
       if C1>C2
           delay(1)=delay_1;
           delay(2)=delay_2;
           fdm=fdm1;
       else
           delay(1)=delay_3;
           delay(2)=delay_4;
           fdm=fdm2;
       end       
%                 C1=0;taom=0;omigam=0;mm=0;I1=0;C2=N;
%                 B1=delay(1)*1e-3-7e-8;E1=delay(1)*1e-3+7e-8;S1=5e-9;
%                 B2=fdm-1;E2=fdm+1;S2=0.1;
%                 for tao=B1:S1:E1
% %                 for omiga=omiga2-1e-6:1e-9:omiga2+1e-6
%                     mm=mm+1;
%                     nn=0;
% %                     omiga=settings.samplingFreq*2*pi*tao/N;
%                     for fd=B2:S2:E2
% %                         fd=1.249999999587848e+006;
%                         nn=nn+1;
%                         sj=signalgen(m,timebegin,settings.samplingFreq,timeend1,t1,fd1,codeFreq);
%                         t_sig=timebegin:1/settings.samplingFreq:timebegin+timeend1-1/settings.samplingFreq;
%                         sj1=sj.*exp(-1i*2*pi*fd*(t_sig-tao));
%                         sj2=signalgen1(m,timebegin,settings.samplingFreq,timeend1,tao,codeFreq);
%                         SC=fft(sj1).*conj(fft(sj2));
%                         C=max(abs(ifft(SC)));
%                         D(mm,nn)=max(abs(ifft(SC)));
%                         clear sj sj1 sj2 SC
%                         if C>C1
% %                         if abs(C-N)<C2;
% %                             C2=C-N;
%                             C1=C;
%                             I1=mm;
%                             I2=nn;
%                             delay(1)=B1+(I1-1)*S1;
% %                             omiga(1)=settings.samplingFreq*2*pi*delay1_p*1e-3/N;
%                             fdm=B2+(I2-1)*S2; 
%                         end
%                     end
%                 end

                B1=delay(1)*1e-3-1e-7;E1=delay(1)*1e-3+1e-7;
                B2=fdm-10;E2=fdm+10;
                sj=signalgen(m,timebegin,settings.samplingFreq,timeend1,t1,fd1,codeFreq);
                t_sig=timebegin:1/settings.samplingFreq:timebegin+timeend1-1/settings.samplingFreq;
                myfun=@(x) -max(abs(ifft(fft(sj.*exp(-1i*2*pi*x(2)*(t_sig-x(1))))...
                    .*conj(fft(signalgen1(m,timebegin,settings.samplingFreq,timeend1,x(1),codeFreq))))));
                x0=[B1;B2];
                xx=fmincon(myfun,x0,[],[],[],[],[B1;B2],[E1;E2],[],...
                    optimset('Algorithm','interior-point','TolX',1e-10,'TolFun',1e-12,'TolCon',1e-12));%'TolConSQP',1e-20
                delay(1)=xx(1);
                fdm=xx(2);
                clear myfun sj xx t_sig

       
    if (delay(1)-delay(2))>0 && (delay(1)-delay(2))<0.01
        temp=delay(1);
        delay(1)=delay(2);
        delay(2)=temp;
    end
    carrFreq=fdm;
    codePhase=delay(1)*Nunit*1e3;
%     acqResults.carrFreq(m)=fdm;
%     acqResults.codePhase(m)=delay(1)*6000;
%         1111

%         result1(num,:)=errort;
%         result2(num)=errorf;
%     end
%     aver1=mean(result1,1);
%     aver1=repmat(aver1,100,1);
%     aver2=mean(result2,2);
%     aver2=repmat(aver2,1,100);
%     res1=result1-aver1;
%     res2=result2-aver2;
%     mse1=sqrt(sum(result1.^2)/num);
%     mse2=sqrt(sum(result2.^2)/num);
% 
%     stdev1=std(result1,0,1);
%     stdev2=std(result2,0,2);
%     
%     mse1re(snr+21,:)=mse1;
%     mse2re(snr+21)=mse2;
%     mse1re(N/N1,:)=mse1;
%     mse2re(N/N1)=mse2;

%     figure
%     plot(result1(:,1))%,'k:*'
%     title('时延误差') 
%     xlabel('\fontsize{12}次数');
%     ylabel('\fontsize{12}误差值(ns)');
%     figure
%     plot(result1(:,2))
%     title('时延误差') 
%     xlabel('\fontsize{12}次数');
%     ylabel('\fontsize{12}误差值(ns)');
%     figure
%     plot(result2)
%     title('载波频率误差') 
%     xlabel('\fontsize{12}次数');
%     ylabel('\fontsize{12}误差值(Hz)');

%     figure
%     plot(res1(:,1))
% %     axis([1 10 -1e-6 1e-6])
%     figure
%     plot(res1(:,2))
%     figure
%     plot(res2)
%     save file3 acqResults
%     end
end
%     file3=['result_f' int2str(p) '.mat'];
%     file4=['result_c' int2str(p) '.mat'];
%     fid3=fopen(file3,'a');
%     fid4=fopen(file4,'a');
%     count3=fwrite(fid3,acqResults.carrFreq,'single');  
%     count4=fwrite(fid4,acqResults.codePhase,'single');
%     fclose(fid3);
%     fclose(fid4);
% end


%     figure
%     plot(-20:2:0,mse1re(1:2:end,1))%,'k:*'
%     title('时延估计') 
%     xlabel('\fontsize{12}SNR(dB)');
%     ylabel('\fontsize{12}MSE(ns)');
%     figure
%     plot(-20:2:0,mse1re(1:2:end,2))%,'k:*'
%     title('时延估计') 
%     xlabel('\fontsize{12}SNR(dB)');
%     ylabel('\fontsize{12}MSE(ns)');
%     figure
%     plot(-20:2:0,mse2re(1:2:end))%,'k:*'
%     title('载波频率估计') 
%     xlabel('\fontsize{12}SNR(dB)');
%     ylabel('\fontsize{12}MSE(Hz)');
    
%     figure
%     plot(mse1re(:,1))%,'k:*'
%     title('时延估计') 
%     xlabel('\fontsize{12}数据长度(ms)');
%     ylabel('\fontsize{12}MSE(ns)');
%     figure
%     plot(mse1re(:,2))%,'k:*'
%     title('时延估计') 
%     xlabel('\fontsize{12}数据长度(ms)');
%     ylabel('\fontsize{12}MSE(ns)');
%     figure
%     plot(mse2re)%,'k:*'
%     title('载波频率估计') 
%     xlabel('\fontsize{12}数据长度(ms)');
%     ylabel('\fontsize{12}MSE(ns)');

% save result.mat mse1re mse2re
% save result1.mat mse1re mse2re
%% 保存结果 =====================================================
% % wopt1=sum(wopt,2);
% % ynew=wopt1'*x;
% % ynew=sum(ynew,1);
% % ynew=zeros(5,2*N);
% ynew=wopt'*x;
% % ynew(1,:)=wopt(:,1)'*x;
% % ynew(2,:)=wopt(:,2)'*x;
% % ynew(3,:)=wopt(:,3)'*x;
% % ynew(4,:)=wopt(:,4)'*x;
% % ynew(5,:)=wopt(:,5)'*x;
% % for i=1:5
% % filename = ['e:\w' int2str(i) '.dat'];
% % fid = fopen(filename,'wb+');
% % filename1 = ['e:\ynew' int2str(i) '.dat'];
% % fwrite(fid,round(real(filename1)*2^5), 'int8');
% % fclose(fid);
% % end
% save ynew.mat ynew wopt

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% acquisition the satelliate
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Acquisition ===================================================

% % Do acquisition if it is not disabled in settings or if the variable
% % acqResults does not exist.length(Inx)
% for i=4:4
%     disp ('Starting acquisiting ...');
%     %--- Do the acquisition -------------------------------------------
%     disp ('Acquiring satellites...');
%     result=round(real(ynew(i,:))*2^5); %
%     %         result=round(real(ynew(1,:)));
%     acqResults = acquisition1(result, settings);
%     figure(i);
%     plotAcquisition(acqResults);
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%