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

📄 rc.c.txt

📁 描述了雷达sra成像等
💻 TXT
字号:
//==============================================================================================================================================    
   
#include <MATH.H>    
#include <STDIO.H>    
#include <STDLIB.H>    
   
//==============================================================================================================================================    
//              常数定义    
//==============================================================================================================================================    
   
#define WLENGTH   0.00875                   //   波长    
#define SLANT     7500                      //   作用距离    
#define V_plane   90                        //   载机速度    
   
#define PI        3.1415926535897    
#define PRF       1000      
#define FS        220                       //   兆赫    
#define T1        30                        //   微秒    
#define BW        200                       //   兆赫    
   
#define ANUM      4096                      //   方位    
#define RNUM      8192                      //   距离    
#define RN        2048                      //   距离向有效数据    
   
#define ZNUM      0                         //   FFT移位    
#define YY        2                         //   回波数据2, 回波量化像0    
   
//==============================================================================================================================================    
   
void  rangecompression();   
void  turncorner();   
void  imageout();   
float Max_val();   
float Min_val();   
void  fft(float *x, float *y, int n, int flag);   
   
//==============================================================================================================================================    
//                  全局变量    
//==============================================================================================================================================    
   
float   range_datar[ANUM][RNUM],  range_datai[ANUM][RNUM];   
float   azimu_datar[RNUM][ANUM];   
   
//==============================================================================================================================================    
   
void main()   
{   
    printf("Range compressing, waiting...\n");   
    rangecompression();   
   
    if(YY>1)   //  回波数据    
    {   
      printf("Turn corner, waiting...\n\n");   
      turncorner();   
    }   
    else       //  回波量化像    
    {   
      printf("Imaging, waiting...\n");   
      imageout();   
    }   
}   
   
//==============================================================================================================================================    
//                     距离压缩    
//==============================================================================================================================================    
   
void rangecompression()   
{   
    int      i,j;   
    unsigned char  temp[RNUM];   
    int      frnum;   
    int      start;   
    float    K;   
    float    refr[RNUM],refi[RNUM];   
    float    dr[RNUM],di[RNUM];   
    float    wnd;   
    float    t;   
    float    re, im;   
    float    dianpr, dianpi;   
   
    FILE     *fin;   
    fin      = fopen("d:/data/10data/d1208f0-fish.dat","rb");   
    start    =  0;   
   
    fseek(fin, (long)((5865*4+18000)*8192*2 + RNUM * start * 2), 0);   
   
//====================================================================================================================================================    
//                           原始数据电平校正    
//====================================================================================================================================================    
   
    for(j=0;j<ANUM;J++) if(fp[i] { for(i="0;i<RNUM;i++)" x="fp[0];" x; float i; int a) fp, * Max_val(float ="===================================================================================================================================================" 直方图量化 } fclose(fout2); fclose(fout1); ); fout2='fopen("rc-end.i","wb");' ANUM, sizeof(float), azimu_datar[i], fwrite( azimu_datar[i][j]="(float)sqrt(" i++) i<RN; (i="1468;" for azimu_datar[i-6724][j]="range_datar[j][i];" 去掉前6724行数据 I数据 j++) j<ANUM; for(j="0;j<ANUM;j++)" fout1='fopen("rc-end.r","wb");' R数据 *fout2; *fout1, FILE i,j; turncorner() void 矩阵转置 range_datai[j][i]*range_datai[j][i] +="temp[i];" range_datar[j][i]*range_datar[j][i] i<RNUM; i="0;" for( 回波量化像 if(YY<1) range_datai[j][i]="(float)temp[i]-dianpi;" range_datar[j][i]="(float)temp[i]-dianpr;" 1 RNUM, di, dr, fft( im*refr[i]; di[i]="range_datai[j][i];" im*refi[i]; - dr[i]="range_datar[j][i];" im="di[i];" re="dr[i];" ) i++ 0 refi, refr, refi[i]="(float)" refr[i]="(float)" else )); -PI*K*t*t sin( (wnd cos( (frnum) 2.0*PI*i 0.46*cos( (0.54 wnd="(float)" FS; 2 (i-frnum t="(float)" i<frnum) if( 距离压缩参考函数 K); frnum, printf(?frnum='%d---K=%f\n",' 调频率 K="(float)(BW/T1);" 脉冲宽度 int)floor(FS*T1); frnum="(unsigned" fclose(fin); if(i<8000) RNUM; dianpi="0.0;" char),RNUM,fin); fread(&temp,sizeof(unsigned dianpr="0.0;">x) { x=fp[i]; }   
    }   
    return x;   
}   
   
float Min_val(float * fp, int a)   
{   
    int i;   
    float x;   
   
    x=fp[0];   
    for(i=1;i<A;I++) { for(i="0;i<height;i++)" x="fp[i];" x; float int * ="=============================================================================================================================================" } ); for for(j="0;j<width;j++)" FILE void i="0;" for( ) i++ if( z="(int)" (x-y)); floor((azimu_datar[i][j]-y)*N hisgram free(MinArray); free(MaxArray); y="Min_val(MinArray,height);" MinArray[i]="Min_val(azimu_datar[i],width);" MaxArray[i]="Max_val(azimu_datar[i],width);" hisg[i]="0;" i<N; char)); out="calloc(width,sizeof(unsigned" sizeof(int) N, hisg="calloc(" MinArray="calloc(height,sizeof(float));" MaxArray="calloc(height,sizeof(float));" N="width;" level fidw='fopen("output2.raw","wb");' width="ANUM;" height="RNUM;" *fidw; x,y; *out; char unsigned hisg; num; idx_top, idx_bottom, i,j,z,height,width, *MaxArray,*MinArray; tmpval; imageout() return if(fp[i]<x){>= N )   
                z = N-1;   
            if( z<0 )   
                z = 0;   
            hisg[z] ++;   
        }   
    }   
   
    // for 最小值 直方图的索引    
    num = ( int ) floor( width*height*0.015 );   
    z = 0;   
    i = 0;   
    while( z<NUM { for(i="0;i<height;i++)" x int * } ); for for(j="0;j<width;j++)" +="hisg[i];" i 1 - ) if( z y N (x-y) (azimu_datar[i][j]-y)*256 floor( 量化成256级灰度 ; ( tmpval="idx_top" 确定用于量化的最大值和最小值 idx_top="i" --; ]; z<num while( width*height*0.015 num="(" 直方图的索引 最大值 idx_bottom="i" ++>255 )   
                z = 255;   
            if( z<0 )   
                z = 0;   
            out[j]=(unsigned char)z;   
        }   
        fwrite(&out[0],sizeof(unsigned char),width,fidw);   
    }   
   
    free(out);   
    free(hisg);   
    fclose(fidw);      
}   
//==============================================================================================================================================    
//                    FILE           END    
//==============================================================================================================================================   

//============================================================================================================================================== 
 
#include  
#include  
#include  
 
//============================================================================================================================================== 
//              常数定义 
//============================================================================================================================================== 
 
#define WLENGTH   0.00875                   //   波长 
#define SLANT     7500                      //   作用距离 
#define V_plane   90                        //   载机速度 
 
#define PI        3.1415926535897 
#define PRF       1000	 
#define FS        220                     	//   兆赫 
#define T1 	      30                        //   微秒 
#define BW	      200                      	//   兆赫 
 
#define ANUM  	  4096                      //   方位 
#define RNUM      8192                      //   距离 
#define RN        2048                      //   距离向有效数据 
 
#define ZNUM      0                         //   FFT移位 
#define YY        2                         //   回波数据2, 回波量化像0 
 
//============================================================================================================================================== 
 
void  rangecompression(); 
void  turncorner(); 
void  imageout(); 
float Max_val(); 
float Min_val(); 
void  fft(float *x, float *y, int n, int flag); 
 
//============================================================================================================================================== 
//                  全局变量 
//============================================================================================================================================== 
 
float   range_datar[ANUM][RNUM],  range_datai[ANUM][RNUM]; 
float   azimu_datar[RNUM][ANUM]; 
 
//============================================================================================================================================== 
 
void main() 
{ 
	printf("Range compressing, waiting...\n"); 
	rangecompression(); 
 
    if(YY>1)   //  回波数据 
	{ 
      printf("Turn corner, waiting...\n\n"); 
  	  turncorner(); 
	} 
	else       //  回波量化像 
	{ 
	  printf("Imaging, waiting...\n"); 
	  imageout(); 
	} 
} 
 
//============================================================================================================================================== 
//                     距离压缩 
//============================================================================================================================================== 
 
void rangecompression() 
{ 
	int      i,j; 
	unsigned char  temp[RNUM]; 
	int      frnum; 
	int      start; 
	float    K; 
	float    refr[RNUM],refi[RNUM]; 
	float    dr[RNUM],di[RNUM]; 
	float    wnd; 
	float    t; 
	float    re, im; 
	float    dianpr, dianpi; 
 
	FILE     *fin; 
	fin      = fopen("d:/data/10data/d1208f0-fish.dat","rb"); 
	start    =  0; 
 
    fseek(fin, (long)((5865*4+18000)*8192*2 + RNUM * start * 2), 0); 
 
//==================================================================================================================================================== 
//                           原始数据电平校正 
//==================================================================================================================================================== 
 
	for(j=0;jx) { x=fp[i]; } 
	} 
	return x; 
} 
 
float Min_val(float * fp, int a) 
{ 
	int i; 
	float x; 
 
	x=fp[0]; 
	for(i=1;i= N ) 
				z = N-1; 
			if( z<0 ) 
				z = 0; 
			hisg[z] ++; 
		} 
	} 
 
	// for 最小值 直方图的索引 
	num = ( int ) floor( width*height*0.015 ); 
	z = 0; 
	i = 0; 
	while( z255 ) 
				z = 255; 
			if( z<0 ) 
				z = 0; 
			out[j]=(unsigned char)z; 
		} 
		fwrite(&out[0],sizeof(unsigned char),width,fidw); 
	} 
 
	free(out); 
	free(hisg); 
	fclose(fidw);	 
} 
//============================================================================================================================================== 
//                    FILE           END 
//============================================================================================================================================== 

⌨️ 快捷键说明

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