[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"
|
---|
| 38 | void Correct2RefLobe(Four2DResponse& rep, TArray< TF >& a, double dx, double dy, double f0, double df);
|
---|
| 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
|
---|