⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 用于雷达成像的多普勒质心估计
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	*/


        kkfft(in_echo_r,in_echo_i,range_samples,
          LOG2(range_samples),fft_in_echo_r,fft_in_echo_i,0);


    		
        for(i=0;i<range_samples/2;i++)
        {
            trans_r=fft_in_echo_r[i]/1024;
            trans_i=fft_in_echo_i[i]/1024;
            fft_in_echo_r[i]=fft_in_echo_r[i+range_samples/2]/1024;
            fft_in_echo_i[i]=fft_in_echo_i[i+range_samples/2]/1024;
            fft_in_echo_r[i+range_samples/2]=trans_r;
            fft_in_echo_i[i+range_samples/2]=trans_i;
       	}

  
        for(i=0;i<range_samples;i++)
		{
         
		
		 test_data_r[ia][i]=(fft_in_echo_r[i]*range_filter_r[i]
             -fft_in_echo_i[i]*range_filter_i[i]);

         test_data_i[ia][i]=(fft_in_echo_r[i]*range_filter_i[i]
          +fft_in_echo_i[i]*range_filter_r[i]);
		
		
		}

    }
	fclose(fp);

	//  test_data[ia,*]=shift(fft(in_echo-total(in_echo)/range_samples,-1),
	//	-range_samples/2)*range_filter




    for (ir=0;ir<range_samples/2-band_cut;ir++ )
    {
        
		
		for (ia =0;ia<=azimuth_samples-1;ia++)
    		
        {    look1_r[ia][range_samples/2-band_cut-1-ir]=
               test_data_r[ia][ir+band_cut];
				//sqrt(pow(test_data_r[ia][ir+band_cut],2)
                //+pow(test_data_i[ia][ir+band_cut],2));

 

             look1_i[ia][range_samples/2-band_cut-1-ir]=
               test_data_i[ia][ir+band_cut];
			   //sqrt(pow(test_data_r[ia][ir+band_cut],2)
			   //+pow(test_data_i[ia][ir+band_cut],2));

             look2_r[ia][ir]=
               test_data_r[ia][range_samples/2+ir-1];
			   //sqrt(pow(test_data_r[ia][range_samples/2+ir-1],2)
			   //+pow(test_data_i[ia][range_samples/2+ir-1],2));

	

             look2_i[ia][ir]=
               test_data_i[ia][range_samples/2+ir-1];
			   //sqrt(pow(test_data_r[ia][range_samples/2+ir-1],2)
			   //+pow(test_data_i[ia][range_samples/2+ir-1],2));
		}

	}

	//for ir=0,range_samples/2-band_cut-1LL do begin
    //look1[*,range_samples/2-band_cut-1-ir]=test_data[*,ir+band_cut]/abs(test_data[*,ir+band_cut])
    //look2[*,ir]=test_data[*,range_samples/2+ir-1]/abs(test_data[*,range_samples/2+ir-1])




    for ( ia =0;ia<=azimuth_samples-1;ia++)
    {
        for(i=0;i<range_samples/2-band_cut;i++)
    	{
            tlook1_r[i]=look1_r[ia][i]*280;
            tlook1_i[i]=look1_i[ia][i]*280;
            tlook2_r[i]=look2_r[ia][i]*280;
            tlook2_i[i]=look2_i[ia][i]*280;
    	}


        kkfft(tlook1_r,tlook1_i,range_samples/2-band_cut,
                LOG2(range_samples/2-band_cut),fft_look1_r,fft_look1_i,1);
            kkfft(tlook2_r,tlook2_i,range_samples/2-band_cut,
                LOG2(range_samples/2-band_cut),fft_look2_r,fft_look2_i,1);






   /* 
        for(i=0;i<range_samples/2-band_cut;i++)
    	{
            fft_look1_r[i]=fft_look1_r[i]*cos(-band_look/4.0*tao[i])-
                fft_look1_i[i]*sin(-band_look/4.0*tao[i]);

            fft_look1_i[i]=fft_look1_r[i]*sin(-band_look/4.0*tao[i])+
                fft_look1_i[i]*cos(-band_look/4.0*tao[i]);

            fft_look2_r[i]=fft_look2_r[i]*cos(band_look/4.0*tao[i])-
                fft_look2_i[i]*sin(-band_look/4.0*tao[i]);

            fft_look2_i[i]=fft_look2_r[i]*sin(band_look/4.0*tao[i])+
                fft_look2_i[i]*cos(-band_look/4.0*tao[i]);
    	}
        kkfft(fft_look1_r,fft_look1_i,range_samples/2-band_cut,
          LOG2(range_samples/2-band_cut),tlook1_r,tlook1_i,0);
        kkfft(fft_look2_r,fft_look2_i,range_samples/2-band_cut,
          LOG2(range_samples/2-band_cut),tlook2_r,tlook2_i,0);


        for(i=0;i<(range_samples/2-band_cut)/2;i++)
        {
            trans_r=tlook1_r[i];
            trans_i=tlook1_i[i];
            tlook1_r[i]=tlook1_r[i+(range_samples/2-band_cut)/2];
            tlook1_i[i]=tlook1_i[i+(range_samples/2-band_cut)/2];
            tlook1_r[i+(range_samples/2-band_cut)/2]=trans_r;
            tlook1_i[i+(range_samples/2-band_cut)/2]=trans_i;
            trans_r=tlook2_r[i];
            trans_i=tlook2_i[i];
            tlook2_r[i]=tlook2_r[i+(range_samples/2-band_cut)/2];
            tlook2_i[i]=tlook2_i[i+(range_samples/2-band_cut)/2];
            tlook2_r[i+(range_samples/2-band_cut)/2]=trans_r;
            tlook2_i[i+(range_samples/2-band_cut)/2]=trans_i;
       	}

		*/
        for(i=0;i<(range_samples/2-band_cut);i++)
        {	
            look1_r[ia][i]=fft_look1_r[i];
            look1_i[ia][i]=fft_look1_i[i];
            look2_r[ia][i]=fft_look2_r[i];
            look2_i[ia][i]=fft_look2_i[i];
   		}



    }



	//for ia=0,azimuth_samples-1LL do begin
    //look1[ia,*]=
	  //shift(fft(fft(look1[ia,*],1)*exp(dcomplex(0,-band_look/4.*tao)),-1),-(range_samples/2-band_cut)/2)
    //look2[ia,*]=
	  //shift(fft(fft(look2[ia,*],1)*exp(dcomplex(0,band_look/4.*tao)),-1),-(range_samples/2-band_cut)/2)




    for ( ia =0;ia<azimuth_samples;ia++)
    {
        for(i=0;i<range_samples/2-band_cut;i++)
    	{
            mlbf_r[ia][i]=look1_r[ia][i]*look2_r[ia][i]+look1_i[ia][i]*look2_i[ia][i];
            mlbf_i[ia][i]=-look1_r[ia][i]*look2_i[ia][i]+look1_i[ia][i]*look2_r[ia][i];
    	}

    }
	//mlbf=look1*conj(look2)



    for ( ir=0;ir<range_samples/2-band_cut;ir++)
    {
         for ( ia =0;ia<azimuth_samples;ia++)
    	{
              tmlbf_r[ia]=mlbf_r[ia][ir]/azimuth_samples;
              tmlbf_i[ia]=mlbf_i[ia][ir]/azimuth_samples;
    	}


         kkfft(tmlbf_r,tmlbf_i,azimuth_samples,LOG2(azimuth_samples),
                  fft_mlbf_r,fft_mlbf_i,0);
			


         for(i=0;i<azimuth_samples/2;i++)
       	 {
             trans_r=fft_mlbf_r[i];
             trans_i=fft_mlbf_i[i];
             fft_mlbf_r[i]=fft_mlbf_r[i+azimuth_samples/2];
             fft_mlbf_i[i]=fft_mlbf_i[i+azimuth_samples/2];
             fft_mlbf_r[i+azimuth_samples/2]=trans_r;
             fft_mlbf_i[i+azimuth_samples/2]=trans_i;
		 }


         for ( ia =0;ia<azimuth_samples;ia++)
        {
             mlbf_r[ia][ir]=fft_mlbf_r[ia];
             mlbf_i[ia][ir]=fft_mlbf_i[ia];
             if(max_mlbf<sqrt(pow(mlbf_r[ia][ir],2)+pow(mlbf_i[ia][ir],2)))
			 {
				 max_mlbf=sqrt(pow(mlbf_r[ia][ir],2)+pow(mlbf_i[ia][ir],2));
				 iw=ia;
			 }

		
        }
 
	    
         aver_center=aver_center+iw;
		 iw=0;
         max_mlbf=0;
    }
	//for ir=0,range_samples/2-band_cut-1LL do begin
    //mlbf[*,ir]=shift(fft(mlbf[*,ir],-1),-azimuth_samples/2)
    //aver_center=aver_center+where(abs(mlbf[*,ir]) EQ max(abs(mlbf[*,ir])))


    

    aver_center=aver_center/(range_samples/2-band_cut);

    f_beat=PRF/azimuth_samples*(aver_center-azimuth_samples/2);

    doppler_ambiguity=-f_beat*(c/lamd)/(band_look/2.0);

	
	
	printf("aver_center=%f\n f_beat=%f\n doppler_ambiguity=%f\n",
		aver_center,f_beat,doppler_ambiguity);
	



	free(in_echo_r);
	free(in_echo_i);
    free(fft_in_echo_r);
	free(fft_in_echo_i);
    free(tlook1_r);
	free(tlook1_i);
	free(tlook2_r);
	free(tlook2_i);
	free(fft_look1_r);
	free(fft_look1_i);
	free(fft_look2_r);
	free(fft_look2_i);
    free(mlbf_r);
	free(mlbf_i);
    free(tmlbf_r);
	free(tmlbf_i);
	free(fft_mlbf_r);
	free(fft_mlbf_i);
    free(test_data_r);
    free(test_data_i);
    free(look1_r);
	free(look1_i);
	free(look2_r);
	free(look2_i);
    free(range_filter_r);
	free(range_filter_i);
	free(range_f);
	
	return ;

}


 

int main()
{
 
 estimation();
 return 0;

   

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -