00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef FILTERING_H // guard
00041 #define FILTERING_H
00042 #include "constants.hh"
00043 #include "readinput.hh"
00044 #include "matrixbk.hh"
00045 #include "slcimage.hh"
00046 #include "orbitbk.hh"
00047 #include "productinfo.hh"
00048
00049
00050
00051
00052
00053 void rangefilter(
00054 const input_gen &generalinput,
00055 const slcimage &master,
00056 const slcimage &slave,
00057 const productinfo &interferogram,
00058 const input_filtrange &filtrangeinput);
00059
00060
00061 void rfilterblock(
00062 matrix<complr4> &MASTER,
00063 matrix<complr4> &SLAVE,
00064 int32 nlmean,
00065 real8 SNRthreshold,
00066 real8 RSR,
00067 real8 RBW,
00068 real8 hammingalpha,
00069 int32 oversamplefactor,
00070 bool docorrectcorrel,
00071 real8 &meanSNR,
00072 real8 &percentnotfiltered);
00073
00074
00075 void rangefiltporbits(
00076 const input_gen &generalinput,
00077 const input_filtrange &filtrangeinput,
00078 const input_ell &ellips,
00079 const slcimage &master,
00080 const slcimage &slave,
00081 orbit &masterorbit,
00082 orbit &slaveorbit
00083 );
00084
00085
00086 void phasefilter(
00087 const input_gen &generalinput,
00088 const productinfo &interferogram,
00089 const input_filtphase &filtphaseinput);
00090
00091
00092 matrix<complr4> goldstein(
00093 const matrix<complr4> &CINT,
00094 const real4 ALPHA,
00095 const int32 OVERLAP,
00096 const matrix<real4> &smoothkernel);
00097
00098
00099 matrix<real4> smooth(
00100 const matrix<real4> &A,
00101 int32 halblocksize);
00102
00103
00104
00105 matrix<real4> smooth(
00106 const matrix<real4> &A,
00107 const matrix<complr4> &KERNEL2D);
00108
00109
00110 void spatialphasefilt(
00111 const input_gen &generalinput,
00112 const productinfo &interferogram,
00113 const input_filtphase &filtphaseinput);
00114
00115
00116 matrix<complr4> convbuffer(
00117 const matrix<complr4> &CINT,
00118 const matrix<complr4> &KERNEL2D,
00119 const int32 OVERLAP);
00120
00121
00122 void phasefilterspectral(
00123 const input_gen &generalinput,
00124 const productinfo &interferogram,
00125 const input_filtphase &filtphaseinput);
00126
00127
00128 matrix<complr4> spectralfilt(
00129 const matrix<complr4> &CINT,
00130 const matrix<real4> &KERNEL2D,
00131 const int32 OVERLAP);
00132
00133
00134 void azimuthfilter(
00135 const input_gen &generalinput,
00136 const input_filtazi &filtaziinput,
00137 slcimage &master,
00138 slcimage &slave);
00139
00140 matrix<complr4> blockazifilt(
00141 const matrix<complr4> &SLCIMAGE,
00142 const slcimage &master,
00143 const slcimage &slave,
00144 const real8 HAMMING);
00145
00146
00147
00148 #endif // FILTERING_H
00149
00150
00151