Capsim Block Documentation
Compress SAR image in range
Port | Type | Name | |
---|---|---|---|
0 | image_t | x |
int no_samples; int i,j; float taz; float range; float arg; float a,b,c; float rx; image_t img; int width,height; int order,pts; cap_fft_cpx x,y; float fmax,fmin; |
---|
if( (obufs = NO_OUTPUT_BUFFERS()) < 1 ) { fprintf(stderr,"img_sar_range_compress: no output buffers\n"); CsInfo("img_sar_create: no output buffers"); return(2); } dt=(1.0/fs)*0.000001; t0=2.0*rp*1000.0/C; maxRangeIndex=(int)tau*0.000001/dt; dtaz=(1.0/prf); tp=tpi*(1.0/prf); done=0; t=0; k=0; lamda=C/(fc*1000000.0); /* * round width to next power of 2 */ order = (int) (log((float)maxRangeIndex)/log(2.0)+0.5); pts = 1 << order; if (pts < maxRangeIndex ) { pts = pts*2; order += 1; } rangeFFTLength=pts; fprintf(stderr,"img_sar_range_compress: maxRangeIndex=%d rangeFFTLength=%d \n",maxRangeIndex, rangeFFTLength); cfg=cap_fft_alloc(rangeFFTLength,0,NULL,NULL); cfgi=cap_fft_alloc(rangeFFTLength,1,NULL,NULL); for(j=0; j |
---|
for (no_samples = MIN_AVAIL(); no_samples > 0; --no_samples) { IT_IN(0); img=x(0); height=img.height; width=img.width; /* * round width to next power of 2 */ order = (int) (log((float)width)/log(2.0)+0.5); pts = 1 << order; if (pts < width ) { pts = pts*2; order += 1; } if(rangeFFTLength < pts) { fprintf(stderr,"Problem with dimensions. Overriding \n"); pts=rangeFFTLength; } else { rangeFFTLength=pts; } fprintf(stderr,"img_sar_range_compress: width=%d height=%d FFTWidth=%d\n",width,height,rangeFFTLength); ref_P=(cap_fft_cpx *)calloc(rangeFFTLength,sizeof(cap_fft_cpx)); range_P=(cap_fft_cpx *)calloc(rangeFFTLength,sizeof(cap_fft_cpx)); refFFT_P=(cap_fft_cpx *)calloc(rangeFFTLength,sizeof(cap_fft_cpx)); rangeFFT_P=(cap_fft_cpx *)calloc(rangeFFTLength,sizeof(cap_fft_cpx)); if(ref_P == NULL || range_P== NULL || rangeFFT_P== NULL || refFFT_P== NULL) { fprintf(stderr,"img_sar_range_compress: could not allocate space \n"); CsInfo("img_sar_range_compress: could not allocate space"); return(7); } mat_PP = (float**)calloc(height,sizeof(float*)); if(mat_PP == NULL) { fprintf(stderr,"img_sar_range_compress: could not allocate space \n"); CsInfo("img_sar_range_compress: could not allocate space"); return(5); } for(i=0; i |
---|
if(range_P) free(range_P); if(rangeFFT_P) free(rangeFFT_P); if(refFFT_P) free(refFFT_P); if(ref_P) free(ref_P); |
---|
/* Capsim (r) Text Mode Kernel (TMK) Star Library (Blocks) Copyright (C) 1989-2017 Silicon DSP Corporation This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA http://www.silicondsp.com Silicon DSP Corporation Las Vegas, Nevada */ |
---|
/************************************************************************ (c) 1989-2002 XCAD Corporation |
---|