Comment l'erreur de quantification génère-t-elle du bruit?

11

J'apprends par moi-même l'échantillonnage et le DSP. J'ai du mal à comprendre comment l'erreur de quantification se traduit par du bruit. Je pense que je manque une compréhension fondamentale mais je ne peux pas dire ce que c'est. Alors, comment l'erreur de quantification génère-t-elle du bruit?

Jan Deinhard
la source
C'est plus de distorsion que de bruit. Cela dépend du signal et n'est pas aléatoire.
endolith
endolith, je pense que ce que je ne comprends pas, c'est comment l'erreur se traduit par des fréquences.
Jan Deinhard
2
la distorsion produit toujours des fréquences supplémentaires. si vous déformez une onde sinusoïdale, elle devient une forme d'onde répétitive différente. toute forme d'onde répétitive autre qu'une onde sinusoïdale est constituée de plusieurs fréquences.
endolith
1
Comme @endolith l'a mentionné, supposons que vous avez un très mauvais ADC, de sorte que vous lui donnez un ton pur, mais obtenez un signal qui ressemble à un sinus mais qui a de grands pas. (Alors maintenant, votre signal ressemble à un escalier qui monte et descend avec le sinus d'origine.) Maintenant, vous savez intuitivement qu'une étape est composée de nombreuses fréquences. C'est ainsi qu'un ADC ajoutera des fréquences comme vous le demandez. Il s'agit d'une opération non linéaire btw. S'il était linéaire, vous ne pourriez pas créer de nouvelles fréquences, mais seulement en superposer plusieurs.
Spacey
Autre remarque: une belle interprétation est donnée par Yannis Tsividis dans ICASSP 2004: La quantification est une non-linéarité dure et génère un "nombre infini d'harmoniques". Le processus d'échantillonnage les replie tous. Pour des signaux suffisamment complexes, ces «harmoniques repliées» ressemblent à un bruit de fond blanc.
divB

Réponses:

6

Supposons que j'ai un signal à plusieurs tons (six porteuses, à ± 1/1000, ± 2/1000 et ± 7/1000 de fréquence d'échantillonnage)

x = (1:1000);
wave = sin(x/1000*2*pi) + sin(x/1000*2*pi*2) + sin(x/1000*2*pi*7);

qui est quantifié à l'aide d'un ADC 14 bits

wave_quant = round(wave * 16384) / 16384;

La différence

wave_qnoise = wave_quant - wave;

donne l'erreur de quantification

Bruit de quantification par le temps

Le spectre correspondant

wave_qnoise_freq = mag(fftshift(fft(wave_qnoise)) / sqrt(1000));

Bruit de quantification par fréquence

montre le bruit de fond généré sur l'ensemble du spectre.

Cela suppose que l'erreur de quantification n'introduit pas de biais. Si l'ADC choisit toujours la valeur inférieure

wave_quant_biased = floor(wave * 16384) / 16384;

on obtient une erreur de quantification qui n'est plus centrée autour de zéro

wave_qnoise_biased = wave_quant_biased - wave;

Erreur de quantification avec biais par heure

qui a un pic défini dans la FFT dans le bac DC

wave_qnoise_biased_freq = mag(fftshift(fft(wave_qnoise_biased)) / sqrt(1000));

Erreur de quantification avec biais par fréquence

Cela devient un problème réel avec par exemple la modulation d'amplitude en quadrature , où un décalage CC dans le signal démodulé correspond à une onde sinusoïdale à la fréquence de démodulation.

Simon Richter
la source
C'est très bien merci pour votre aide. j'ai ainsi exploré la distorsion liée à la quantification.
9

Le «bruit» dans ce contexte fait référence à tout élément indésirable ajouté au signal, cela ne signifie pas nécessairement qu'il s'agit d'un bruit gaussien, d'un bruit blanc ou de tout processus aléatoire bien décrit.

Dans le contexte de la quantification, il s'agit d'un argument purement algébrique. On peut considérer la quantification comme l'ajout d'un signal indésirable ("bruit") égal à ... la différence entre le signal d'origine et le signal quantifié. Notez que ce bruit de quantification n'est pas aléatoire et est corrélé avec le signal d'entrée. Par exemple, si un signal est périodique, le bruit de quantification introduit lors de la quantification sera également périodique.

pichenettes
la source
Je pense avoir compris comment la quantification provoque l'erreur elle-même. Ce qui m'intrigue, c'est la façon dont il génère la fréquence. Ma compréhension est la suivante: «signal indésirable» signifie des fréquences indésirables. Supposons que j'échantillonne un signal sinusoïdal pur. Ensuite, l'erreur de quantification introduit des "connotations". Je suppose que les harmoniques proviennent de la forme "en escalier" du signal échantillonné. Est-ce exact?
Jan Deinhard
1
@FairDinkumThinkum: oui, si vous déformez une onde sinusoïdale pure, vous obtiendrez une distorsion harmonique, qui produit de nouvelles fréquences à des multiples de la fréquence de votre onde sinusoïdale. en.wikipedia.org/wiki/Distortion#Harmonic_distortion
endolith
3

Pour développer ce que les pichenettes ont dit, considérez si vous avez un signal audio qui est numérisé par un convertisseur D-A qui n'a qu'une résolution de 0,01 volt. Si, à un instant donné, le signal audio est à 7,3269 volts, il sera soit arrondi à 7,33 volts, soit tronqué à 7,32 volts (selon la conception du convertisseur). Dans le premier cas, vous avez ajouté un "bruit" de 7,33-7,3269 volts, soit 0,0031 volt. Dans le second cas, vous avez ajouté un "bruit" de 7,32 à 7 326 volts, soit -0,0069 volt.

Bien sûr, il y a un bruit supplémentaire ajouté du fait que le convertisseur n'est certainement pas infiniment précis, et a probablement une précision comparable à sa précision.

Daniel R Hicks
la source
0

Voici une explication plus basique pour faire passer le point fondamental.

  1. Rendez-vous dans votre poche et sortez votre iPhone.
  2. Ouvrez l'application Health -> Fitness Activity -> Steps walked (cette option est activée par défaut).
  3. Notez le nombre de pas que vous avez parcourus au cours de chacun des dix derniers jours.

Arrondissez ces chiffres aux milliers et affichez-les ici. Maintenant, les autres personnes ici doivent deviner vos numéros d'origine en fonction de ce que vous avez publié.

D'autres personnes ne peuvent pas deviner de manière fiable le nombre exact en fonction du nombre arrondi que vous avez fourni. C'est une perte de données. Et dans ce cas (parce que vous avez utilisé l'arrondi), cela s'appelle une erreur de quantification.

William Entriken
la source