Bonjour,

j'ai fait une série de mesure avec une chambre d'ionisation en fonction de la position suivant z de celle ci et j'obtiens ce résultat :


Normalement je devrais obtenir quelque chose se rapprochant beaucoup plus d'une sorte de fonction porte. avec des pentes beaucoup plus fortes.

Du coup je me dit que c'est peut être parce que je n'effectue pas des mesures ponctuelles avec ma chambre d'ionisation puisqu'elle a une dimension non négligeable.

Je me dit que je dois alors peut être déconvoluer avec une fonction porte faisant la longueur de ma chambre d'ionisation afin d'obtenir un résultat plus cohérant.
c'est ce que je fais en passant par les fft, et j'obtiens ce résultat (la courbe rouge) :


est-ce que vous auriez une idée du problème ?
le fait de déconvoluer par une fonction porte représentant la longueur de ma chambre d'ionisation est faut ?
ou est-ce la programmation de la déconvolution qui est fausse ?
voici le bout de code que j'avais fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
%rectangular function
z_cham = -50:1:50; %position en mm
rect_funct(1:101) = 0;
rect_funct(50:52) = 1/3; %la chambre fait trois milimètre de long
 
%je calcul la fft de cette fonction porte 
FFT_rect_funct =fft(rect_funct);
FFT_rect_funct = fftshift(FFT_rect_funct);
 
%je vais calculer la fft des mesures effectuées
%je fais d'abord une interpolation, en effet les mesures ont été effectué tous 
% les 4 mm et j'ai défini ma fonction porte avec un pas de 1mm
f0_interp= interp1(z,f0,z_cham);
test_nan = isnan(f0_interp);
f0_interp(test_nan) = 0; %la fonction interp1 met des NaN au lieu d'extrapoler si il y a lieu. je force ces valeurs à 0 du coup vu qu'elles devraient être très proche de 0.
 
%calcul FFT
FFT_measures = fft(f0_interp);
FFT_measures = fftshift(FFT_measures);
 
%theoretical profil convoluted with rect_function = measures
FFT_theoretical = FFT_measures./FFT_rect_funct;
 
theoretical_profil = ifft(FFT_theoretical);
theoretical_profil = ifftshift(theoretical_profil);
figure;
plot(z_cham,abs(theoretical_profil));
title('results');
hold on
plot(z,f0,'r');
hold off
qu'en pensez vous ?
pourquoi j'obtiens ces pics locaux sur la courbe rouge ?
je sais qu'une déconvolution c'est sensible au bruit mais justement j'en ai pas beaucoup là ...
pourquoi je n'obtiens pas une courbe final qui ressemble plus à un créneau ?

j'avais aussi effectué une mesure par film de dosimétrie (donc moins précise mais avec des valeurs "ponctuels" au lieu d'avoir une taille de chambre en mm) et j'obtiens ceci :


il semble donc que je suis bien censé obtenir une fonction créneau mais que le fait d'utiliser la chambre d'ionisation biaise cette mesure d'une certaine façon.