Le noyau d’hydrogène possède des propriétés magnétiques, du fait de son spin I=1/2.
Sous l’influence d’un champ magnétique B0, les vecteurs moments magnétiques de ces noyaux peuvent adopter deux orientations possibles, tout en acquérant un mouvement de précession (dite de Larmor).
Voir cette animation en ligne.
Dans l’orientation parallèle, les moments magnétiques sont orientés dans le même sens que B0 (en moyenne, du fait de la précession). Dans l’orientation antiparallèle, ils s’orientent dans le sens opposé à B0.
Ces deux orientations ne sont pas équivalentes en terme d’énergie : l’orientation parallèle est un état de plus faibles énergie que celle de l’orientation antiparallèle.
On représente ici les 2 niveaux d’énergie par des traits rouges horizontaux.
L’écart énergétique entre les niveaux est proportionnel à B0. Dans l’expression indiquée, il dépend du rapport gyromagnétique – une constante propre au noyau – et d’une constante physique.
Sur ce diagramme, j’ai représenté les populations relatives des noyaux sur les niveaux.
Dans un échantillon de noyaux soumis au champ B0, le nombre de noyaux adoptant l’orientation parallèle (niveau inférieur) est plus important que ceux adoptant l’orientation inverse. On voit ici que plus l’écart énergétique entre les niveaux est important, plus l’écart de population est important.
Étant donné que l’amplitude du signal IRM détecté par l’appareil dépend de cet écart de population, on comprend que le choix d’un champ magnétique extrêmement intense se justifie par la nécessité de creuser l’écart de population.
Actuellement, les appareils IRM utilisent des champs B0 de 1.5 à 5 T environ.
Une autre manière d’illustrer l’écart de population en fonction du champ magnétique :
Le code de ce dernier graphique (pour le champ magnétique, j’ai « poussé » la valeur, depuis que je sais que certains hôpitaux sont maintenant équipés d’appareils 7 T…) :
import matplotlib.pyplot as plt
import numpy as np
h=6.63e-34
kT=1.38e-23*310
g=2.67e8#rapport gyromagnétique du proton
B0=np.arange(0,7+0.1,0.1)
K=g*h/(2*np.pi*kT)
fig, ax=plt.subplots()
plt.plot(B0, (1-np.exp(-K*B0))*1e6)
ax.set_xticks(np.arange(0, 7, 0.5), minor=True)
ax.set_yticks(np.arange(0, 50, 5), minor=True)
plt.xlabel(r'$B_0$ (T)')
plt.ylabel("nombre de noyaux en $\mathbf{antiparallèle}$")
plt.title("Pour 1 000 000 de noyaux orientés en parallèle...")
plt.grid(which='both')
fig.savefig("RappportPopNoyaux.png", dpi=400)
plt.show()
Soyez le premier à commenter