{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"nbsphinx": "hidden"
},
"source": [
"# Quantization of Signals\n",
"\n",
"*This jupyter notebook is part of a [collection of notebooks](../index.ipynb) on various topics of Digital Signal Processing. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Requantization of a Speech Signal\n",
"\n",
"The following example illustrates the requantization of a speech signal. The signal was originally recorded with a wordlength of $w=16$ bits. It is requantized by a [uniform mid-tread quantizer](linear_uniform_characteristic.ipynb#Mid-Tread-Chacteristic-Curve) to various wordlengths. The signal-to-noise ratio (SNR) after quantization is computed and a portion of the (quantized) signal is plotted. It is further possible to listen to the requantized signal and the quantization error. Note, the level of the quantization error has been normalized for better audability of the effects."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import soundfile as sf\n",
"\n",
"idx = 130000 # index to start plotting\n",
"\n",
"\n",
"def uniform_midtread_quantizer(x, w):\n",
" \"\"\"Uniform mid-tread quantizer with limiter.\"\"\"\n",
" # quantization step\n",
" Q = 1 / (2 ** (w - 1))\n",
" # limiter\n",
" x = np.copy(x)\n",
" idx = np.where(x <= -1)\n",
" x[idx] = -1\n",
" idx = np.where(x > 1 - Q)\n",
" x[idx] = 1 - Q\n",
" # linear uniform quantization\n",
" xQ = Q * np.floor(x / Q + 1 / 2)\n",
"\n",
" return xQ\n",
"\n",
"\n",
"def evaluate_requantization(x, xQ):\n",
" \"\"\"Evaluate rquantization by plotting signals and computing SNR.\"\"\"\n",
" e = xQ - x\n",
" # SNR\n",
" SNR = 10 * np.log10(np.var(x) / np.var(e))\n",
" print(\"SNR: {:2.1f} dB\".format(SNR))\n",
" # plot signals\n",
" plt.figure(figsize=(10, 4))\n",
" plt.plot(x[idx : idx + 100], label=r\"signal $x[k]$\")\n",
" plt.plot(xQ[idx : idx + 100], label=r\"requantized signal $x_Q[k]$\")\n",
" plt.plot(e[idx : idx + 100], label=r\"quantization error $e[k]$\")\n",
" plt.xlabel(r\"sample index $k$\")\n",
" plt.grid()\n",
" plt.legend()\n",
" # normalize error\n",
" e = 0.2 * e / np.max(np.abs(e))\n",
" return e\n",
"\n",
"\n",
"# load speech sample\n",
"x, fs = sf.read(\"../data/speech.wav\")\n",
"# normalize sample\n",
"x = x / np.max(np.abs(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Original Signal**\n",
"\n",
"[../data/speech.wav](../data/speech.wav)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Requantization to 8 bit"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SNR: 34.0 dB\n"
]
},
{
"data": {
"application/pdf": "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+AUiYYxt2CdK5ezf5i0naeD0D9fSoDiscXZVNB84i3x4S/WEjcSUppVHU5zd2hYOK4MUu9gWFl5hEaTyapjxeVPVwJJSlOXN+n93PcerG7oKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PCAvQmFzZUZvbnQgL0RlamFWdVNhbnMtT2JsaXF1ZSAvQ2hhclByb2NzIDE1IDAgUgovRW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgODEgL1EgMTAxIC9lIDEwNyAvayAxMjAgL3ggXSAvVHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk5NSA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL1EgMTYgMCBSIC9lIDE3IDAgUiAvayAxOCAwIFIgL3ggMTkgMCBSID4+CmVuZG9iagoyNCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDMw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NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMyAwIG9iago8PCAvYSAyNCAwIFIgL2JyYWNrZXRsZWZ0IDI1IDAgUiAvYnJhY2tldHJpZ2h0IDI2IDAgUiAvZCAyNyAwIFIgL2UgMjggMCBSCi9laWdodCAyOSAwIFIgL2ZvdXIgMzAgMCBSIC9nIDMxIDAgUiAvaSAzMiAwIFIgL2wgMzMgMCBSIC9tIDM0IDAgUgovbiAzNiAwIFIgL28gMzcgMCBSIC9vbmUgMzggMCBSIC9wIDM5IDAgUiAvcGVyaW9kIDQwIDAgUiAvcSA0MSAwIFIKL3IgNDIgMCBSIC9zIDQzIDAgUiAvc2l4IDQ0IDAgUiAvc3BhY2UgNDUgMCBSIC90IDQ2IDAgUiAvdGhyZWUgNDcgMCBSCi90d28gNDggMCBSIC91IDQ5IDAgUiAveCA1MCAwIFIgL3ogNTEgMCBSIC96ZXJvIDUyIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjIgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EzIDw8IC9DQSAwLjggL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC44ID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9GMS1EZWphVnVTYW5zLW1pbnVzIDM1IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKNTMgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDIxMDExODEyMTU0NyswMicwMCcpCi9DcmVhdG9yIChNYXRwbG90bGliIHYzLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjMuMikgPj4KZW5kb2JqCnhyZWYKMCA1NAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxNjg3OCAwMDAwMCBuIAowMDAwMDE2NjAyIDAwMDAwIG4gCjAwMDAwMTY2NDUgMDAwMDAgbiAKMDAwMDAxNjc4NyAwMDAwMCBuIAowMDAwMDE2ODA4IDAwMDAwIG4gCjAwMDAwMTY4MjkgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk4IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwNDM0OCAwMDAwMCBuIAowMDAwMDA2MDQyIDAwMDAwIG4gCjAwMDAwMDU4MzQgMDAwMDAgbiAKMDAwMDAwNTQ5OCAwMDAwMCBuIAowMDAwMDA3MDk1IDAwMDAwIG4gCjAwMDAwMDQzNjkgMDAwMDAgbiAKMDAwMDAwNDc3NSAwMDAwMCBuIAowMDAwMDA1MTc1IDAwMDAwIG4gCjAwMDAwMDUzMzQgMDAwMDAgbiAKMDAwMDAxNTE5NyAwMDAwMCBuIAowMDAwMDE0OTk3IDAwMDAwIG4gCjAwMDAwMTQ1MjIgMDAwMDAgbiAKMDAwMDAxNjI1MCAwMDAwMCBuIAowMDAwMDA3MTU3IDAwMDAwIG4gCjAwMDAwMDc1MzQgMDAwMDAgbiAKMDAwMDAwNzY3NyAwMDAwMCBuIAowMDAwMDA3ODE2IDAwMDAwIG4gCjAwMDAwMDgxMTYgMDAwMDAgbiAKMDAwMDAwODQzNCAwMDAwMCBuIAowMDAwMDA4ODk5IDAwMDAwIG4gCjAwMDAwMDkwNjEgMDAwMDAgbiAKMDAwMDAwOTQ3MiAwMDAwMCBuIAowMDAwMDA5NjEyIDAwMDAwIG4gCjAwMDAwMDk3MjkgMDAwMDAgbiAKMDAwMDAxMDA1NyAwMDAwMCBuIAowMDAwMDEwMjI3IDAwMDAwIG4gCjAwMDAwMTA0NjEgMDAwMDAgbiAKMDAwMDAxMDc0OCAwMDAwMCBuIAowMDAwMDEwOTAwIDAwMDAwIG4gCjAwMDAwMTEyMDkgMDAwMDAgbiAKMDAwMDAxMTMzMCAwMDAwMCBuIAowMDAwMDExNjQwIDAwMDAwIG4gCjAwMDAwMTE4NzAgMDAwMDAgbiAKMDAwMDAxMjI3NSAwMDAwMCBuIAowMDAwMDEyNjY1IDAwMDAwIG4gCjAwMDAwMTI3NTQgMDAwMDAgbiAKMDAwMDAxMjk1OCAwMDAwMCBuIAowMDAwMDEzMzY5IDAwMDAwIG4gCjAwMDAwMTM2OTAgMDAwMDAgbiAKMDAwMDAxMzkzNCAwMDAwMCBuIAowMDAwMDE0MDkzIDAwMDAwIG4gCjAwMDAwMTQyMzkgMDAwMDAgbiAKMDAwMDAxNjkzOCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDUzIDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSA1NCA+PgpzdGFydHhyZWYKMTcwOTUKJSVFT0YK\n",
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
"