Changeset 3918 in Sophya for trunk/AddOn/TAcq/racquproc.cc
- Timestamp:
- Dec 2, 2010, 4:41:13 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/racquproc.cc
r3876 r3918 177 177 178 178 // Histo pour valeurs des bytes dans les paquets 179 Histo* phist[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL}; 180 Histo2D* ph2[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL}; 181 Histo* phexp[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL}; 179 Histo* phist[2*MAXNBFIB]; 180 Histo2D* ph2[2*MAXNBFIB]; 181 Histo* phexp[2*MAXNBFIB]; 182 TMatrix<r_4>* psatur[2*MAXNBFIB]; 183 for(int ifib=0; ifib<2*MAXNBFIB; ifib++) { 184 phist[ifib]=NULL; ph2[ifib]=NULL; phexp[ifib]=NULL; psatur[ifib]=NULL; 185 } 182 186 if (par_.fgdatafft) { // data de type FFT 183 187 for(sa_size_t lc=0; lc<2*memgr.NbFibres(); lc++) { … … 185 189 ph2[lc] = new Histo2D(-128.5,+128.5,257, -128.5,+128.5,257); 186 190 phexp[lc] = new Histo(-128.5,+128.5,257); 191 psatur[lc] = new TMatrix<r_4>(3,3); 192 *psatur[lc] = 0.; 187 193 } 188 194 } … … 218 224 } 219 225 } 226 227 // DBG-ATTENTION : freq 0 pour expo full FFT si reordonne 228 int idxexpo=(par_.fgfftshrink)?1023:0; // exposant FFT shrink 1024 freq, ou freq 0 pour full-FFT 220 229 221 230 cpaqok_ = (uint_1)0; … … 230 239 if (par_.fgdatafft) { // Traitement data de type FFT 231 240 TwoByteComplex* tbcp=paq.Data1C(); 232 phexp[lc]->Add((r_4)tbcp[0].realD()); 241 242 // exposant FFT 243 phexp[lc]->Add((r_4)tbcp[idxexpo].realD()); 244 233 245 for(sa_size_t j=1; j<spectre_.NCols(); j++) { 234 246 phist[lc]->Add((r_4)tbcp[j].realD()); 235 247 phist[lc]->Add((r_4)tbcp[j].imagD()); 236 248 ph2[lc]->Add((r_4)tbcp[j].realD(), (r_4)tbcp[j].imagD()); 249 // comptage saturation 250 int sir=0, sii=0; // saturation partie reelle, partie imaginaire 251 if (tbcp[j].realI()==-128) sir=-1; 252 else if (tbcp[j].realI()==127) sir=1; 253 if (tbcp[j].imagI()==-128) sii=-1; 254 else if (tbcp[j].imagI()==127) sii=1; 255 (*psatur[lc])(sir+1,sii+1)+=1.; 256 237 257 spectre_(lc,j) += Zmod2(tbcp[j]); 238 258 } 239 259 nzm_[lc]++; 240 260 tbcp=paq.Data2C(); lc++; 241 phexp[lc]->Add((r_4)tbcp[ 0].realD());261 phexp[lc]->Add((r_4)tbcp[idxexpo].realD()); 242 262 for(sa_size_t j=1; j<spectre_.NCols(); j++) { 243 263 phist[lc]->Add((r_4)tbcp[j].realD()); 244 264 phist[lc]->Add((r_4)tbcp[j].imagD()); 245 265 ph2[lc]->Add((r_4)tbcp[j].realD(), (r_4)tbcp[j].imagD()); 266 // comptage saturation 267 int sir=0, sii=0; // saturation partie reelle, partie imaginaire 268 if (tbcp[j].realI()==-128) sir=-1; 269 else if (tbcp[j].realI()==127) sir=1; 270 if (tbcp[j].imagI()==-128) sii=-1; 271 else if (tbcp[j].imagI()==127) sii=1; 272 (*psatur[lc])(sir+1,sii+1)+=1.; 273 246 274 spectre_(lc,j) += Zmod2(tbcp[j]); 247 275 } … … 303 331 po << PPFNameTag(buftag) << (*phexp[lc]); 304 332 phexp[lc]->Zero(); 333 sprintf(buftag,"saturV%d",(int)lc); 334 po << PPFNameTag(buftag) << (*psatur[lc]); 335 cout << " Matrice Saturation Voie[" << lc << "] : " << (*psatur[lc]); 336 if (nzm_[lc]>0) { 337 (*psatur[lc]) /= ((r_4)nzm_[lc]*0.01); 338 cout << " Matrice Saturation Pourcentage Voie[" << lc << "] : " << (*psatur[lc]); 339 } 340 (*psatur[lc])=0.; 305 341 } 306 342 nzm_[lc]=0; … … 351 387 po << PPFNameTag(buftag) << (*phexp[lc]); 352 388 delete phexp[lc]; 389 sprintf(buftag,"saturV%d",(int)lc); 390 po << PPFNameTag(buftag) << (*psatur[lc]); 391 cout << " Matrice Saturation Voie[" << lc << "] : " << (*psatur[lc]); 392 if (nzm_[lc]>0) { 393 (*psatur[lc]) /= ((r_4)nzm_[lc]*0.01); 394 cout << " Matrice Saturation Pourcentage Voie[" << lc << "] : " << (*psatur[lc]); 395 } 396 (*psatur[lc])=0.; 353 397 } 354 398 nzm_[lc]=0; … … 369 413 << " -> " << fracsame << " % )" << endl; 370 414 } 415 416 for(sa_size_t lc=0; lc<2*memgr.NbFibres(); lc++) { 417 if (phist[lc]) delete phist[lc]; 418 if (ph2[lc]) delete ph2[lc]; 419 if (phexp[lc]) delete phexp[lc]; 420 if (psatur[lc]) delete psatur[lc]; 421 } 422 371 423 return 0; 372 424 }
Note:
See TracChangeset
for help on using the changeset viewer.