| [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 | 
|---|