Data format » History » Revision 20
« Previous |
Revision 20/21
(diff)
| Next »
Anonymous, 03/05/2020 04:02 PM
Lecture des données du radar PoSAR-X¶
Archive 2019_07_12_14_12_21¶
Présentation¶
L'achive 2019_07_12_14_12_21 contient les fichiers préfixés "record" enregistrés le 12 juillet 2019 lors de la première campagne de mise au point du radar PoSAR-X sur la zone aviation de Monterfil.
- Chaque fichier préfixé "record" contient des données temporelles échantillonnées à 20MHz pendant une seconde, tous les fichiers sont contigus
- Chaque échantillon est enregistré au format uint16
- Le signal RF est un signal triangulaire continu, une rampe montante de 500us suivie d'une rampe descendante de 500us
- Chaque fichier commence par le signal reçu pendant une rampe montante
Procédure¶
La fonction de lecture d'un fichier de données est la suivante:
def readFileADLINKCh0( filename, samplesPerFile, timeSerie_A ):
fd = open(filename,'rb')
dum = np.fromfile(fd, dtype = np.uint16)
timeSerie_A[:] = dum[:]
fd.close()
On fait une boucle pour lire tous les fichiers et créer une matrice contenant une ligne par fichier:
firstFile = 0
nbFiles = 59
lastFile = firstFile + nbFiles - 1
firstBuffer = firstFile * buffersPerFile
lastBuffer = (nbFiles-1) * buffersPerFile + firstBuffer
scalingFactor = 2 / 65535
offset = -32768
timeSerie_A = np.zeros( samplesPerFile )
adc_A = np.zeros( (nbFiles, samplesPerFile) )
for k in range( nbFiles ):
# read the data
nb = str( int( k * buffersPerFile + firstBuffer) )
filename = data_dir + "/record" + nb + ".bin"
readFileADLINKCh0( filename, samplesPerFile, timeSerie_A )
print("k = {}, block = {} / {}".format(k, nb, lastBuffer))
adc_A[ k, : ] = (timeSerie_A + offset) * scalingFactor
Les données étant lues, on remet en forme la matrice, une ligne par période de signal:
A_reshaped = adc_A.reshape(nbFiles * rampsPerFile, samplesPerRamp)
Ensuite, on ne garde que la partie du signal correspondant aux rampes montantes:
samplesPerDownRamp = int(samplesPerRamp/2)
A_rampUp = A_reshaped[:, 0:samplesPerDownRamp]
On obtient ainsi une matrice contenant toutes les rampes montantes.
Note: dans l'exemple 2019_07_12_14_12_21, les paramètres sont les suivants:
<?xml version="1.0" encoding="UTF-8"?>
<posarmc version="2.0">
<posarV2>
<rampsPerBuffer value="500" units="-"/>
<bufferSize value="20000000" units="byte"/>
<buffersPerFile value="2" units="byte"/>
<rampsPerFile value="1000" units="-"/>
<fileSize value="4e+7" units="byte"/>
<samplingFrequency value="2e+7" units="Hz"/>
<samplesPerRamp value="20000" units="-"/>
<skipNSamples value="0" units="-"/>
<rampPeriod value="1000" units="-"/>
<startFrequency value="9800" units="-"/>
<stopFrequency value="10100" units="-"/>
</posarV2>
</posarmc>
Updated by Anonymous almost 5 years ago · 20 revisions