le Bruit et les dBï
Dans ce chapitre, nous aborderons le bruit, notamment la façon dont il est modĂ©lisĂ© et traitĂ© dans un systĂšme de communication sans fil. Les concepts comprennent lâAWGN, le bruit complexe et le SNR/SINR. Nous introduirons Ă©galement les dĂ©cibels (dB) en cours de route, car ils sont largement utilisĂ©s dans les communications sans fil et la radio logicielle.
Le Bruit Gaussienï
La plupart des gens connaissent le concept de bruit: des fluctuations indésirables qui peuvent masquer le ou les signaux souhaités. Le bruit ressemble à quelque chose comme:
Notez que la valeur moyenne est Ă©gale Ă zĂ©ro dans le graphique temporel. Si la valeur moyenne nâĂ©tait pas nulle, nous pourrions soustraire la valeur moyenne, lâappeler un biais, et il nous resterait une moyenne de zĂ©ro. Notez Ă©galement que les points individuels du graphique ne sont pas « uniformĂ©ment alĂ©atoires », câest-Ă -dire que les grandes valeurs sont plus rares et la plupart des points sont plus proches de zĂ©ro.
Nous appelons ce type de bruit « bruit gaussien ». Câest un bon modĂšle pour le type de bruit provenant de nombreuses sources naturelles, comme les vibrations thermiques des atomes dans le silicium des composants RF de notre rĂ©cepteur. Le thĂ©orĂšme de la limite centrale nous dit que la somme de nombreux processus alĂ©atoires aura tendance Ă avoir une distribution gaussienne, mĂȘme si les processus individuels ont dâautres distributions. En dâautres termes, lorsquâun grand nombre dâĂ©vĂ©nements alĂ©atoires se produisent et sâaccumulent, le rĂ©sultat semble approximativement gaussien, mĂȘme si les Ă©vĂ©nements individuels nâont pas une distribution gaussienne.
La distribution gaussienne est également appelée distribution « normale » (rappelons une courbe en cloche).
La distribution gaussienne possĂšde deux paramĂštres: la moyenne et la variance. Nous avons dĂ©jĂ discutĂ© de la façon dont la moyenne peut ĂȘtre considĂ©rĂ©e comme nulle, car vous pouvez toujours supprimer la moyenne, ou le biais, si elle nâest pas nulle. La variance modifie la « puissance » du bruit. Une variance plus Ă©levĂ©e se traduira par des nombres plus importants. Câest pour cette raison que la variance dĂ©finit la puissance du bruit.
La variance est Ă©gale Ă lâĂ©cart-type au carrĂ© (\(sigma^2\)).
Decibels (dB)ï
Nous allons prendre une brĂšve pause pour prĂ©senter officiellement les dB. Vous avez peut-ĂȘtre dĂ©jĂ entendu parler de dB, et si vous ĂȘtes dĂ©jĂ familier avec cette technologie, vous pouvez sauter cette section.
Le travail en dB est extrĂȘmement utile lorsque nous devons traiter simultanĂ©ment des petits et des grands nombres, ou simplement un ensemble de trĂšs grands nombres. ConsidĂ©rez combien il serait fastidieux de travailler avec des nombres de lâĂ©chelle de lâexemple 1 et de lâexemple 2.
Exemple 1: Le signal 1 est reçu à 2 watts et le plancher de bruit est à 0.0000002 watts.
Exemple 2: un broyeur dâordures est 100 000 fois plus bruyant quâune zone rurale calme, et une tronçonneuse est 10 000 fois plus bruyante quâun broyeur dâordures (en termes de puissance des ondes sonores).
Sans dB, câest-Ă -dire en travaillant en termes « linĂ©aires » normaux, nous devons utiliser beaucoup de 0 pour reprĂ©senter les valeurs des exemples 1 et 2. Franchement, si nous devions reprĂ©senter quelque chose comme le signal 1 en fonction du temps, nous ne verrions mĂȘme pas le plancher de bruit. Si lâĂ©chelle de lâaxe des y allait de 0 Ă 3 watts, par exemple, le bruit serait trop faible pour apparaĂźtre sur le graphique. Pour reprĂ©senter ces Ă©chelles simultanĂ©ment, nous travaillons avec une Ă©chelle logarithmique.
Pour illustrer davantage les problĂšmes dâĂ©chelle que nous rencontrons dans le traitement du signal, considĂ©rons les cascades ci-dessous de trois des mĂȘmes signaux. La partie gauche reprĂ©sente le signal original en Ă©chelle linĂ©aire, et la partie droite montre les signaux convertis en Ă©chelle logarithmique (dB). Les deux reprĂ©sentations utilisent exactement la mĂȘme carte de couleurs, oĂč le bleu est la valeur la plus basse et le jaune la plus haute. Vous pouvez Ă peine voir le signal de gauche dans lâĂ©chelle linĂ©aire.
Pour une valeur x donnĂ©e, on peut reprĂ©senter x en dB Ă lâaide de la formule suivante :
En Python:
x_db = 10.0 * np.log10(x)
Vous avez peut-ĂȘtre vu que 10 * est un 20 * dans dâautres domaines. Chaque fois que vous avez affaire Ă une puissance quelconque, vous utilisez 10, et vous utilisez 20 si vous avez affaire Ă une valeur qui nâest pas une puissance, comme la tension ou le courant. En DSP, nous avons tendance Ă traiter avec une puissance. En fait, il nây a pas une seule fois dans ce manuel oĂč nous devons utiliser 20 au lieu de 10.
Nous convertissons les dB en linéaires (nombres normaux) en utilisant:
En Python:
x = 10.0 ** (x_db / 10.0)
Ne vous laissez pas prendre par la formule, car il y a un concept clĂ© Ă retenir ici. En DSP, nous traitons Ă la fois de trĂšs grands et de trĂšs petits nombres (par exemple, la force dâun signal par rapport Ă la force du bruit). LâĂ©chelle logarithmique en dB nous permet dâavoir une plus grande plage dynamique lorsque nous exprimons des nombres ou les traçons. Elle offre Ă©galement certaines commoditĂ©s, comme la possibilitĂ© dâadditionner alors quâon multiplierait normalement (comme nous le verrons dans le chapitre Bilans de liaison).
Les erreurs les plus courantes que les gens rencontrent lorsquâils sont novices en matiĂšre de dB sont les suivantes :
Utiliser le log naturel au lieu du log base 10 car la fonction log() de la plupart des langages de programmation est en fait le log naturel.
Oublier dâinclure le dB lors de lâexpression dâun nombre ou de lâĂ©tiquetage dâun axe. Si nous sommes en dB, nous devons lâidentifier quelque part.
Lorsque vous ĂȘtes en dB, vous additionnez/soustrayez des valeurs au lieu de multiplier/diviser, par ex:
Il est Ă©galement important de comprendre que le dB nâest pas techniquement une « unité ». Une valeur en dB seule est sans unitĂ©, comme si quelque chose Ă©tait 2x plus grand, il nây a pas dâunitĂ©s jusquâĂ ce que je vous dise les unitĂ©s. dB est une chose relative. En audio, quand on dit dB, on veut dire dBA, qui est lâunitĂ© du niveau sonore (le A est lâunitĂ©). Dans le domaine du sans fil, nous utilisons gĂ©nĂ©ralement les watts pour faire rĂ©fĂ©rence Ă un niveau de puissance rĂ©el. Par consĂ©quent, vous pouvez voir lâunitĂ© dBW, qui est relative Ă 1 W. Vous pouvez Ă©galement voir lâunitĂ© dBmW (souvent Ă©crite dBm pour faire court) qui est relative Ă 1 mW. Par exemple, quelquâun peut dire « notre Ă©metteur est rĂ©glĂ© sur 3 dBW » (donc 2 watts). Parfois, nous utilisons le terme dB seul, ce qui signifie quâil est relatif et quâil nây a pas dâunitĂ©. On peut dire « notre signal a Ă©tĂ© reçu 20 dB au-dessus du bruit de fond ». Voici une petite astuces: 0 dBm = -30 dBW.
Voici quelques conversions courantes que je vous recommande de mémoriser :
Linéaire |
dB |
|---|---|
1x |
0 dB |
2x |
3 dB |
10x |
10 dB |
0.5x |
-3 dB |
0.1x |
-10 dB |
100x |
20 dB |
1000x |
30 dB |
10000x |
40 dB |
Enfin, pour mettre ces chiffres en perspective, voici quelques exemples de niveaux de puissance, en dBm :
80 dBm |
Puissance dâĂ©mission dâune station de radio FM rurale |
62 dBm |
Puissance maximale dâun Ă©metteur radio amateur |
60 dBm |
Puissance dâun micro-ondes domestique typique |
37 dBm |
Puissance maximale dâune radio CB ou dâune radio amateur portative typique |
27 dBm |
Puissance dâĂ©mission typique dâun tĂ©lĂ©phone cellulaire |
15 dBm |
Puissance dâĂ©mission typique du WiFi |
10 dBm |
Puissance dâĂ©mission maximale du Bluetooth (version 4) |
-10 dBm |
Puissance de réception maximale du WiFi |
-70 dBm |
Exemple de puissance reçue pour un signal radio amateur |
-100 dBm |
Puissance minimale reçue pour le WiFi |
-127 dBm |
Puissance reçue typique des satellites GPS |
Bruit dans le Domaine FrĂ©quentielï
Dans le chapitre Domaine frĂ©quentiel, nous avons abordĂ© la correspondance temps-frĂ©quence de la transformĂ©e de Fourier, câest-Ă -dire ce Ă quoi ressemble un certain signal dans le domaine temporel dans le domaine frĂ©quentiel. Et bien, Ă quoi ressemble un bruit gaussien dans le domaine des frĂ©quences? Les graphiques suivants montrent un certain bruit simulĂ© dans le domaine temporel (en haut) et un tracĂ© de la densitĂ© spectrale de puissance (DSP) de ce bruit (en bas). Ces graphiques sont tirĂ©s de GNU Radio.
Nous pouvons voir quâil a Ă peu prĂšs la mĂȘme apparence sur toutes les frĂ©quences et quâil est assez plat. Il sâavĂšre que le bruit gaussien dans le domaine temporel est Ă©galement un bruit gaussien dans le domaine frĂ©quentiel. Alors pourquoi les deux graphiques ci-dessus ne sont-ils pas identiques? Câest parce que le graphique du domaine frĂ©quentiel montre lâamplitude de la FFT, donc il nây aura que des nombres positifs. Il est important de noter quâil utilise une Ă©chelle logarithmique, câest-Ă -dire quâil indique lâamplitude en dB. Sinon, ces graphiques se ressembleraient. Nous pouvons le prouver par nous-mĂȘmes en gĂ©nĂ©rant un peu de bruit (dans le domaine temporel) dans Python, puis en prenant la FFT.
import numpy as np
import matplotlib.pyplot as plt
N = 1024 # nombre d'échantillons à simuler, choisissez le nombre que vous voulez
x = np.random.randn(N)
plt.plot(x, '.-')
plt.show()
X = np.fft.fftshift(np.fft.fft(x))
X = X[N//2:] # ne regardez que les fréquences positives. rappelez-vous que // est juste un diviseur d'entier
plt.plot(np.real(X), '.-')
plt.show()
Notez que la fonction randn() utilise par défaut la moyenne = 0 et la variance = 1. Les deux graphiques ressembleront à ceci :
Vous pouvez alors produire le DSP plate que nous avions dans GNU Radio en prenant le log et en faisant la moyenne de plusieurs dâentre eux. Le signal que nous avons gĂ©nĂ©rĂ© et dont nous avons fait la FFT Ă©tait un signal rĂ©el (par opposition Ă un signal complexe), et la FFT de tout signal rĂ©el aura des parties nĂ©gatives et positives correspondantes, câest pourquoi nous nâavons sauvegardĂ© que la partie positive de la sortie FFT (la seconde moitiĂ©). Mais pourquoi nâavons-nous gĂ©nĂ©rĂ© que du bruit « rĂ©el », et comment les signaux complexes entrent-ils en jeu ?
Bruit Complexeï
Le bruit « gaussien complexe » est celui que nous rencontrons lorsque nous avons un signal en bande de base; la puissance du bruit est rĂ©partie de maniĂšre Ă©gale entre les parties rĂ©elles et imaginaires. Et surtout, les parties rĂ©elle et imaginaire sont indĂ©pendantes lâune de lâautre; connaĂźtre les valeurs de lâune ne vous donne pas les valeurs de lâautre.
Nous pouvons générer un bruit gaussien complexe en Python en utilisant :
n = np.random.randn() + 1j * np.random.randn()
Mais attendez! LâĂ©quation ci-dessus ne gĂ©nĂšre pas la mĂȘme « quantité » de bruit que np.random.randn(), en termes de puissance (appelĂ©e puissance du bruit). Nous pouvons trouver la puissance moyenne dâun signal (ou dâun bruit) de moyenne nulle en utilisant :
power = np.var(x)
oĂč np.var() est la fonction de variance. Ici, la puissance de notre signal n est 2. Afin de gĂ©nĂ©rer un bruit complexe avec une « puissance unitaire », câest-Ă -dire une puissance de 1 (ce qui rend les choses plus pratiques), nous devons utiliser:
n = (np.random.randn(N) + 1j*np.random.randn(N))/np.sqrt(2) # AWGN de puissance unitaire
Pour tracer un bruit complexe dans le domaine temporel, comme tout signal complexe, nous avons besoin de deux lignes:
n = (np.random.randn(N) + 1j*np.random.randn(N))/np.sqrt(2)
plt.plot(np.real(n),'.-')
plt.plot(np.imag(n),'.-')
plt.legend(['real','imag'])
plt.show()
Vous pouvez voir que les parties réelles et imaginaires sont complÚtement indépendantes.
à quoi ressemble un bruit gaussien complexe sur un graphique IQ? Rappelez-vous que le graphique IQ montre la partie réelle (axe horizontal) et la partie imaginaire (axe vertical), qui sont toutes deux des gaussiennes aléatoires indépendantes.
plt.plot(np.real(n),np.imag(n),'.')
plt.grid(True, which='both')
plt.axis([-2, 2, -2, 2])
plt.show()
Il ressemble Ă ce que lâon pourrait attendre: une tache alĂ©atoire centrĂ©e sur 0 + 0j, ou lâorigine. Juste pour le plaisir, essayons dâajouter du bruit Ă un signal QPSK pour voir Ă quoi ressemble le graphique IQ :
Maintenant, que se passe-t-il quand le bruit est plus fort ?
Nous commençons Ă comprendre pourquoi la transmission de donnĂ©es sans fil nâest pas si simple. Nous voulons envoyer autant de bits par symbole que possible, mais si le bruit est trop Ă©levĂ©, nous aurons des bits erronĂ©s Ă la rĂ©ception.
AWGNï
Le bruit blanc additif gaussien ou AWGN (pour Additive White Gaussian Noise en anglais) est une abrĂ©viation que vous entendrez souvent dans le monde du DSP et de la SDR. Le GN, qui veut dire bruit gaussien, nous en avons dĂ©jĂ parlĂ©. Additif signifie simplement que le bruit est ajoutĂ© Ă notre signal reçu. Blanc, dans le domaine des frĂ©quences, signifie que le spectre est plat sur toute la bande dâobservation. En pratique, il sera presque toujours blanc, ou approximativement blanc. Dans ce manuel, nous utiliserons le bruit AWGN comme seule forme de bruit lorsque nous traiterons des liaisons de communication, des budgets de liaison, etc. Le bruit non-AWGN tend Ă ĂȘtre un sujet de niche.
SNR et SINRï
Le rapport signal Ă bruit (RSB) ou (SNR) (pour signal to noise ratio en anglais) est la façon dont nous allons mesurer les diffĂ©rences dâintensitĂ© entre le signal et le bruit. Il sâagit dâun rapport, donc sans unitĂ©. Le SNR est presque toujours exprimĂ© en dB dans la pratique. Souvent, en simulation, nous codons de maniĂšre Ă ce que nos signaux soient dâune puissance unitaire (puissance = 1). Ainsi, nous pouvons crĂ©er un rapport signal Ă bruit de 10 dB en produisant un bruit dâune puissance de -10 dB en ajustant la variance lorsque nous gĂ©nĂ©rons le bruit.
Si quelquâun dit « SNR = 0 dB », cela signifie que la puissance du signal et du bruit est la mĂȘme. Un SNR positif signifie que notre signal est plus puissant que le bruit, tandis quâun SNR nĂ©gatif signifie que le bruit est plus puissant. La dĂ©tection de signaux Ă un SNR nĂ©gatif est gĂ©nĂ©ralement assez difficile.
Comme nous lâavons mentionnĂ© prĂ©cĂ©demment, la puissance dâun signal est Ă©gale Ă la variance du signal. Nous pouvons donc reprĂ©senter le SNR comme le rapport entre la variance du signal et la variance du bruit:
Le rapport signal Ă interfĂ©rence plus bruit (SINR pour signal to interference and noise ration en anglais) est essentiellement le mĂȘme que le SNR, sauf que vous incluez lâinterfĂ©rence avec le bruit dans le dĂ©nominateur.
La dĂ©finition de lâinterfĂ©rence dĂ©pend de lâapplication/de la situation, mais il sâagit gĂ©nĂ©ralement dâun autre signal qui interfĂšre avec le signal dâintĂ©rĂȘt, qui le empiĂšte sur lui dans le domaine frĂ©quentiel, et/ou qui ne peut pas ĂȘtre filtrĂ© pour une raison quelconque.
Ressources Externes (en anglais)ï
Autres ressources sur lâAWGN, le SNR et la variance: