| [3787] | 1 | /*  ------------------------ Projet BAORadio -------------------- 
 | 
|---|
 | 2 |     Calcul de l'effet de lobe sur Carte2D (angleX,angleY) et 
 | 
|---|
| [3788] | 3 |     cube 3D (angleX,angleY, frquences)
 | 
|---|
| [3787] | 4 |     R. Ansari , C. Magneville - Juin 2010 
 | 
|---|
 | 5 | ---------------------------------------------------------------  */
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | #ifndef BEAMH_SEEN
 | 
|---|
 | 8 | #define BEAMH_SEEN
 | 
|---|
 | 9 | 
 | 
|---|
 | 10 | #include "machdefs.h"      // SOPHYA .h  
 | 
|---|
 | 11 | #include "sopnamsp.h"      // SOPHYA .h  
 | 
|---|
 | 12 | #include <math.h>
 | 
|---|
 | 13 | #include <iostream>
 | 
|---|
 | 14 | #include <vector>
 | 
|---|
 | 15 | #include <string> 
 | 
|---|
 | 16 | 
 | 
|---|
 | 17 | #include "tarray.h"
 | 
|---|
 | 18 | #include "vector3d.h"
 | 
|---|
 | 19 | #include "mdish.h"
 | 
|---|
 | 20 | 
 | 
|---|
 | 21 | #ifndef TF 
 | 
|---|
 | 22 | #define TF r_4 
 | 
|---|
 | 23 | #endif
 | 
|---|
 | 24 | 
 | 
|---|
 | 25 | class BeamEffect {
 | 
|---|
 | 26 | public:
 | 
|---|
| [3788] | 27 |   // Definition de l'objet avec la reponse en frequence de l'instrument 
 | 
|---|
| [3797] | 28 |   BeamEffect(Four2DResponse& resp, bool preservefreq0=true);
 | 
|---|
| [3973] | 29 | 
 | 
|---|
 | 30 |   // Applique l'effet d'un lobe fixe (frequency independent) au cube 3D (2 angles, frequence)
 | 
|---|
 | 31 |   void ApplyLobe(TArray< TF >& a, double dx, double dy, double freq);  
 | 
|---|
 | 32 | 
 | 
|---|
 | 33 |   // Applique l'effet de lobe au cube 3D (2 angles, frequence), pour chaque plan de frequence successivement 
 | 
|---|
 | 34 |   // En faisant varier la reponse de lobe avec la frequence 
 | 
|---|
| [3787] | 35 |   void ApplyLobe3D(TArray< TF >& a, double dx, double dy, double f0, double df);  
 | 
|---|
 | 36 | 
 | 
|---|
| [3788] | 37 |   // Corrige de l'effet de l'effet de lobe, pour chaque plan de frequence, pour tout ramener au lobe defini par "rep" 
 | 
|---|
| [3986] | 38 |   void Correct2RefLobe(Four2DResponse& rep, TArray< TF >& a, double dx, double dy, double f0, double df, double maxratio=10.);
 | 
|---|
| [3788] | 39 | 
 | 
|---|
 | 40 |   // Applique l'effet de lobe "rep" dans le plan de Fourier  pour une frequence (longueur d'onde) fixee
 | 
|---|
| [3797] | 41 |   void ApplyLobeK2D(Four2DResponse& rep, TArray< complex<TF> >& f2d, double dkx, double dky);
 | 
|---|
| [3788] | 42 | 
 | 
|---|
 | 43 |   // Re-echntillonnage du cube 3D en appliquant les facteurs xfac,yfac,zfac selon chaque direction 
 | 
|---|
 | 44 |   // fac = 2 ---> on double le nombre d'echantillon , fac=0.5 : un echantillon sur deux 
 | 
|---|
| [3787] | 45 |   static TArray< TF > ReSample(TArray< TF >& a, double xfac, double yfac, double zfac);
 | 
|---|
| [3788] | 46 | 
 | 
|---|
 | 47 |   // On ajoute du bruit gaussien au cube 3D - espace des positions 
 | 
|---|
| [3787] | 48 |   static void AddNoise(TArray< TF >& a, double pixsignoise, bool fgcmsig=true);
 | 
|---|
 | 49 | 
 | 
|---|
 | 50 |   Four2DResponse& fresp_;
 | 
|---|
| [3797] | 51 |   bool preservefreq0_;
 | 
|---|
| [3787] | 52 | };
 | 
|---|
 | 53 | 
 | 
|---|
 | 54 | #endif
 | 
|---|