亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sarcpp.cpp

?? sar目標(biāo)成像源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
// SAR.cpp: implementation of the CSAR class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SAR.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSAR::CSAR()
{
    TargetSimuType = POINT_TARGET;/*初始按執(zhí)行點(diǎn)目標(biāo)模擬,選中面目標(biāo)模擬選項(xiàng)執(zhí)行面目標(biāo)模擬*/
    LpAizm_Time = NULL;
	LpRange_Time = NULL;
	LpTranSignalRe = NULL;
	LpTranSignalIm = NULL;

	LpRangeMatchFilter = NULL;
	LpRecSignalRe = NULL;
	LpRecSignalIm = NULL;

	LpAizm_Frequency = NULL;
	LpRange_Frequency = NULL;
	LpVTao = NULL;
	LpVTaoRef = NULL;
	LpBeta = NULL;
	LpKm = NULL; 
	LpKsrcInv = NULL;

	SARParaInit();
}

CSAR::~CSAR()
{
	if(LpAizm_Time != NULL) 
	{
		delete LpAizm_Time;
        LpAizm_Time = NULL;
	}
	if(LpRange_Time != NULL) 
	{
		delete LpRange_Time;
        LpRange_Time = NULL;
	}
	if(LpTranSignalRe != NULL) 
	{
		delete LpTranSignalRe;
        LpTranSignalRe = NULL;
	}

	if(LpTranSignalIm != NULL) 
	{
		delete LpTranSignalIm;
        LpTranSignalIm = NULL;
	}
	if (LpRangeMatchFilter != NULL)
	{
		delete LpRangeMatchFilter;
        LpRangeMatchFilter = NULL;
	}

    if (LpRecSignalRe != NULL)
	{
		delete LpRecSignalRe;
        LpRecSignalRe = NULL;
	}
    if (LpRecSignalIm != NULL)
	{
		delete LpRecSignalIm;
        LpRecSignalIm = NULL;
	}
	//釋放CS算法指針變量
	if (LpAizm_Frequency != NULL)
	{
		delete 	LpAizm_Frequency;
       	LpAizm_Frequency = NULL;
	}
   	if (LpRange_Frequency != NULL)
	{
		delete 	LpRange_Frequency;
       	LpRange_Frequency = NULL;
	}
    if (LpVTao != NULL)
	{
		delete 	LpVTao;
       	LpVTao = NULL;
	}
    if (LpVTaoRef != NULL)
	{
		delete 	LpVTaoRef;
       	LpVTaoRef = NULL;
	}
    if (LpBeta != NULL)
	{
		delete 	LpBeta;
       	LpBeta = NULL;
	}
    if (LpKm != NULL)
	{
		delete 	LpKm;
       	LpKm = NULL;
	}
	if(LpKsrcInv !=NULL)
	{
       	delete 	LpKsrcInv;
       	LpKsrcInv = NULL;
	}
	
}

void CSAR::SARParaInit()
{
    A_in = 3;   
//	A_in = 0;  
//	R_in = 5;   
	R_in = 3;
//	RCM_in =5; 
	RCM_in = 3; 
	R_Res = 5;
    A_Res = 2.5;
	Wavelenth = 0.24;
    V_ami = 180;
	Pulsewidth = 0.00001;
    Rt = 15000+500;
	B_r = C/(2*R_Res);
	B_d = V_ami/A_Res;
	PRF = B_d*1.1;
	FS =  B_r*1.1;
    Rbin = C/(2*FS);
	KR = -B_r/Pulsewidth;
    FR = -2.0*V_ami*V_ami/(Rt*Wavelenth);
    Tsyn = fabs(B_d/FR);
    NTao = int(floor(Pulsewidth*FS));
    Nrcm = int(floor((sqrt(Rt*Rt + V_ami*V_ami*Tsyn*Tsyn/4.0) - Rt)/Rbin ));
    Nr = NTao + Nrcm + 100;
    Na =int( floor(Tsyn*PRF));
	if (LpAizm_Time != NULL)
	{
      delete  LpAizm_Time;
	  LpAizm_Time = NULL;
	}
    
    if (LpRange_Time != NULL)
	{
      delete  LpRange_Time;
	  LpRange_Time = NULL;
	}

    if (LpTranSignalRe != NULL)
	{
      delete  LpTranSignalRe;
	  LpTranSignalRe = NULL;
	}
	
    if (LpTranSignalIm != NULL)
	{
      delete  LpTranSignalIm;
	  LpTranSignalIm = NULL;
	}
	
	 if (LpRangeMatchFilter != NULL)
	{
      delete LpRangeMatchFilter;
	  LpRangeMatchFilter = NULL;
	}
	
    if (LpRecSignalRe != NULL)
	{
      delete LpRecSignalRe;
	  LpRecSignalRe = NULL;
	}

	 if (LpRecSignalIm != NULL)
	{
      delete LpRecSignalIm;
	  LpRecSignalIm = NULL;
	}
 	
	/*對(duì)采樣頻率FS及脈沖重復(fù)頻率PRF優(yōu)化,并使距離向和方位向的采樣點(diǎn)數(shù)為2的指數(shù)次方*/
   int nr=1,na=1;
   while (pow(2,nr) < Nr) nr++;
   while (pow(2,na) < Na) na++;
   double rate = 1.1;
   while (pow(2,nr) > Nr + nr/2)
   { 
       rate += 0.01;  //0.01為調(diào)整優(yōu)化的步長(zhǎng)
       FS = B_r*rate;
       Rbin = C/(2*FS);
       NTao = int(floor(Pulsewidth*FS));
	   Nrcm = int(floor((sqrt(Rt*Rt + V_ami*V_ami*Tsyn*Tsyn/4.0) - Rt)/Rbin ));
       Nr = NTao + Nrcm + 100;
   }
   R0 = Rt - Rbin*floor(NTao/2) - 50*Rbin;
   rate = 1.1;
   while (pow(2,na) > Na +na/2)
   {
      
	  rate += 0.01;  //0.01為調(diào)整優(yōu)化的步長(zhǎng)
      PRF = B_d*rate;
	  Na = int(floor(Tsyn*PRF));

   }
   NaEffective = Na;//方位向采樣有效點(diǎn)數(shù)
   NrEffective = Nr;//距離向采樣有效點(diǎn)數(shù)
   Nr = int( pow(2,nr));  //這里的Nr大于距離向的有效點(diǎn)數(shù)
   Na = int( pow(2,na));  //這里的Na大于綜合孔徑時(shí)間對(duì)應(yīng)的方位向點(diǎn)數(shù)

   //CS參數(shù)初始化
    Ref = Rt;

	 if (LpAizm_Frequency != NULL)
	{
      delete LpAizm_Frequency;
	  LpAizm_Frequency = NULL;
	}
	
	if (LpRange_Frequency != NULL)
	{
      delete LpRange_Frequency;
	  LpRange_Frequency = NULL;
	}
    
	if (LpVTao != NULL)
	{
      delete LpVTao;
	  LpVTao = NULL;
	}
	 
	if (LpVTaoRef != NULL)
	{
      delete LpVTaoRef;
	  LpVTaoRef = NULL;
	}
	
	if (LpBeta != NULL)
	{
      delete LpBeta;
	  LpBeta = NULL;
	}
	
	if (LpKm  != NULL)
	{
      delete LpKm ;
	  LpKm  = NULL;
	}
	
	if (LpKsrcInv != NULL)
	{
      delete LpKsrcInv;
	  LpKsrcInv = NULL;
	}
    
}

BOOL CSAR::LMFSignalProduce()
{
	if ((LpTranSignalIm == NULL)&& (LpTranSignalRe == NULL)&&(LpRange_Time == NULL))
	{
		LpRange_Time = new double [Nr];
        LpTranSignalRe = new double [Nr];
		LpTranSignalIm = new double [Nr];
    }
	if ( (LpTranSignalRe == NULL)||(LpTranSignalIm ==NULL)||(LpRange_Time == NULL))
	{
		AfxMessageBox("allocate memeory fail");
		return FALSE;
	}
       memset( LpTranSignalRe,0,sizeof(double)*Nr);//信號(hào)緩沖區(qū)置0
	   memset( LpTranSignalIm,0,sizeof(double)*Nr);//信號(hào)緩沖區(qū)置0
    for (int i = 0;i< Nr;i++)
	{
       LpRange_Time[i] = i/FS +2.0*R0/C;  //發(fā)射信號(hào)時(shí)間

	}
	for (int j=0;j < NTao; j++)
	{
	double PolyNomal = LpRange_Time[j] - 2.0*R0/C - Pulsewidth/2.0;
    LpTranSignalRe[j]   = cos(PI*KR*PolyNomal*PolyNomal); //產(chǎn)生發(fā)射信號(hào)實(shí)部
	LpTranSignalIm[j]  = sin(PI*KR*PolyNomal*PolyNomal);  //產(chǎn)生發(fā)射信號(hào)虛部
	}
	return TRUE;
}

BOOL CSAR::RecEchoSignal()
{
 if ((LpTranSignalIm == NULL)||(LpTranSignalRe == NULL)||(LpRange_Time == NULL)) return FALSE;
 if((LpAizm_Time ==NULL)&&(LpRecSignalRe == NULL)&&(LpRecSignalIm == NULL)) 
  {
	  LpAizm_Time = new double[Na];
      LpRecSignalRe = new double[Na*Nr];
      LpRecSignalIm = new double[Na*Nr];
  }
  if((LpAizm_Time ==NULL)||(LpRecSignalRe == NULL)||(LpRecSignalIm == NULL)) 
   {
	  AfxMessageBox("接收回波內(nèi)存分配失敗");
	  return FALSE;
  }
  memset(LpAizm_Time,0,sizeof(double)*Na);
  memset(LpRecSignalRe,0,sizeof(double)*Na*Nr);
  memset(LpRecSignalIm,0,sizeof(double)*Na*Nr);
  int na,nr,Nr_Start;
  complex<double> Echophaset,SignalPhase;//回波產(chǎn)生的相位,線性調(diào)頻信號(hào)的相位
  int w,h;//面目標(biāo)圖像的尺寸
 
  BYTE *lpAreaImage = NULL;//面目標(biāo)圖像DIB數(shù)據(jù)
  if(TargetSimuType == AREA_TARGET )
  GetAreaInformation(&lpAreaTargetImageFileName,&w,&h,&lpAreaImage);

  for( na=0;na<NaEffective;na++)
  {
	double Rat[5],RatArea,x,angle;
    if( na/PRF < Tsyn) *(LpAizm_Time + na) = -Tsyn/2.0 + na/PRF;
	x=(*(LpAizm_Time + na))*V_ami;
    
	if(TargetSimuType == POINT_TARGET)//按點(diǎn)目標(biāo)進(jìn)行模擬
	{
	    Rat[0] = sqrt(x*x + Rt*Rt);
        Rat[1] = sqrt((x-20)*(x-20) + Rt*Rt);
        Rat[2] = sqrt((x+20)*(x+20) + Rt*Rt);
	    Rat[3] = sqrt((x+40)*(x+40) + Rt*Rt);
	    Rat[4] = sqrt(x*x + (Rt-50)*(Rt-50));
	  for(int pointnum =0; pointnum<5;pointnum++)
	  {
	   angle = -4.0*PI*Rat[pointnum]/Wavelenth;
       Echophaset = complex<double> (cos(angle), sin(angle));
       Nr_Start = floor((Rat[0] - R0)/Rbin - floor(NTao/2));
	   for (nr = Nr_Start;nr < Nr_Start + NTao; nr++)
	   {  
		double polynomial = *(LpRange_Time + nr) - 2.0*Rat[pointnum]/C;
		angle = PI*KR*polynomial*polynomial;
        SignalPhase = complex<double>(cos(angle), sin(angle));
        SignalPhase = SignalPhase * Echophaset;
        *(LpRecSignalRe+na*Nr + nr) += SignalPhase.real();
		*(LpRecSignalIm+na*Nr + nr) += SignalPhase.imag();
	   }
	  }
	}//點(diǎn)目標(biāo)模擬回波數(shù)據(jù)接收結(jié)束
	else  //按打開的面目標(biāo)進(jìn)行模擬
	{
     double AreaRCS;
	 for (int hpointnum =0;hpointnum<h;hpointnum++)
		 for ( int wpointnum =0; wpointnum<w; wpointnum++)
		 {	 
			 AreaRCS =*(lpAreaImage+hpointnum*w+wpointnum);
			 if ( AreaRCS >0)
			 {
			   RatArea = sqrt((x+(hpointnum-h/2)*V_ami/PRF)*(x+(hpointnum-h/2)*V_ami/PRF) + (Rt+(wpointnum-w/2)*Rbin)*(Rt+(wpointnum-w/2)*Rbin));
               angle = -4.0*PI*RatArea/Wavelenth;
			   Echophaset = complex<double> (cos(angle), sin(angle));
               Nr_Start = floor((RatArea - R0)/Rbin - floor(NTao/2));
	           for (nr = Nr_Start;nr < Nr_Start + NTao; nr++)
			   {  
		        double polynomial = *(LpRange_Time + nr) - 2.0*RatArea/C;
		        angle = PI*KR*polynomial*polynomial;
                SignalPhase = complex<double>(cos(angle), sin(angle));
                SignalPhase = SignalPhase * Echophaset;
			    *(LpRecSignalRe+na*Nr + nr) += AreaRCS*SignalPhase.real()/255;
		        *(LpRecSignalIm+na*Nr + nr) += AreaRCS*SignalPhase.imag()/255;
			   }
			 }

		 }//end for for
		
	}//end else 面目標(biāo)模擬回波數(shù)據(jù)接收結(jié)束 
	  
  }
  if (lpAreaImage != NULL)
	 {
	  delete lpAreaImage;
      lpAreaImage = NULL;
	 }
  return TRUE;
}

void CSAR::EchoRangeCompress()
{
  if((LpAizm_Time == NULL)||(LpRecSignalRe == NULL)||(LpRecSignalIm == NULL)) return;
   int w=1;
   int wp=0;
   int win = 1;
   int winp = 0;
   while(w * 2 <= Nr)
	{
		w *= 2;
		wp++;
	}
   while(win * 2 <= (R_in+1)*Nr)
	{
		win *= 2;
		winp++;
	}
   complex<double> *TD = new complex<double>[w];
   complex<double> *FD = new complex<double>[w];
   complex<double> *LpTemFilter =new complex<double>[win];//用來存放插值后的距離向匹配濾波器
   complex<double> *LpTemFD =new complex<double>[win];//用來存放插值后的距離向頻域信號(hào)
   complex<double> *LpTemTD =new complex<double>[win];//用來存放插值后距離壓縮距離向時(shí)域信號(hào)
   complex<double> *Temp =new complex<double>[win];
   //下面代碼完成匹配濾波器中間插0
   for(int i = 0;i<Nr/2;i++)
   {
       LpTemFilter[i] = LpRangeMatchFilter[i];
       LpTemFilter[R_in*Nr + Nr/2 + i] = LpRangeMatchFilter[Nr/2+i];
   }
   for (int j = Nr/2;j < R_in*Nr + Nr/2;j++)  LpTemFilter[j] = complex<double>(0,0);//在濾波器中間插入R_in*Nr個(gè)0 


   for(int na = 0;na < Na;na ++)
   {
     for(int nr = 0;nr < Nr;nr++) 
		 TD[nr] = complex<double>(*(LpRecSignalRe + na*Nr + nr),*(LpRecSignalIm + na*Nr + nr));
         FFT(TD, FD,wp);
    //下面代碼完成距離向信號(hào)頻域中間插0;
	  for(int ii = 0;ii<Nr/2;ii++)
	  {
        LpTemFD[ii] = FD[ii];
        LpTemFD[R_in*Nr + Nr/2 + ii] = FD[Nr/2 + ii];
	  }
	   for (int jj = Nr/2;jj < R_in*Nr + Nr/2;jj++)  LpTemFD[jj] = complex<double>(0,0);//在距離向信號(hào)中間插入R_in*Nr個(gè)0 
       for (int kk = 0;kk <	win;kk++) LpTemFD[kk] = LpTemFilter[kk]* LpTemFD[kk];
	   IFFT(LpTemFD,LpTemTD,winp);
   	   for (int m= 0;m < (R_in+1)*(Nr-NTao/2);m++) Temp[m +(R_in+1)*NTao/2] = LpTemTD[m];
	   for (m =(R_in+1)*(Nr-NTao/2) ;m < (R_in+1)*Nr ;m++) Temp[m-(R_in+1)*(Nr-NTao/2)] = LpTemTD[m]; 
       for ( int n =0; n<Nr;n++) 
	   {
		   LpRecSignalRe[na*Nr+n]= Temp[R_in*(NTao/2+50)+n].real();
           LpRecSignalIm[na*Nr+n]= Temp[R_in*(NTao/2+50)+n].imag();
       }
   }
   delete TD;
   delete FD;
   delete LpTemFilter;
   delete LpTemFD;
   delete LpTemTD;
   delete Temp;
  
   /*由于進(jìn)行距離向插值,要改變距離向的采樣率FS,以及單位像素對(duì)應(yīng)的距離向距離Rbin,距離向的
	起始距離R0,距離向的時(shí)間序列*/
    FS = (R_in + 1)*FS;
    Rbin = C/FS/2;
	R0 = R0 = Rt - Rbin*floor(NTao/2) - 50*Rbin;
     for (i = 0;i< Nr;i++)
	{
       LpRange_Time[i] = i/FS +2.0*R0/C;  //發(fā)射信號(hào)時(shí)間

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一二三不卡| 日韩av在线播放中文字幕| 欧美激情一区二区三区蜜桃视频| 精品国产乱码久久久久久久久| 在线观看国产一区二区| 91视频91自| 色综合视频在线观看| 91免费看`日韩一区二区| av电影天堂一区二区在线 | 欧美视频三区在线播放| 一本色道久久综合精品竹菊| 91丨porny丨在线| 色婷婷亚洲婷婷| 欧美丝袜丝交足nylons| 欧美日韩免费观看一区二区三区 | 亚洲天堂精品在线观看| 国产精品久久久久久久久免费相片 | 精品国产123| 久久婷婷国产综合国色天香| 久久久久久毛片| 综合激情网...| 亚洲精品少妇30p| 一区二区三区蜜桃网| 日韩精品国产精品| 久久se精品一区精品二区| 国产精品亚洲人在线观看| 成人伦理片在线| 色综合久久66| 欧美精品v日韩精品v韩国精品v| 在线播放国产精品二区一二区四区| 91麻豆精品久久久久蜜臀| 精品国产99国产精品| 国产欧美一区二区精品性色超碰| 中文字幕一区二区视频| 亚洲一区二区美女| 精品一二三四区| 成人美女在线视频| 欧美日本精品一区二区三区| 久久婷婷色综合| 亚洲精品中文在线| 美女看a上一区| 成人av在线资源网| 69精品人人人人| 国产精品丝袜一区| 亚洲成人动漫在线观看| 国产一区三区三区| 色香蕉久久蜜桃| 精品国产污污免费网站入口 | 精品国产第一区二区三区观看体验 | 亚洲私人黄色宅男| 天天影视网天天综合色在线播放| 韩国精品免费视频| 在线观看亚洲专区| 久久久99久久| 午夜视频一区二区| 成人亚洲一区二区一| 欧美高清视频不卡网| 国产欧美日本一区二区三区| 亚洲成人自拍偷拍| 不卡av电影在线播放| 91精品国产欧美一区二区18| 成人欧美一区二区三区1314| 日韩国产高清在线| 99精品黄色片免费大全| 久久免费国产精品| 视频一区二区不卡| 91日韩在线专区| 久久久91精品国产一区二区精品| 亚洲成人动漫在线免费观看| k8久久久一区二区三区| 欧美成人一区二区三区片免费| 亚洲国产精品尤物yw在线观看| 国产99久久久久| 精品乱码亚洲一区二区不卡| 亚洲国产日韩一级| 91丨porny丨在线| 欧美国产禁国产网站cc| 精品中文字幕一区二区小辣椒| 日本韩国欧美在线| 中文字幕在线视频一区| 国产美女精品人人做人人爽| 制服丝袜国产精品| 亚洲地区一二三色| 欧美视频在线一区| 亚洲日本免费电影| 99免费精品视频| 国产欧美一区二区在线| 极品少妇xxxx精品少妇| 欧美一区二区黄| 日韩va欧美va亚洲va久久| 欧美性猛交xxxxxx富婆| 一区二区三区在线免费视频| eeuss国产一区二区三区| 中文字幕第一区| 国产精品一线二线三线精华| 精品少妇一区二区三区日产乱码| 日韩国产在线观看| 日韩一区二区三区在线观看| 亚洲成人精品一区| 欧美老人xxxx18| 日本aⅴ亚洲精品中文乱码| 欧美理论在线播放| 美女视频一区在线观看| 91精品黄色片免费大全| 日韩高清不卡一区| 制服丝袜亚洲播放| 久久成人免费网站| 精品美女在线观看| 国产高清在线精品| 欧美高清在线精品一区| eeuss国产一区二区三区| 综合久久国产九一剧情麻豆| 色欧美片视频在线观看 | 成人一级片在线观看| 中文字幕精品—区二区四季| 成人国产精品免费观看| 国产精品久久久久久久午夜片 | 亚洲欧洲av在线| 色综合 综合色| 亚洲大片免费看| 日韩午夜电影av| 国产一区二区在线免费观看| 国产蜜臀av在线一区二区三区| 成人a级免费电影| 亚洲综合男人的天堂| 欧美精品tushy高清| 国产麻豆91精品| 亚洲欧美成人一区二区三区| 欧洲中文字幕精品| 免费在线观看视频一区| 久久综合久久鬼色| 99久久精品免费看| 日韩制服丝袜av| 欧美精品一区二区蜜臀亚洲| 成人va在线观看| 天天影视网天天综合色在线播放| 欧美mv日韩mv| 972aa.com艺术欧美| 日韩福利电影在线| 亚洲国产精品成人综合色在线婷婷| 色婷婷激情综合| 精品影视av免费| 亚洲你懂的在线视频| 欧美成人一区二区| 99热在这里有精品免费| 青青草97国产精品免费观看| 久久久www免费人成精品| 色哟哟在线观看一区二区三区| 视频在线在亚洲| 日本一区二区三区国色天香| 在线观看日韩国产| 国产a区久久久| 三级亚洲高清视频| 国产精品初高中害羞小美女文| 欧美日韩亚洲国产综合| 成人午夜私人影院| 日韩精品亚洲专区| 国产精品美女久久久久久2018| 欧美高清激情brazzers| 菠萝蜜视频在线观看一区| 日韩二区三区四区| 亚洲色图.com| 26uuu精品一区二区| 91搞黄在线观看| 国产九色sp调教91| 三级影片在线观看欧美日韩一区二区| 亚洲国产精品二十页| 日韩一区二区三区免费看| 91在线精品一区二区| 久久国产精品色| 亚洲高清免费视频| **欧美大码日韩| 国产亚洲成av人在线观看导航| 欧美日韩国产一区| 99精品热视频| 国产美女精品在线| 免费欧美高清视频| 五月天一区二区三区| 综合亚洲深深色噜噜狠狠网站| 久久综合狠狠综合久久综合88 | 亚洲国产综合色| 国产精品免费免费| 国产亚洲精品7777| 精品1区2区在线观看| 欧美一区二区三区四区久久| 色婷婷亚洲综合| 91在线精品秘密一区二区| 国产.欧美.日韩| 国产精品99精品久久免费| 免费观看91视频大全| 香蕉加勒比综合久久| 亚洲一区二区四区蜜桃| 亚洲欧洲精品一区二区精品久久久| 久久久久久久综合狠狠综合| 精品少妇一区二区三区在线播放 | 欧美午夜精品一区二区蜜桃| 一本久道久久综合中文字幕 | 欧美激情资源网| 国产偷国产偷精品高清尤物| 精品国产免费久久|