├── AC_01_Basics_Multirate.ipynb
├── AC_02_FilterBanks1.ipynb
├── AC_03_FilterBanks2.ipynb
├── AC_03b_FilterBanks3.ipynb
├── AC_04_psychoAcoustics.ipynb
├── AC_05_psychoAcousticsModels.ipynb
├── AC_06_PQMF_FilterBank.ipynb
├── README.md
├── audio
├── fantasy-orchestra.wav
└── test3.wav
├── binder
├── del.txt
├── environment.yml
└── postBuild
├── fb2048t1023d512bbitcs.mat
├── images
├── Lecture6-10.png
├── Lecture6-6.png
├── Lecture6-7.png
├── Lecture6-8.png
├── Lecture6-9.png
├── ac_01_modulation.png
├── ac_02_audioCoders.png
├── ac_03_critc1.png
├── ac_04_01_psycho1.png
├── ac_04_02_structureEar.png
├── ac_04_03_cochlea.png
├── ac_04_04_cochlea2.png
├── ac_04_05_corti.png
├── ac_04_06_preprocessing.png
├── ac_04_07_preprocessing2.png
├── ac_04_08_basilarMembrane.png
├── ac_04_09_frequency.png
├── ac_04_10_threshold.png
├── ac_04_11_threshold2.png
├── ac_04_12_threshold_age.png
├── ac_04_13_threshold_age2.png
├── ac_04_14_loudness.png
├── ac_04_15_loudness_scale.png
├── ac_04_16_groupin.jpg
├── ac_04_16_groupin.png
├── ac_04_17_bandwidth.png
├── ac_04_18_bark.png
├── ac_04_19_broadnoise.png
├── ac_04_20_narrownoise.png
├── ac_04_21_narrownoise2.png
├── ac_04_22_LpHpnoise2.png
├── ac_04_23_pureTone.png
├── ac_04_24_complexTone.png
├── ac_04_25_inBand.png
├── ac_04_25_tonality.png
├── ac_04_26_spreadingF.png
├── ac_04_27_maskingBands.png
├── ac_04_28_temporal.png
├── ac_04_critc2.png
├── ac_05_01_ltq.png
├── ac_05_02_pemo.png
├── ac_05_downsamplint.png
├── ac_06_01_blockdiagramAC.jpg
├── ac_06_02_mpeg1BlockDiag.jpg
├── ac_06_02_mpeg3BlockDiag.jpg
├── ac_06_04_mpegHeader.jpg
├── ac_06_05_FaMetraix.jpg
├── ac_06_06_FsMetraix.jpg
├── ac_06_07_hybrid1.jpg
├── ac_06_08_hybrid2.jpg
├── ac_06_09_hybrid3.jpg
├── ac_06_10_hybrid4.jpg
├── ac_06_11_hybrid5.jpg
├── ac_06_12_hybrid6.jpg
├── ac_06_13_bitstream.jpg
├── ac_06_14_decoder.jpg
├── ac_06_15_flowchart.jpg
├── ac_06_16_layer3Diag.jpg
├── ac_06_upsampling.png
├── ac_07_analysis.png
├── ac_08_synthesis.png
├── ac_09_fb.png
├── ac_10_bandpass_ny.png
├── ac_11_bandpass_ny2.png
├── ac_12_noble.png
├── ac_13_noble2.png
├── ac_14_poly1.png
├── ac_15_poly2.png
├── ac_16_poly3.png
├── ac_17_polyA1.png
├── ac_18_polyS1.png
├── ac_19_polyS2.png
├── ac_20_synth.png
├── ac_21_synth2.png
├── ac_22_synth3.png
├── ac_23_exH.png
├── ac_24_dft.png
├── ac_25_dftMatrix.png
├── ac_26_dct4.png
├── ac_27_dct4_1.png
├── ac_28_freq_shift.png
├── ac_29_freq_shift2.png
├── ac_30_window.png
├── ac_31_windowRect.png
├── ac_32_polyphaseAnalysis.png
├── ac_33_polyphaseAnalysis2.png
├── ac_34_mdct_inv.png
├── ac_35_mdct_synth.png
├── ac_36_faMatA.png
├── ac_37_faMatA1.png
├── ac_38_mdct_PR.png
├── ac_39_sinWindow.png
├── ac_40_sineWindowFR.png
├── ac_41_sineWinIR.png
├── ac_42_sineWinFR.png
├── ac_43_delayMat.png
├── ac_44_delayMat2.png
├── ac_45_ldfbEx.png
├── ac_46_blockSwit.png
├── ac_47_blockSwit2.png
├── ac_48_blockSwit3.png
├── ac_49_blockSwit4.png
├── ac_50_blockSwit5.png
├── ac_51_qmf.png
├── ac_52_qmf2.png
├── ac_53_qmf3.png
├── ac_54_qmf4.png
├── ac_55_pqmf1.png
├── ac_56_pqmf2.png
├── ac_header.png
└── rise_tread_quantizers.png
└── seminars
├── README.md
├── all_ws22_seminars_intro.ipynb
└── nbgrader_config.py
/AC_03b_FilterBanks3.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "id": "sLQU8Pa7F82Y"
7 | },
8 | "source": [
9 | "
\n",
10 | " \n",
11 | " \n",
12 | "\n",
13 | "### Prof. Dr. -Ing. Gerald Schuller Jupyter Notebook: Renato Profeta \n",
14 | "\n",
15 | "[Applied Media Systems Group](https://www.tu-ilmenau.de/en/applied-media-systems-group/) \n",
16 | "[Technische Universität Ilmenau](https://www.tu-ilmenau.de/)"
17 | ]
18 | },
19 | {
20 | "cell_type": "markdown",
21 | "metadata": {
22 | "id": "7GNOqVWjF82c"
23 | },
24 | "source": [
25 | "# Filter Banks III\n",
26 | "\n",
27 | "## Lecture Video:\n",
28 | "\n",
29 | "https://youtu.be/yMAKglgGi90\n"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "execution_count": null,
35 | "metadata": {
36 | "hide_input": true,
37 | "id": "nNLy84iBF82c",
38 | "outputId": "222097b2-c61b-4e6c-cc93-91a89dfad501"
39 | },
40 | "outputs": [
41 | {
42 | "data": {
43 | "text/html": [
44 | "VIDEO \n"
45 | ],
46 | "text/plain": [
47 | ""
48 | ]
49 | },
50 | "metadata": {},
51 | "output_type": "display_data"
52 | }
53 | ],
54 | "source": [
55 | "%%html\n",
56 | "VIDEO "
57 | ]
58 | },
59 | {
60 | "cell_type": "markdown",
61 | "metadata": {
62 | "hide_input": false,
63 | "scrolled": true,
64 | "id": "f11DJqFUF82h"
65 | },
66 | "source": [
67 | "## Block Switching"
68 | ]
69 | },
70 | {
71 | "cell_type": "code",
72 | "execution_count": null,
73 | "metadata": {
74 | "hide_input": true,
75 | "id": "GdPEAYliF82h",
76 | "outputId": "6549bcbc-b4cc-4736-dc9f-e0c469cd3319"
77 | },
78 | "outputs": [
79 | {
80 | "name": "stdout",
81 | "output_type": "stream",
82 | "text": [
83 | "https://onlinelibrary.wiley.com/doi/book/10.1002/0470041978\n"
84 | ]
85 | },
86 | {
87 | "data": {
88 | "text/html": [
89 | "\n",
90 | " \n",
97 | " "
98 | ],
99 | "text/plain": [
100 | ""
101 | ]
102 | },
103 | "execution_count": 15,
104 | "metadata": {},
105 | "output_type": "execute_result"
106 | }
107 | ],
108 | "source": [
109 | "from IPython.display import IFrame\n",
110 | "print('https://onlinelibrary.wiley.com/doi/book/10.1002/0470041978')\n",
111 | "IFrame('https://ieeexplore.ieee.org/book/8039676', width=900, height=400)\n"
112 | ]
113 | },
114 | {
115 | "cell_type": "markdown",
116 | "metadata": {
117 | "hide_input": false,
118 | "id": "gB-HI_KZF82i"
119 | },
120 | "source": [
121 | " - **Problem:** In audio coding, Pre-echoes appear before transients.\n",
122 | " - reason: blocks too long.\n",
123 | "\n",
124 | "\n",
125 | " \n",
126 | " \n",
127 | "\n",
128 | " - **Approach:** for fast changing signals use block switching to lower number of subbands.\n",
129 | "\n",
130 | "\n",
131 | " \n",
132 | " "
133 | ]
134 | },
135 | {
136 | "cell_type": "markdown",
137 | "metadata": {
138 | "id": "WYBjZiI6F82i"
139 | },
140 | "source": [
141 | "### Accomodate Overlap-Add for Block Switching"
142 | ]
143 | },
144 | {
145 | "cell_type": "markdown",
146 | "metadata": {
147 | "hide_input": false,
148 | "id": "yReWU_CyF82i"
149 | },
150 | "source": [
151 | "\n",
152 | " \n",
153 | " \n",
154 | " \n",
155 | "\n",
156 | " \n",
157 | " \n"
158 | ]
159 | },
160 | {
161 | "cell_type": "markdown",
162 | "metadata": {
163 | "id": "CRQ_EXXMF82j"
164 | },
165 | "source": [
166 | "### Block Switching"
167 | ]
168 | },
169 | {
170 | "cell_type": "markdown",
171 | "metadata": {
172 | "hide_input": false,
173 | "id": "Oa3aM1g-F82j"
174 | },
175 | "source": [
176 | " - Sequence of windows for switching the number of sub-bands.\n",
177 | " - Shorter windows $\\rightarrow$ better resolution.\n",
178 | "\n",
179 | "\n",
180 | " \n",
181 | " \n"
182 | ]
183 | },
184 | {
185 | "cell_type": "code",
186 | "execution_count": null,
187 | "metadata": {
188 | "hide_input": true,
189 | "id": "isFeHmpSF82j",
190 | "outputId": "c3a3f451-163c-4d37-e41f-1eeec8e9e37b"
191 | },
192 | "outputs": [
193 | {
194 | "data": {
195 | "text/html": [
196 | "\n",
197 | " \n",
204 | " "
205 | ],
206 | "text/plain": [
207 | ""
208 | ]
209 | },
210 | "execution_count": 16,
211 | "metadata": {},
212 | "output_type": "execute_result"
213 | }
214 | ],
215 | "source": [
216 | "IFrame(\"https://ccrma.stanford.edu/~pdelac/422/project/report.html\",width=900, height=400)"
217 | ]
218 | },
219 | {
220 | "cell_type": "markdown",
221 | "metadata": {
222 | "id": "U0Ap4ryoF82k"
223 | },
224 | "source": [
225 | "## Wavelets, QMF (Quadradutre Mirror Filter) Filter Banks"
226 | ]
227 | },
228 | {
229 | "cell_type": "code",
230 | "execution_count": null,
231 | "metadata": {
232 | "hide_input": true,
233 | "id": "uhhU2QxPF82k",
234 | "outputId": "57a93857-68c3-44da-d7fb-32b85927ecf2"
235 | },
236 | "outputs": [
237 | {
238 | "data": {
239 | "text/html": [
240 | "VIDEO \n"
241 | ],
242 | "text/plain": [
243 | ""
244 | ]
245 | },
246 | "metadata": {},
247 | "output_type": "display_data"
248 | }
249 | ],
250 | "source": [
251 | "%%html\n",
252 | "VIDEO "
253 | ]
254 | },
255 | {
256 | "cell_type": "markdown",
257 | "metadata": {
258 | "hide_input": false,
259 | "id": "szGTPcQgF82k"
260 | },
261 | "source": [
262 | " - Iterate 2-band system.\n",
263 | " - See also: Wavelet Packets (more general)\n",
264 | " - **Problem:** Aliasing propagation reduces frequency selectivity!\n",
265 | " - Important in image coding, but no big role in Audio Coding.\n",
266 | "\n",
267 | "\n",
268 | " \n",
269 | " \n"
270 | ]
271 | },
272 | {
273 | "cell_type": "markdown",
274 | "metadata": {
275 | "id": "1ArvCd5xF82k"
276 | },
277 | "source": [
278 | "### How to Obtain a Two Band Filter Bank"
279 | ]
280 | },
281 | {
282 | "cell_type": "markdown",
283 | "metadata": {
284 | "id": "rplw4u8GF82l"
285 | },
286 | "source": [
287 | " - Application: QMF filter banks, Wavelets, ...\n",
288 | " - Analysis polyphase for a 2-band filter bank:\n",
289 | "\n",
290 | " $$\\large\n",
291 | " H(z)=\n",
292 | " \\begin{bmatrix}\n",
293 | " H_{0,0}(z) & H_{0,1}(z) \\\\\n",
294 | " H_{1,0}(z) & H_{1,1}(z)\n",
295 | " \\end{bmatrix}\n",
296 | " $$\n",
297 | " \n",
298 | " - **Observe:** $H_{0,0}(z)$ contains the even coefficients of the low pass filter, and $H_{1,0}(z)$ its odd coefficients.\n",
299 | " - Accordingly for the high pass filter.\n",
300 | " - Given the analysis filters, the synthesis filters can be obtained by inverting the analysis polyphase matrix:\n",
301 | "\n",
302 | " $$\\large\n",
303 | " H^{-1}(z) = \\dfrac{1}{Det(H(z))}\n",
304 | " \\begin{bmatrix}\n",
305 | " H_{1,1}(z) & -H_{0,1}(z) \\\\\n",
306 | " -H_{1,0}(z) & H_{0,0}(z)\n",
307 | " \\end{bmatrix}\n",
308 | " $$\n",
309 | " \n",
310 | "\n",
311 | " - **Observe:** If the analysis filters have a finite impulse response (FIR), and the synthesis is desired to also be FIR, the **determinant** of the polyphase matrix needs to be a **constant or a delay**!\n",
312 | "\n",
313 | " $$\\large\n",
314 | " det(H(z)) = H_{1,1}(z)H_{0,0}(z)-H_{0,1}(z)H_{1,0}(z) \\\\ = \\text{const or delay}$$\n",
315 | " \n",
316 | " - **Observe:** This is the output of the lower band of the filter bank if the input signal is:\n",
317 | "\n",
318 | " $$\\large\n",
319 | " x(z) = \\left \\lfloor H_{1,1}(z), -H_{0,1} \\right \\rfloor $$\n",
320 | "\n",
321 | " - Hence the determinant can be formulated as a **convolution**.\n",
322 | " - This input is the high band filter coefficients, with the sign of the even coefficients flipped and switched places with the odd coefficients.\n",
323 | " - Since this represents a critically sampled filter bank, the result represents **every second sample** of the convolution of the low band filter with the correspondingly modified high band filter.\n",
324 | " - This modified high band filter is a low band filter (every second sample sign flipped).\n",
325 | " - The desired output of this downsampled convolution is a single pulse (corresponding to a constant or a delay), hence flat in frequency.\n",
326 | " - Another interpretation: correlation of the 2 signals, where the even lags that appear after downsampling are zero, except for the one pulse."
327 | ]
328 | },
329 | {
330 | "cell_type": "markdown",
331 | "metadata": {
332 | "hide_input": false,
333 | "id": "3OYelFV4F82l"
334 | },
335 | "source": [
336 | "## QMF (Quadrature Mirror Filter)"
337 | ]
338 | },
339 | {
340 | "cell_type": "markdown",
341 | "metadata": {
342 | "id": "0-WsMfkLF82l"
343 | },
344 | "source": [
345 | " - This suggests a simple design strategy:\n",
346 | " - Design a low pass filter for analysis and synthesis.\n",
347 | " - Obtain the high pass filters by flipping the low pass filters every second coefficient.\n",
348 | " \n",
349 | "$$\\begin{array}\n",
350 | "\\text{analysis FB:} & h_1(n)=(-1)^nh_0(n) & n=0,1,...,N-1 \\\\\n",
351 | "\\text{synth. low pass:} & g_0(n)=h_0(n) & \\\\\n",
352 | "\\text{synth. FB high pass:} & g_1(n)=-h_1(n) &\n",
353 | "\\end{array}$$\n",
354 | "\n",
355 | " - This is an early two band filter bank: QMF, Quadrature Mirror Filter (Croisier, Esteban, Galand, 1976)\n",
356 | " - For more than 2 bands: GQMF (Cox, 1986), PQMF\n",
357 | "\n",
358 | " - Sign flipping to obtain the high band filter leads to the polyphase components:\n",
359 | " \n",
360 | "$$\\large\n",
361 | "H_{0,1}(z) = H_{0,0}(z) \\\\\n",
362 | "\\large\n",
363 | "H_{1,1}(z) = -H_{1,0}(z)\n",
364 | "$$ \n",
365 | "\n",
366 | " - The resulting determinant is:\n",
367 | "\n",
368 | "$$\\large\n",
369 | "det(H(z))=H_{1,1}(z)H_{0,0}(z)-H_{0,1}(z)H_{1,0}(z) \\\\\n",
370 | "\\large\n",
371 | "=-2H_{0,1}(z)H_{0,0}(z)$$\n",
372 | "\n",
373 | " - **Observe:** This cannot be made a constant or delay for finite polynomials of order 1 or greater, hence no PR for finite length filters!\n",
374 | " - The QMF accounts for the sign flipping in the determinant equation.\n",
375 | " - But not for the trading places of even and odd coefficients.\n",
376 | " - Hence: **No Perfect Reconstruction** (only for simple Haar and IIR filters)\n",
377 | " - High stopband attenuation needed to keep reconstruction error small.\n",
378 | " - Numerical optimization to obtain:\n",
379 | "\n",
380 | " $$\\large\n",
381 | " \\left |H_0\\left(e^{j\\omega}\\right)\\right |^2 + \\left |H_1\\left(e^{j\\omega}\\right)\\right |^2 \\approx 1$$\n",
382 | " \n",
383 | " \n",
384 | " \n",
385 | " \n",
386 | "\n",
387 | " \n",
388 | " \n",
389 | " \n",
390 | "\n",
391 | " - QMF: Example with Impulse Response of Length 96\n",
392 | " \n",
393 | "\n",
394 | " \n",
395 | " \n",
396 | " "
397 | ]
398 | },
399 | {
400 | "cell_type": "markdown",
401 | "metadata": {
402 | "hide_input": false,
403 | "id": "WUyVgY05F82m"
404 | },
405 | "source": [
406 | "### CQMF: Conjugate QMF"
407 | ]
408 | },
409 | {
410 | "cell_type": "code",
411 | "execution_count": null,
412 | "metadata": {
413 | "hide_input": true,
414 | "id": "0-B8GWlXF82m",
415 | "outputId": "2e8600c3-e4a5-4c46-e176-29ae0db1eebc"
416 | },
417 | "outputs": [
418 | {
419 | "data": {
420 | "text/html": [
421 | "VIDEO \n"
422 | ],
423 | "text/plain": [
424 | ""
425 | ]
426 | },
427 | "metadata": {},
428 | "output_type": "display_data"
429 | }
430 | ],
431 | "source": [
432 | "%%html\n",
433 | "VIDEO "
434 | ]
435 | },
436 | {
437 | "cell_type": "markdown",
438 | "metadata": {
439 | "hide_input": false,
440 | "id": "xwx71GcQF82m"
441 | },
442 | "source": [
443 | " - To also accommodate for the trading places of odd and even coefficients, a natural choice is to also reverse the temporal order of the synthesis filter.\n",
444 | "\n",
445 | " $$\\large\n",
446 | " h_1(n) = -n_0(L-1-n)(-1)^n$$\n",
447 | " \n",
448 | " - With L: filter length, and $g_0(n) = h_0(n) \\quad g_1(n) = - h_1(n)$\n",
449 | " - Introduced e.g. by Smith, Barnwell, 1984\n",
450 | " \n",
451 | "\n",
452 | "\n",
453 | " - For the polyphase components this means:\n",
454 | "\n",
455 | " $$\\large\n",
456 | " \\begin{array}{ccc}\n",
457 | " H_{0,1} & = & -z^{\\frac{L}{2}}H_{0,0}(z^{-1}) \\\\\n",
458 | " H_{1,1} & = & z^{\\frac{L}{2}}H_{1,0}(z^{-1})\n",
459 | " \\end{array}$$\n",
460 | "\n",
461 | " - And the input for our determinant calculation is:\n",
462 | "\n",
463 | " $$\\large\n",
464 | " x(z) = z^{-\\frac{L}{2}} \\left \\lfloor H_{1,0}(z^{-1}), H_{0,0}(z^{-1}) \\right \\rfloor$$\n",
465 | " \n",
466 | " - This corresponds exactly to the time reversed low band filter!\n",
467 | "\n",
468 | " - Let's define:\n",
469 | "\n",
470 | " $$\\large\n",
471 | " A(z) = H_{1,0}(z^{-1})H_{0,0}(z) $$\n",
472 | "\n",
473 | " - The determinant is now:\n",
474 | "\n",
475 | " $$\\large\n",
476 | " det(H(z)) = H_{1,1}(z)H_{0,0}(z)-H_{0,1}(z)H_{1,0}(z) \\\\\n",
477 | " \\large\n",
478 | " = z^{-\\frac{L}{2}} (A(z)+A(z^{-1}))$$ \n",
479 | " - **Observe:** This can be a constant if all even coefficients of A(z) are zero, except for the center coefficient!\n",
480 | " - **Remember:** the determinant was the output of the low band with this input.\n",
481 | " - Hence: Every second sample of the convolution of the low band filter with its time reversed version.\n",
482 | " - This is equal to **every second value** of the **autocorrelation** function of the l**ow band filter**!\n",
483 | " - Determinant is a constant or a delay: only one sample of this downsampled autocorrelation function (all even coefficients) can be unequal zero (most even coefficients are zero).\n",
484 | " - The Determinant is a constant means:\n",
485 | " - The 0th autocorrelation coefficient is a constant (unequal 0), and all other even coefficients must be zero.\n",
486 | " - Called Nyquist filter property.\n",
487 | "\n",
488 | "\n",
489 | " - In other terms: Define P(z) as the z-transform of this autocorrelation function, the **Power Spectrum**:\n",
490 | "\n",
491 | " $$\\large\n",
492 | " P(z) := H_0(z) \\cdot H_0(z^{-1})$$\n",
493 | "\n",
494 | " - Then all nonzero coefficients of P(z) are the 0th coefficient and the odd coefficients.\n",
495 | " - As a result:\n",
496 | "\n",
497 | " $$\\large\n",
498 | " P(z) + P(-z) = const$$\n",
499 | "\n",
500 | " - The odd coefficients cancel.\n",
501 | " - Frequency reversal $\\rightarrow$ (P(-z))\n",
502 | " - This is also called the halfband filter property.\n",
503 | " \n",
504 | " \n",
505 | " - Design approach: Design P(z) accordingly, then H(z)"
506 | ]
507 | },
508 | {
509 | "cell_type": "markdown",
510 | "metadata": {
511 | "id": "5l3-4-w-F82n"
512 | },
513 | "source": [
514 | "## Pseudo-QMF (PQMF)"
515 | ]
516 | },
517 | {
518 | "cell_type": "code",
519 | "execution_count": null,
520 | "metadata": {
521 | "hide_input": true,
522 | "id": "RFR_kIjaF82n",
523 | "outputId": "e147dcb4-5c9b-468a-eeb9-9c6e86ff58df"
524 | },
525 | "outputs": [
526 | {
527 | "data": {
528 | "text/html": [
529 | "VIDEO \n"
530 | ],
531 | "text/plain": [
532 | ""
533 | ]
534 | },
535 | "metadata": {},
536 | "output_type": "display_data"
537 | }
538 | ],
539 | "source": [
540 | "%%html\n",
541 | "VIDEO "
542 | ]
543 | },
544 | {
545 | "cell_type": "markdown",
546 | "metadata": {
547 | "scrolled": true,
548 | "id": "HkkEQp4bF82n"
549 | },
550 | "source": [
551 | " - So far we only had 2 subband QMF filter banks.\n",
552 | " - Only for the 2-band case we get perfect reconstruction (in the CQMF case).\n",
553 | " - The PQMF extents the QMF approach to N>2 subbands.\n",
554 | " - But it has only \"Near Perfect Reconstruction\", meaning a reconstruction error by the filter bank.\n",
555 | " - It is modulated filter band (like the MDCT), using a baseband prototype filter h(n) (a lowpass).\n",
556 | " - Its analysis filters are given by the impulse responses (L being the length of the impulse response):\n",
557 | "\n",
558 | " $$\\large\n",
559 | " H_k(n) = h(n) \\cos \\left( \\dfrac{\\pi}{N} \\cdot (k+0.5)(n+0.5-\\dfrac{L}{2}+(-1)^k\\dfrac{\\pi}{4} \\right)$$\n",
560 | "\n",
561 | " - It is an (almost) **orthogonal filter bank**, which means that the synthesis filter impulse responses are simply the time inverses of the analysis impulse responses:\n",
562 | "\n",
563 | " $$\\large\n",
564 | " g_k(n)=h_k(n)(L-1-n)$$\n",
565 | "\n",
566 | " - Its baseband prototype filters h(n) are now designed such that aliasing cancels between adjacent neighbouring bands:\n",
567 | "\n",
568 | " $$\\large\n",
569 | " \\left| H(e^{j\\Omega}) \\right|^2 + \\left| H \\left(e^{j\\left(\\frac{\\pi}{N}-\\Omega\\right)}\\right) \\right|^2 = 1 \\\\\n",
570 | " \\large\n",
571 | " \\text{for } 0 < |\\Omega| < \\frac{\\pi}{2N}\n",
572 | " $$\n",
573 | "\n",
574 | " - Beyond the adjacent bands, the attenuation should go towards infinity:\n",
575 | "\n",
576 | " $$\\large\n",
577 | " \\left| H(e^{j\\Omega}) \\right|^2 = 0, \\text{for } |\\Omega| > \\frac{\\pi}{N}$$\n",
578 | "\n",
579 | "\n",
580 | " - This leads to **\"Near Perfect Reconstruction\"** (there is a **reconstruction error**).\n",
581 | " - The PQMF filter bank is used in MPEG1/2 Layer I,II and III. There it has N=32 subbands and filter length L=512.\n",
582 | " - Also used in MPEG 4 for so-called SBR (Spectral Band Replication) and for parametric sourround coding. There it has N=32 or N=64 subbands, and filter length L=320 or L=640."
583 | ]
584 | },
585 | {
586 | "cell_type": "markdown",
587 | "metadata": {
588 | "scrolled": false,
589 | "id": "H_f3MSorF82n"
590 | },
591 | "source": [
592 | "### PQMF used in MPEG4"
593 | ]
594 | },
595 | {
596 | "cell_type": "markdown",
597 | "metadata": {
598 | "id": "YBvCrrrQF82o"
599 | },
600 | "source": [
601 | " - Impulse response of the baseband prototype (the window), with N=64 and L=640\n",
602 | "\n",
603 | " \n",
604 | "\n",
605 | " \n",
606 | " \n",
607 | " \n",
608 | "\n",
609 | " - Frequency response of the baseband prototype (the window)\n",
610 | "\n",
611 | " \n",
612 | "\n",
613 | " \n",
614 | " \n",
615 | " "
616 | ]
617 | }
618 | ],
619 | "metadata": {
620 | "kernelspec": {
621 | "display_name": "Python 3",
622 | "language": "python",
623 | "name": "python3"
624 | },
625 | "language_info": {
626 | "codemirror_mode": {
627 | "name": "ipython",
628 | "version": 3
629 | },
630 | "file_extension": ".py",
631 | "mimetype": "text/x-python",
632 | "name": "python",
633 | "nbconvert_exporter": "python",
634 | "pygments_lexer": "ipython3",
635 | "version": "3.7.8"
636 | },
637 | "livereveal": {
638 | "rise": {
639 | "height": "90%",
640 | "width": "90%"
641 | },
642 | "scroll": true,
643 | "theme": "beige",
644 | "transition": "zoom"
645 | },
646 | "colab": {
647 | "provenance": []
648 | }
649 | },
650 | "nbformat": 4,
651 | "nbformat_minor": 0
652 | }
--------------------------------------------------------------------------------
/AC_04_psychoAcoustics.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "id": "QUS6HvQhIc0P"
7 | },
8 | "source": [
9 | "\n",
10 | " \n",
11 | " \n",
12 | "\n",
13 | "### Prof. Dr. -Ing. Gerald Schuller Jupyter Notebook: Renato Profeta \n",
14 | "\n",
15 | "[Applied Media Systems Group](https://www.tu-ilmenau.de/en/applied-media-systems-group/) \n",
16 | "[Technische Universität Ilmenau](https://www.tu-ilmenau.de/)"
17 | ]
18 | },
19 | {
20 | "cell_type": "markdown",
21 | "metadata": {
22 | "id": "VLt8qyCYIc0Q"
23 | },
24 | "source": [
25 | "# Psychoacoustics, Physiological Effects\n",
26 | "\n",
27 | "##Lecture Video:\n",
28 | "\n",
29 | "https://youtu.be/tz1Rj0xNDAU\n"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "execution_count": null,
35 | "metadata": {
36 | "hide_input": true,
37 | "id": "krGo3N7hIc0Q",
38 | "outputId": "7fc2fe22-6015-4c34-c639-45bc20cdb8e9"
39 | },
40 | "outputs": [
41 | {
42 | "data": {
43 | "text/html": [
44 | "VIDEO \n"
45 | ],
46 | "text/plain": [
47 | ""
48 | ]
49 | },
50 | "metadata": {},
51 | "output_type": "display_data"
52 | }
53 | ],
54 | "source": [
55 | "%%html\n",
56 | "VIDEO "
57 | ]
58 | },
59 | {
60 | "cell_type": "markdown",
61 | "metadata": {
62 | "id": "fRHMrcw-Ic0R"
63 | },
64 | "source": [
65 | "## Block Diagram of a Perceptual Audio Encoder"
66 | ]
67 | },
68 | {
69 | "cell_type": "markdown",
70 | "metadata": {
71 | "hide_input": false,
72 | "id": "i9b6i7_lIc0R"
73 | },
74 | "source": [
75 | "\n",
76 | " \n",
77 | " "
78 | ]
79 | },
80 | {
81 | "cell_type": "markdown",
82 | "metadata": {
83 | "hide_input": false,
84 | "scrolled": true,
85 | "id": "OwPlH6-jIc0R"
86 | },
87 | "source": [
88 | "## Structure of the Human Ear"
89 | ]
90 | },
91 | {
92 | "cell_type": "code",
93 | "execution_count": null,
94 | "metadata": {
95 | "hide_input": true,
96 | "id": "DK1M2NGvIc0R",
97 | "outputId": "5b517beb-7d68-402a-abc9-0b01fa9653d7"
98 | },
99 | "outputs": [
100 | {
101 | "data": {
102 | "text/html": [
103 | "VIDEO \n"
104 | ],
105 | "text/plain": [
106 | ""
107 | ]
108 | },
109 | "metadata": {},
110 | "output_type": "display_data"
111 | }
112 | ],
113 | "source": [
114 | "%%html\n",
115 | "VIDEO "
116 | ]
117 | },
118 | {
119 | "cell_type": "markdown",
120 | "metadata": {
121 | "hide_input": false,
122 | "id": "oFjgkZkRIc0R"
123 | },
124 | "source": [
125 | "\n",
126 | " \n",
127 | " Quelle: Ars Auditus; http://www.dasp.uni-wuppertal.de/index.php?id=57, 2010 \n",
128 | " \n",
129 | "\n",
130 | " - eardrum – transforms sound wave into vibrations\n",
131 | " - ossicular bones - transfer the mechanical vibrations to the cochlea\n",
132 | " - cochlear structure - induces traveling waves along the length of the basilar membrane\n",
133 | " - neural receptors - connected along the length of the basilar membrane\n",
134 | " - convert these traveling into chemical and electrical signals"
135 | ]
136 | },
137 | {
138 | "cell_type": "markdown",
139 | "metadata": {
140 | "id": "DW0mVrhiIc0R"
141 | },
142 | "source": [
143 | "### Cochlea"
144 | ]
145 | },
146 | {
147 | "cell_type": "markdown",
148 | "metadata": {
149 | "id": "c_q0JloGIc0R"
150 | },
151 | "source": [
152 | "\n",
153 | " \n",
154 | " \n",
155 | "\n",
156 | " - cochlea of a 5 month old fetus:\n",
157 | " - spiral-shaped, fluid-filled structure\n",
158 | " - contains the coiled basilar membrane\n",
159 | " - blue arrow $\\rightarrow$ oval window\n",
160 | " - yellos arrow $\\rightarrow$ round window\n",
161 | "\n",
162 | " \n",
163 | " \n",
164 | " "
165 | ]
166 | },
167 | {
168 | "cell_type": "markdown",
169 | "metadata": {
170 | "id": "jWHcIUPJIc0R"
171 | },
172 | "source": [
173 | "### Organ of Corti"
174 | ]
175 | },
176 | {
177 | "cell_type": "markdown",
178 | "metadata": {
179 | "id": "mLYC1LbZIc0S"
180 | },
181 | "source": [
182 | " \n",
183 | " \n",
184 | " \n",
185 | "\n",
186 | " - organ of corti of a guinea pig\n",
187 | " - white bar = 20 μm\n",
188 | "\n",
189 | " - $\\approx$ 3500 IHC and $\\approx$ 12000 OHC at humans.\n",
190 | " - hair cells convert fluid motion into electrical impulses in auditory nerve."
191 | ]
192 | },
193 | {
194 | "cell_type": "code",
195 | "execution_count": null,
196 | "metadata": {
197 | "hide_input": true,
198 | "id": "U2LG-K_zIc0S",
199 | "outputId": "f5e4e0aa-9786-4219-cdc5-5ef4f9aac604"
200 | },
201 | "outputs": [
202 | {
203 | "name": "stdout",
204 | "output_type": "stream",
205 | "text": [
206 | "https://acoustics.org/pressroom/httpdocs/146th/mountain.htm\n"
207 | ]
208 | },
209 | {
210 | "data": {
211 | "text/html": [
212 | "\n",
213 | " \n",
220 | " "
221 | ],
222 | "text/plain": [
223 | ""
224 | ]
225 | },
226 | "execution_count": 3,
227 | "metadata": {},
228 | "output_type": "execute_result"
229 | }
230 | ],
231 | "source": [
232 | "from IPython.display import IFrame\n",
233 | "print('https://acoustics.org/pressroom/httpdocs/146th/mountain.htm')\n",
234 | "IFrame('https://acoustics.org/pressroom/httpdocs/146th/mountain.htm', width=900, height=600)\n"
235 | ]
236 | },
237 | {
238 | "cell_type": "code",
239 | "execution_count": null,
240 | "metadata": {
241 | "hide_input": true,
242 | "id": "dw2fLW6pIc0S",
243 | "outputId": "80b7c79d-9c09-4ce2-e217-de2a633342c1"
244 | },
245 | "outputs": [
246 | {
247 | "name": "stdout",
248 | "output_type": "stream",
249 | "text": [
250 | "http://147.162.36.50/cochlea/cochleapages/overview/history.htm\n"
251 | ]
252 | },
253 | {
254 | "data": {
255 | "text/html": [
256 | "\n",
257 | " \n",
264 | " "
265 | ],
266 | "text/plain": [
267 | ""
268 | ]
269 | },
270 | "execution_count": 4,
271 | "metadata": {},
272 | "output_type": "execute_result"
273 | }
274 | ],
275 | "source": [
276 | "from IPython.display import IFrame\n",
277 | "print('http://147.162.36.50/cochlea/cochleapages/overview/history.htm')\n",
278 | "IFrame('http://147.162.36.50/cochlea/cochleapages/overview/history.htm', width=900, height=600)"
279 | ]
280 | },
281 | {
282 | "cell_type": "code",
283 | "execution_count": null,
284 | "metadata": {
285 | "hide_input": true,
286 | "id": "3riaab5PIc0S",
287 | "outputId": "718e6420-c35e-403d-86b6-510ec897fc7f"
288 | },
289 | "outputs": [
290 | {
291 | "data": {
292 | "text/html": [
293 | "VIDEO \n"
294 | ],
295 | "text/plain": [
296 | ""
297 | ]
298 | },
299 | "metadata": {},
300 | "output_type": "display_data"
301 | }
302 | ],
303 | "source": [
304 | "%%html\n",
305 | "VIDEO "
306 | ]
307 | },
308 | {
309 | "cell_type": "markdown",
310 | "metadata": {
311 | "id": "n_1h_ChPIc0S"
312 | },
313 | "source": [
314 | "## Preprocessing of Sound in the Peripheral System"
315 | ]
316 | },
317 | {
318 | "cell_type": "code",
319 | "execution_count": null,
320 | "metadata": {
321 | "hide_input": true,
322 | "id": "9AK714dpIc0S",
323 | "outputId": "f75e27cb-1c3e-4c45-d8a2-8308a8157993"
324 | },
325 | "outputs": [
326 | {
327 | "data": {
328 | "text/html": [
329 | "VIDEO \n"
330 | ],
331 | "text/plain": [
332 | ""
333 | ]
334 | },
335 | "metadata": {},
336 | "output_type": "display_data"
337 | }
338 | ],
339 | "source": [
340 | "%%html\n",
341 | "VIDEO "
342 | ]
343 | },
344 | {
345 | "cell_type": "markdown",
346 | "metadata": {
347 | "hide_input": false,
348 | "id": "Cv3mjM_GIc0S"
349 | },
350 | "source": [
351 | " - frequency selectivity of the basilar membrane\n",
352 | " \n",
353 | " \n",
354 | " \n",
355 | " Source: http://cochlearimplanthelp.com/journey/choosing-a-cochlear-implant/electrodes-and-channels/ \n",
356 | " \n",
357 | " \n",
358 | " \n",
359 | " - traveling wave envelopes occur in response to an acoustic tone complex containing e.g. sinusoids of 400 Hz, 1600 Hz and 6400 Hz\n",
360 | " - peak responses for each sinusoid are localized along the membrane surface, with each peak occurring at a particular distance from the oval window (cochlear \"input\")\n",
361 | "\n",
362 | " \n",
363 | " \n",
364 | " Source: Yuli You \"Audio Coding Theory and Applications\" \n",
365 | " \n",
366 | " "
367 | ]
368 | },
369 | {
370 | "cell_type": "markdown",
371 | "metadata": {
372 | "id": "OLIwPId9Ic0S"
373 | },
374 | "source": [
375 | "## Information Processing in the Auditory System"
376 | ]
377 | },
378 | {
379 | "cell_type": "markdown",
380 | "metadata": {
381 | "hide_input": false,
382 | "id": "jB4NDR95Ic0S"
383 | },
384 | "source": [
385 | " - basilar membrane as a filter bank\n",
386 | " - bank of highly overlapping bandpass filters\n",
387 | " - the magnitude responses are asymmetric and nonlinear (level dependent)\n",
388 | " - non-uniform bandwidth, and the bandwidths increase with increasing frequency\n",
389 | "\n",
390 | "\n",
391 | " \n",
392 | " \n"
393 | ]
394 | },
395 | {
396 | "cell_type": "markdown",
397 | "metadata": {
398 | "id": "OW9MRJGYIc0S"
399 | },
400 | "source": [
401 | "## Sound Perception"
402 | ]
403 | },
404 | {
405 | "cell_type": "markdown",
406 | "metadata": {
407 | "hide_input": false,
408 | "id": "Fcgpd_e3Ic0S"
409 | },
410 | "source": [
411 | "### Frequency and Level Range of Human Hearing"
412 | ]
413 | },
414 | {
415 | "cell_type": "code",
416 | "execution_count": null,
417 | "metadata": {
418 | "hide_input": true,
419 | "id": "fbeA2vZOIc0S",
420 | "outputId": "e6d32a78-f9fb-4eed-90c5-5c703010d3ba"
421 | },
422 | "outputs": [
423 | {
424 | "data": {
425 | "text/html": [
426 | "VIDEO \n"
427 | ],
428 | "text/plain": [
429 | ""
430 | ]
431 | },
432 | "metadata": {},
433 | "output_type": "display_data"
434 | }
435 | ],
436 | "source": [
437 | "%%html\n",
438 | "VIDEO "
439 | ]
440 | },
441 | {
442 | "cell_type": "markdown",
443 | "metadata": {
444 | "hide_input": false,
445 | "id": "H_R4fOFvIc0S"
446 | },
447 | "source": [
448 | "\n",
449 | " \n",
450 | " \n"
451 | ]
452 | },
453 | {
454 | "cell_type": "markdown",
455 | "metadata": {
456 | "id": "VGJyJeXnIc0S"
457 | },
458 | "source": [
459 | "### Threshold in Quiet or the Absolute Threshold"
460 | ]
461 | },
462 | {
463 | "cell_type": "markdown",
464 | "metadata": {
465 | "id": "YGFg-MgzIc0S"
466 | },
467 | "source": [
468 | " - Hearing threshold of 100 persons with normal hearing for\n",
469 | " sine tones (50% curve is the median).\n",
470 | " \n",
471 | " \n",
472 | " \n",
473 | " \n",
474 | " \n",
475 | "\n",
476 | " - Approximations:\n",
477 | "\n",
478 | " $$\\large\n",
479 | " \\dfrac{L_{T_q}}{dB} = 3.64 \\left( \\frac{f}{kHz} \\right)^{-0.8} - \\exp \\left( -0.6\\left(\\dfrac{f}{kHz}-3.3\\right)^2\\right)\n",
480 | " + 10^{-3}\\left(\\dfrac{f}{kHz}\\right)^4\n",
481 | " $$\n",
482 | " \n",
483 | " \n",
484 | " \n",
485 | " \n",
486 | "\n"
487 | ]
488 | },
489 | {
490 | "cell_type": "markdown",
491 | "metadata": {
492 | "id": "wRIpMn7wIc0S"
493 | },
494 | "source": [
495 | "### Hearing Threshold and Age"
496 | ]
497 | },
498 | {
499 | "cell_type": "markdown",
500 | "metadata": {
501 | "id": "Nn1wjHwcIc0T"
502 | },
503 | "source": [
504 | " - Average pure-tone audiograms in dB Hearing Loss in (a) men and (b) women grouped by their age in decades (the parameter is age group in years). The extended high-frequency range is zoomed for clarity.\n",
505 | "\n",
506 | " \n",
507 | " \n",
508 | " \n",
509 | " \n",
510 | "\n",
511 | "\n",
512 | " - Pure-tone threshold standard deviation of all participants as a function of frequency (the parameter is age in 10-year groups).\n",
513 | "\n",
514 | " \n",
515 | " \n",
516 | " \n",
517 | " \n",
518 | "\n",
519 | "\n"
520 | ]
521 | },
522 | {
523 | "cell_type": "code",
524 | "execution_count": null,
525 | "metadata": {
526 | "hide_input": true,
527 | "scrolled": false,
528 | "id": "Bdis6LDsIc0T",
529 | "outputId": "972cb69a-6847-45f7-8115-2e90238e127c"
530 | },
531 | "outputs": [
532 | {
533 | "name": "stdout",
534 | "output_type": "stream",
535 | "text": [
536 | "http://newt.phys.unsw.edu.au/jw/hearing.html\n"
537 | ]
538 | },
539 | {
540 | "data": {
541 | "text/html": [
542 | "\n",
543 | " \n",
550 | " "
551 | ],
552 | "text/plain": [
553 | ""
554 | ]
555 | },
556 | "execution_count": 6,
557 | "metadata": {},
558 | "output_type": "execute_result"
559 | }
560 | ],
561 | "source": [
562 | "from IPython.display import IFrame\n",
563 | "print('http://newt.phys.unsw.edu.au/jw/hearing.html')\n",
564 | "IFrame('http://newt.phys.unsw.edu.au/jw/hearing.html', width=900, height=600)"
565 | ]
566 | },
567 | {
568 | "cell_type": "markdown",
569 | "metadata": {
570 | "id": "g-MgzwIwIc0T"
571 | },
572 | "source": [
573 | "## Loudness"
574 | ]
575 | },
576 | {
577 | "cell_type": "code",
578 | "execution_count": null,
579 | "metadata": {
580 | "hide_input": true,
581 | "id": "0ZwZvhGWIc0T",
582 | "outputId": "1686c450-8b69-45f4-915e-fc707b7b8d2d"
583 | },
584 | "outputs": [
585 | {
586 | "data": {
587 | "text/html": [
588 | "VIDEO \n"
589 | ],
590 | "text/plain": [
591 | ""
592 | ]
593 | },
594 | "metadata": {},
595 | "output_type": "display_data"
596 | }
597 | ],
598 | "source": [
599 | "%%html\n",
600 | "VIDEO "
601 | ]
602 | },
603 | {
604 | "cell_type": "markdown",
605 | "metadata": {
606 | "id": "IPU0WePeIc0T"
607 | },
608 | "source": [
609 | " - Loudness LeveL:\n",
610 | " - **Loudness N:** psychological concept to describe the magnitude of an auditory sensation , the loudness of a sound (measured in 'sone')\n",
611 | " - **loudness level $L_N$** of a sound is measured in **'phon'**\n",
612 | " - **$L_N$** of a sound is the sound pressure of a 1 kHz tone which is as loud as the sound\n",
613 | " - 1 sone is equivalent to 40 phons, which is defined as the loudness level of a pure 1 kHz tone at $L_N$ 40 dB SPL.\n",
614 | " \n",
615 | " \n",
616 | " - Equal-Loudness Level Contours:\n",
617 | " - Equal loudness contours of pure tone sin a free sound field.\n",
618 | " - The parameter is expressed in **loudness level**, $L_N$, and loudness, N. Can be observed:\n",
619 | " - The sensitivity of the human ear -a function of frequency\n",
620 | " - The most sensitive to sounds around 2–4 kHz\n",
621 | " \n",
622 | " \n",
623 | " \n",
624 | " \n",
625 | " \n",
626 | "\n",
627 | " - Loudness Scale:\n",
628 | " - aim: double the number of units on this scale means magnitude of sensation is doubled\n",
629 | " \n",
630 | " $\\rightarrow$ relation between loudness level $L_N$ and the loudness N (rule of thumb):\n",
631 | " $$2 \\cdot N \\hat{=} L_N + 10 phon $$\n",
632 | " - one potential experiment:\n",
633 | " \n",
634 | " listen to a sound with $L_{N_1}$ 1and then adjust the same sound until \n",
635 | " $N_2 = 2 \\cdot N_1$, then compare $L_{N_1}$ and $L_{N_2}$\n",
636 | " \n",
637 | " \n",
638 | " \n",
639 | " \n",
640 | " "
641 | ]
642 | },
643 | {
644 | "cell_type": "markdown",
645 | "metadata": {
646 | "id": "pUTP_mjHIc0T"
647 | },
648 | "source": [
649 | "## Critical Bands"
650 | ]
651 | },
652 | {
653 | "cell_type": "markdown",
654 | "metadata": {
655 | "id": "44I8yBZgIc0T"
656 | },
657 | "source": [
658 | "### Frequency Grouping in Human Hearing"
659 | ]
660 | },
661 | {
662 | "cell_type": "code",
663 | "execution_count": null,
664 | "metadata": {
665 | "hide_input": true,
666 | "id": "2baXU1qjIc0T",
667 | "outputId": "3cea42ac-162f-4700-d985-559e0bd00b88"
668 | },
669 | "outputs": [
670 | {
671 | "data": {
672 | "text/html": [
673 | "VIDEO \n"
674 | ],
675 | "text/plain": [
676 | ""
677 | ]
678 | },
679 | "metadata": {},
680 | "output_type": "display_data"
681 | }
682 | ],
683 | "source": [
684 | "%%html\n",
685 | "VIDEO "
686 | ]
687 | },
688 | {
689 | "cell_type": "markdown",
690 | "metadata": {
691 | "id": "ran2uei9Ic0U"
692 | },
693 | "source": [
694 | " - Different interpretations that produce the same segmentation:\n",
695 | " - Constant distance in the Cochlea\n",
696 | " - By using tones under the threshold in quiet, their intensity add up in a critical band and are now audible\n",
697 | " - Tones in a critical band above the threshold in quiet: their energy adds up\n",
698 | " - Formula for the width of the critical bands:\n",
699 | " - for frequencies < 500 Hz: Constant 100Hz width\n",
700 | " - for frequencies > 500 Hz: 0.2*frequency\n",
701 | " \n",
702 | "\n",
703 | " \n",
704 | " : Zwicker, Fastl “Psychoacoustics Facts and Models”, p.159 \n",
705 | " \n",
706 | " \n",
707 | " - Critical bandwidth as a function of frequency, that quantifies the cochlear filter passbands.\n",
708 | " - Approximations for low and high frequency ranges are indicated by broken lines."
709 | ]
710 | },
711 | {
712 | "cell_type": "markdown",
713 | "metadata": {
714 | "hide_input": false,
715 | "id": "XR1NgPqDIc0U"
716 | },
717 | "source": [
718 | "#### Excursus - Critical Bands and Loudness"
719 | ]
720 | },
721 | {
722 | "cell_type": "markdown",
723 | "metadata": {
724 | "id": "Wnkun5QNIc0U"
725 | },
726 | "source": [
727 | " - Spectral effects -influence of bandwidth:\n",
728 | " - bandwidth of the signals plays an important role\n",
729 | " - sound level also influence loudness level\n",
730 | " - $\\rightarrow$ total sound intensity (SPL) have to be constant to measure loudness as function of bandwidth\n",
731 | " - $\\rightarrow$ critical bandwidth\n",
732 | " \n",
733 | "\n",
734 | " \n",
735 | " "
736 | ]
737 | },
738 | {
739 | "cell_type": "markdown",
740 | "metadata": {
741 | "hide_input": false,
742 | "id": "1GlKuCjoIc0U"
743 | },
744 | "source": [
745 | "### Bark Scale"
746 | ]
747 | },
748 | {
749 | "cell_type": "markdown",
750 | "metadata": {
751 | "id": "Vd7KjZEwIc0X"
752 | },
753 | "source": [
754 | " - Critical-band concept used in many models and hypothesis \n",
755 | " $\\rightarrow$ unit was defined leading to so-called critical-band rate scale\n",
756 | " - scale ranging from 0 –24, unit \"Bark\"\n",
757 | " - relation between z and f is important for understanding many characteristics of human ear\n",
758 | "\n",
759 | "\n",
760 | " \n",
761 | " \n",
762 | "\n",
763 | " - Critical-band concept used in many models and hypotheses \n",
764 | " $\\rightarrow$ unit was defined leading to so-called critical-band rate scale\n",
765 | " - scale ranging from 0 –24, unit \"Bark\"(after Zwicker)\n",
766 | " - One Bark corresponds to one critical band\n",
767 | " - Attempt to approximate critical bands with formulas:\n",
768 | "\n",
769 | "Critical Bandrate *z*:\n",
770 | "\n",
771 | "$$\\large\n",
772 | "\\dfrac{z}{Bark} = 13 \\arctan \\left( 0.76 \\cdot \\dfrac{f}{kHz} \\right) + 3.5 \\cdot \\arctan \\left( \\dfrac{f}{7.5kHz}\\right)^2$$\n",
773 | "\n",
774 | "Critical Bandwidth:\n",
775 | "\n",
776 | "$$\\large\n",
777 | "\\Delta f_b = 25 + 75 \\left( 1 + 1.4 \\left( \\dfrac{f}{kHz} \\right)^2 \\right)^{0.69} $$"
778 | ]
779 | },
780 | {
781 | "cell_type": "markdown",
782 | "metadata": {
783 | "hide_input": false,
784 | "id": "1_Ttjj1iIc0X"
785 | },
786 | "source": [
787 | "## Masking"
788 | ]
789 | },
790 | {
791 | "cell_type": "markdown",
792 | "metadata": {
793 | "id": "8qT9jd63Ic0X"
794 | },
795 | "source": [
796 | " - data compression:\n",
797 | " - exploitation of perception in critical bands with reference to the threshold in quiet is not enough\n",
798 | "\n",
799 | "\n",
800 | " - Basic principle:\n",
801 | " - a **test signal**, called a **maskee** is placed at the center frequency of the critical bandwidth.\n",
802 | " - one **masking signal**, called **masker** (equal power and distance from maskee).\n",
803 | " - If the $P_{maskee}$ is weak relative to the total power of the maskers $\\rightarrow$ the test signal is not audible $\\rightarrow$ test signal is masked\n",
804 | " - In order for the test signal to become audible, its power has to be raised to above a certain level – **masking threshold**.\n",
805 | " "
806 | ]
807 | },
808 | {
809 | "cell_type": "code",
810 | "execution_count": null,
811 | "metadata": {
812 | "hide_input": true,
813 | "id": "rgZDxq3QIc0X",
814 | "outputId": "1f026406-acc4-47e5-cf5e-e62d433633bd"
815 | },
816 | "outputs": [
817 | {
818 | "data": {
819 | "text/html": [
820 | "VIDEO \n"
821 | ],
822 | "text/plain": [
823 | ""
824 | ]
825 | },
826 | "metadata": {},
827 | "output_type": "display_data"
828 | }
829 | ],
830 | "source": [
831 | "%%html\n",
832 | "VIDEO "
833 | ]
834 | },
835 | {
836 | "cell_type": "markdown",
837 | "metadata": {
838 | "hide_input": false,
839 | "id": "Iq0qNMrgIc0X"
840 | },
841 | "source": [
842 | "### Masking of Pure Tones by Noise -Broad-Band Noise"
843 | ]
844 | },
845 | {
846 | "cell_type": "markdown",
847 | "metadata": {
848 | "hide_input": false,
849 | "id": "qOjDdpqdIc0X"
850 | },
851 | "source": [
852 | " - Broad-band noise:\n",
853 | " - white noise from 20 Hz 20 - 20kHz.\n",
854 | "\n",
855 | " \n",
856 | " \n",
857 | " \n",
858 | " Zwicker, Fastl \"Psychoacoustics - Facts and Models\", 2nd Edition, 1999. \n",
859 | " \n",
860 | " \n",
861 | "\n",
862 | "\n",
863 | " - masking threshold for pure tones masked by broad band noise of different levels.\n",
864 | " - uniform masking noise (UMN) by equalization of the 10 dB per decade slope.\n"
865 | ]
866 | },
867 | {
868 | "cell_type": "markdown",
869 | "metadata": {
870 | "id": "y7uzxBCfIc0X"
871 | },
872 | "source": [
873 | "### Masking of Pure Tones by Noise -Narrow-Band Noise"
874 | ]
875 | },
876 | {
877 | "cell_type": "code",
878 | "execution_count": null,
879 | "metadata": {
880 | "hide_input": true,
881 | "id": "lkyt4N_BIc0X",
882 | "outputId": "e6e89ec3-60f5-4f5a-9bbb-be9ebf82358b"
883 | },
884 | "outputs": [
885 | {
886 | "data": {
887 | "text/html": [
888 | "VIDEO \n"
889 | ],
890 | "text/plain": [
891 | ""
892 | ]
893 | },
894 | "metadata": {},
895 | "output_type": "display_data"
896 | }
897 | ],
898 | "source": [
899 | "%%html\n",
900 | "VIDEO "
901 | ]
902 | },
903 | {
904 | "cell_type": "markdown",
905 | "metadata": {
906 | "hide_input": false,
907 | "id": "7JeEJ2ajIc0X"
908 | },
909 | "source": [
910 | " - narrow-band noise:\n",
911 | " - noise with a bandwidth equal or smaller than critical bandwidth\n",
912 | " \n",
913 | " \n",
914 | " \n",
915 | " \n",
916 | " Zwicker, Fastl \"Psychoacoustics - Facts and Models\", 2nd Edition, 1999. \n",
917 | " \n",
918 | " \n",
919 | " \n",
920 | " \n",
921 | " - threshold of pure tones masked by narrow-band noise for different centre frequencies.\n",
922 | " - difference between maximum of masked threshold and test tone level.\n",
923 | "\n",
924 | " \n",
925 | " \n",
926 | " \n",
927 | " \n",
928 | " \n",
929 | "\n",
930 | " - dependence of masked threshold on level of narrow-band noise.\n",
931 | " - dips at higher levels $\\rightarrow$ nonlinear effects (difference noise caused by interactions between test tone and noise) "
932 | ]
933 | },
934 | {
935 | "cell_type": "markdown",
936 | "metadata": {
937 | "scrolled": true,
938 | "id": "3X-LvA9kIc0X"
939 | },
940 | "source": [
941 | "### Masking of Pure Tones by Low-Pass or High-Pass Noise"
942 | ]
943 | },
944 | {
945 | "cell_type": "code",
946 | "execution_count": null,
947 | "metadata": {
948 | "hide_input": true,
949 | "id": "fOxdmuObIc0X",
950 | "outputId": "3e3d89ca-7b98-44de-f0de-127964f00941"
951 | },
952 | "outputs": [
953 | {
954 | "data": {
955 | "text/html": [
956 | "VIDEO \n"
957 | ],
958 | "text/plain": [
959 | ""
960 | ]
961 | },
962 | "metadata": {},
963 | "output_type": "display_data"
964 | }
965 | ],
966 | "source": [
967 | "%%html\n",
968 | "VIDEO "
969 | ]
970 | },
971 | {
972 | "cell_type": "markdown",
973 | "metadata": {
974 | "scrolled": false,
975 | "id": "lki9wVQFIc0X"
976 | },
977 | "source": [
978 | "\n",
979 | " \n",
980 | " "
981 | ]
982 | },
983 | {
984 | "cell_type": "markdown",
985 | "metadata": {
986 | "id": "xsPMGHv7Ic0X"
987 | },
988 | "source": [
989 | "### Masking of Pure Tones by Pure Tone"
990 | ]
991 | },
992 | {
993 | "cell_type": "code",
994 | "execution_count": null,
995 | "metadata": {
996 | "hide_input": true,
997 | "id": "QPAMkou7Ic0X",
998 | "outputId": "ecd61adf-d01e-4ffa-9935-52f89e458b51"
999 | },
1000 | "outputs": [
1001 | {
1002 | "data": {
1003 | "text/html": [
1004 | "VIDEO \n"
1005 | ],
1006 | "text/plain": [
1007 | ""
1008 | ]
1009 | },
1010 | "metadata": {},
1011 | "output_type": "display_data"
1012 | }
1013 | ],
1014 | "source": [
1015 | "%%html\n",
1016 | "VIDEO "
1017 | ]
1018 | },
1019 | {
1020 | "cell_type": "markdown",
1021 | "metadata": {
1022 | "id": "_3ha4EGxIc0X"
1023 | },
1024 | "source": [
1025 | " - pure tone:\n",
1026 | " - single frequency\n",
1027 | " \n",
1028 | " \n",
1029 | " \n",
1030 | " \n",
1031 | " \n",
1032 | " \n",
1033 | "\n",
1034 | " - 1 kHz masking tone with level of 80 dB.\n",
1035 | " - threshold for 'detection of anything'\n",
1036 | "\n",
1037 | "\n",
1038 | " - Difficulties:\n",
1039 | " - beats (hatching)\n",
1040 | " - masker and difference tone (stippling)"
1041 | ]
1042 | },
1043 | {
1044 | "cell_type": "markdown",
1045 | "metadata": {
1046 | "id": "4J2eM7KCIc0X"
1047 | },
1048 | "source": [
1049 | "### Masking of Pure Tone by Complex Tones"
1050 | ]
1051 | },
1052 | {
1053 | "cell_type": "code",
1054 | "execution_count": null,
1055 | "metadata": {
1056 | "hide_input": true,
1057 | "id": "LgIalpVrIc0Y",
1058 | "outputId": "a151be3a-e337-412e-f28c-73ed064287fb"
1059 | },
1060 | "outputs": [
1061 | {
1062 | "data": {
1063 | "text/html": [
1064 | "VIDEO \n"
1065 | ],
1066 | "text/plain": [
1067 | ""
1068 | ]
1069 | },
1070 | "metadata": {},
1071 | "output_type": "display_data"
1072 | }
1073 | ],
1074 | "source": [
1075 | "%%html\n",
1076 | "VIDEO "
1077 | ]
1078 | },
1079 | {
1080 | "cell_type": "markdown",
1081 | "metadata": {
1082 | "id": "phAgTafgIc0Y"
1083 | },
1084 | "source": [
1085 | " - complex tone:\n",
1086 | " - fundamental tone with its harmonics\n",
1087 | " \n",
1088 | " \n",
1089 | " \n",
1090 | " \n",
1091 | " Zwicker, Fastl \"Psychoacoustics - Facts and Models\", 2nd Edition, 1999. \n",
1092 | " \n",
1093 | " \n",
1094 | "\n",
1095 | "\n",
1096 | " - threshold of pure tones masked by a complex tone with 200 Hz fundamental frequency and nine harmonics.\n"
1097 | ]
1098 | },
1099 | {
1100 | "cell_type": "markdown",
1101 | "metadata": {
1102 | "id": "nmnpfvyKIc0Y"
1103 | },
1104 | "source": [
1105 | "### Tonality"
1106 | ]
1107 | },
1108 | {
1109 | "cell_type": "code",
1110 | "execution_count": null,
1111 | "metadata": {
1112 | "hide_input": true,
1113 | "id": "Sg4cfq6XIc0Y",
1114 | "outputId": "c7ed3ee5-475e-4a0b-ec20-cfc39b06d794"
1115 | },
1116 | "outputs": [
1117 | {
1118 | "data": {
1119 | "text/html": [
1120 | "VIDEO \n"
1121 | ],
1122 | "text/plain": [
1123 | ""
1124 | ]
1125 | },
1126 | "metadata": {},
1127 | "output_type": "display_data"
1128 | }
1129 | ],
1130 | "source": [
1131 | "%%html\n",
1132 | "VIDEO "
1133 | ]
1134 | },
1135 | {
1136 | "cell_type": "markdown",
1137 | "metadata": {
1138 | "id": "kmoOb850Ic0Y"
1139 | },
1140 | "source": [
1141 | " - Tonality index $\\alpha$:\n",
1142 | " - noisy signal: $\\alpha =0$\n",
1143 | " - tonal signal: $\\alpha =1$\n",
1144 | " - System theory:\n",
1145 | " - Sharp spectral lines = Signal is periodic = Signal is predictable.\n",
1146 | " - Approximation: If the signal is predictable then it should be periodic.\n",
1147 | " - Therefore we can use prediction to approximate if a signal is tonal (by periodicity).\n",
1148 | " - Example:\n",
1149 | " \n",
1150 | " \n",
1151 | " \n",
1152 | " \n"
1153 | ]
1154 | },
1155 | {
1156 | "cell_type": "markdown",
1157 | "metadata": {
1158 | "id": "XNS-2zhVIc0Y"
1159 | },
1160 | "source": [
1161 | "### Masking - Spreading Function"
1162 | ]
1163 | },
1164 | {
1165 | "cell_type": "code",
1166 | "execution_count": null,
1167 | "metadata": {
1168 | "hide_input": true,
1169 | "id": "5HnVi5veIc0Y",
1170 | "outputId": "7585da84-96e4-40b6-d249-32606a86e4a0"
1171 | },
1172 | "outputs": [
1173 | {
1174 | "data": {
1175 | "text/html": [
1176 | "VIDEO \n"
1177 | ],
1178 | "text/plain": [
1179 | ""
1180 | ]
1181 | },
1182 | "metadata": {},
1183 | "output_type": "display_data"
1184 | }
1185 | ],
1186 | "source": [
1187 | "%%html\n",
1188 | "VIDEO "
1189 | ]
1190 | },
1191 | {
1192 | "cell_type": "markdown",
1193 | "metadata": {
1194 | "id": "NYMYDB2sIc0Y"
1195 | },
1196 | "source": [
1197 | " \n",
1198 | " \n",
1199 | " \n",
1200 | " \n",
1201 | " "
1202 | ]
1203 | },
1204 | {
1205 | "cell_type": "markdown",
1206 | "metadata": {
1207 | "id": "BEkiRlpPIc0Y"
1208 | },
1209 | "source": [
1210 | "### Calculating the Masking Threshold"
1211 | ]
1212 | },
1213 | {
1214 | "cell_type": "markdown",
1215 | "metadata": {
1216 | "id": "GUf7nnD5Ic0Y"
1217 | },
1218 | "source": [
1219 | " - Comparison of the signal level to Masking Threshold:\n",
1220 | "\n",
1221 | "$$\\large\n",
1222 | "\\dfrac{O_f(i)}{dB} = \\alpha (14.5+i) + (1+\\alpha)\\cdot \\alpha_v$$\n",
1223 | "\n",
1224 | "$$\\large\n",
1225 | "\\alpha_v = -2 - 2.05 \\arctan \\left( \\dfrac{f}{4kHz} \\right) - 0.75 \\arctan \\left( \\dfrac{f^2}{2.56 kHz^2} \\right)$$\n",
1226 | "\n",
1227 | "where $\\alpha \\dots$ Tonality index, $\\alpha_v \\dots$ Noise Coefficient\n",
1228 | "\n",
1229 | " - Approxitamtion:\n",
1230 | "\n",
1231 | "$$\\large\n",
1232 | "\\dfrac{O_f(i)}{dB} = \\alpha(14.5+i) + (1 - \\alpha)\\cdot 5.5 $$\n",
1233 | "\n",
1234 | " - Simultaneous Masking Threshold\n",
1235 | "\n",
1236 | " $$\\large\n",
1237 | " T(f) = 10^{\\frac{L_s(f)- O_f(i)}{10}}$$\n",
1238 | "\n",
1239 | " where $L_s(f) \\dots$ Sound Pressure Level, $O_f{i} \\dots$ Distance to Masking Threshold"
1240 | ]
1241 | },
1242 | {
1243 | "cell_type": "markdown",
1244 | "metadata": {
1245 | "id": "rOTB8x2iIc0Y"
1246 | },
1247 | "source": [
1248 | "### In-Band Making"
1249 | ]
1250 | },
1251 | {
1252 | "cell_type": "code",
1253 | "execution_count": null,
1254 | "metadata": {
1255 | "hide_input": true,
1256 | "id": "k8dtMTupIc0Y",
1257 | "outputId": "98201bbb-59a4-4a64-bfbb-522559a2d819"
1258 | },
1259 | "outputs": [
1260 | {
1261 | "data": {
1262 | "text/html": [
1263 | "VIDEO \n"
1264 | ],
1265 | "text/plain": [
1266 | ""
1267 | ]
1268 | },
1269 | "metadata": {},
1270 | "output_type": "display_data"
1271 | }
1272 | ],
1273 | "source": [
1274 | "%%html\n",
1275 | "VIDEO "
1276 | ]
1277 | },
1278 | {
1279 | "cell_type": "markdown",
1280 | "metadata": {
1281 | "id": "JtTQrarxIc0Z"
1282 | },
1283 | "source": [
1284 | " \n",
1285 | " \n",
1286 | " Zolzer, \"Digital Audio Signal Processig\" \n",
1287 | " \n",
1288 | "\n"
1289 | ]
1290 | },
1291 | {
1292 | "cell_type": "markdown",
1293 | "metadata": {
1294 | "id": "sPW8i47zIc0Z"
1295 | },
1296 | "source": [
1297 | "### Masking Neighboring Bands"
1298 | ]
1299 | },
1300 | {
1301 | "cell_type": "markdown",
1302 | "metadata": {
1303 | "id": "6V1qKtbKIc0Z"
1304 | },
1305 | "source": [
1306 | " - spread of masking due to the non-linearity of auditory filters\n",
1307 | " - resulting masking threshold = sum of power of neighbouring spreading functions-\n",
1308 | " - here: value at intersection of neighbouringspreading functions taken\n",
1309 | " \n",
1310 | " \n",
1311 | " \n",
1312 | " Zolzer, \"Digital Audio Signal Processig\" \n",
1313 | " \n",
1314 | " \n",
1315 | "\n",
1316 | "\n",
1317 | "$$\\large\n",
1318 | "S_1 = 27 \\cdot \\dfrac{dB}{Bark}$$\n",
1319 | "\n",
1320 | "$$\\large\n",
1321 | "S_2 = 24 + 0.23 \\left( \\dfrac{f}{kHz} \\right)^{-1} - 0.2 \\cdot \\dfrac{L_s(f)}{dB} \\dfrac{dB}{Bark}$$"
1322 | ]
1323 | },
1324 | {
1325 | "cell_type": "markdown",
1326 | "metadata": {
1327 | "id": "HLKDi0fmIc0Z"
1328 | },
1329 | "source": [
1330 | "### Temporal Masking Effects"
1331 | ]
1332 | },
1333 | {
1334 | "cell_type": "code",
1335 | "execution_count": null,
1336 | "metadata": {
1337 | "hide_input": true,
1338 | "id": "Nsf894d2Ic0Z",
1339 | "outputId": "eefb566e-78d9-4bf0-c487-deab6bac6a91"
1340 | },
1341 | "outputs": [
1342 | {
1343 | "data": {
1344 | "text/html": [
1345 | "VIDEO \n"
1346 | ],
1347 | "text/plain": [
1348 | ""
1349 | ]
1350 | },
1351 | "metadata": {},
1352 | "output_type": "display_data"
1353 | }
1354 | ],
1355 | "source": [
1356 | "%%html\n",
1357 | "VIDEO "
1358 | ]
1359 | },
1360 | {
1361 | "cell_type": "markdown",
1362 | "metadata": {
1363 | "id": "sTWvui3SIc0Z"
1364 | },
1365 | "source": [
1366 | " - Post-Masking: corresponds to decay in the effect of the masker $\\rightarrow$ expected\n",
1367 | " - Pre-Masking: appears during time before masker is switched on:\n",
1368 | " - Quick build-up time for loud maskers\n",
1369 | " - Slower build-up time for faint test sounds\n",
1370 | " - Frequency resolution $\\leftrightarrow$ Blurringing time\n",
1371 | " - Frequency resolution in the ear $\\rightarrow$ Masking in time\n",
1372 | " - Because of in-ear fast processing between quiet to loud signals, we get Pre-Echoes\n",
1373 | " - Pre-Masking: 1-5 ms\n",
1374 | " - Post-Masking: ~100ms\n",
1375 | " \n",
1376 | " \n",
1377 | " \n",
1378 | " Zwicker. Fastl \"Psychoacoustics Facts and Models\" \n",
1379 | " \n",
1380 | " "
1381 | ]
1382 | },
1383 | {
1384 | "cell_type": "code",
1385 | "execution_count": null,
1386 | "metadata": {
1387 | "id": "rxKc0xheIc0Z"
1388 | },
1389 | "outputs": [],
1390 | "source": []
1391 | }
1392 | ],
1393 | "metadata": {
1394 | "kernelspec": {
1395 | "display_name": "Python 3",
1396 | "language": "python",
1397 | "name": "python3"
1398 | },
1399 | "language_info": {
1400 | "codemirror_mode": {
1401 | "name": "ipython",
1402 | "version": 3
1403 | },
1404 | "file_extension": ".py",
1405 | "mimetype": "text/x-python",
1406 | "name": "python",
1407 | "nbconvert_exporter": "python",
1408 | "pygments_lexer": "ipython3",
1409 | "version": "3.7.8"
1410 | },
1411 | "livereveal": {
1412 | "rise": {
1413 | "height": "90%",
1414 | "width": "90%"
1415 | },
1416 | "scroll": true,
1417 | "theme": "beige",
1418 | "transition": "zoom"
1419 | },
1420 | "colab": {
1421 | "provenance": []
1422 | }
1423 | },
1424 | "nbformat": 4,
1425 | "nbformat_minor": 0
1426 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Audio Coding Video Tutorials and Python Notebooks
2 |
3 |
4 |
5 |
6 | #### Prof. Dr. -Ing. Gerald Schuller Jupyter Notebooks and Videos: Renato Profeta
7 | [Applied Media Systems Group](https://www.tu-ilmenau.de/en/applied-media-systems-group/)
8 | [Technische Universität Ilmenau](https://www.tu-ilmenau.de/)
9 |
10 | # Content
11 | ## 01 Basics of Multirate Signal Processing: [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_01_Basics_Multirate.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_01_Basics_Multirate.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_01_Basics_Multirate.ipynb)[](https://youtu.be/Tp96ICZ_pMg)
12 |
13 | - Sampling
14 | - Sampling a Discrete Time Signal
15 | - Downsampling
16 | - Upsampling
17 | - Real-Time Python Example: Sampling
18 | - Effects in the z-Domain
19 | - Modulation
20 | - Real-Time Python Example: Modulating a Speech Signal
21 | - Mid-rise and Mid-tread quantization
22 | - Real-Time Python Example: Quantization
23 |
24 | ## 02 Filter Banks I : [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_02_FilterBanks1.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_02_FilterBanks1.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_02_FilterBanks1.ipynb)[](https://youtu.be/Zk8Oum6LtUc)
25 |
26 | - Filter Banks
27 | - Downsampling
28 | - Upsampling
29 | - Filter Bank Structure
30 | - Perfect Reconstruction
31 | - Analysis Filter Bank
32 | - Synthesis Filter Bank
33 | - Polyphase
34 | - Transforms as Filter Banks
35 | - Real-Time Python Examples
36 |
37 | ## 03 Filter Banks II : [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_03_FilterBanks2.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_03_FilterBanks2.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_03_FilterBanks2.ipynb)[](https://youtu.be/f1ykTtvWkwM)
38 |
39 | - Modulated Filter Banks - Extending the DCT
40 | - Modulated Filter Banks
41 | - Frequency Shifts
42 | - The Window Function
43 | - Fast Implementation: Analysis Polyphase Matrix
44 | - The MDCT Filter Bank
45 | - Graphical Interpretation of Analysis Matrix 𝐹𝑎
46 | - MDCT, Perfect Reconstruction
47 | - MDCT Filter Banks, Sine Window
48 | - Sine-Window Frequency Response
49 | - MDCT, Advantages
50 | - MDCT Filter Banks, Impulse Responses
51 | - MDCT Filter Banks, Frequency Responses
52 | - MDCT: Python Examples
53 | - MDCT Fast Implementation
54 | - Extending the Length of the MDCT
55 | - Zero-Delay Matrix
56 | - Maximum-Delay Matrix
57 | - Design Method
58 | - Real-Time Example
59 |
60 | ## 03b Filter Banks III : [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_03b_FilterBanks3.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_03b_FilterBanks3.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_03b_FilterBanks3.ipynb)[](https://youtu.be/eLHqX6qZcX4)
61 |
62 | - Block Switching
63 | - Wavelets, QMF (Quadradutre Mirror Filter) Filter Banks
64 | - QMF (Quadrature Mirror Filter)
65 | - CQMF: Conjugate QMF
66 | - Pseudo-QMF (PQMF)
67 | - PQMF used in MPEG4
68 |
69 | ## 04 Psychoacoustics : [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_04_psychoAcoustics.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_04_psychoAcoustics.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_04_psychoAcoustics.ipynb)[](https://youtu.be/Dp9NhFShaPM)
70 |
71 | - Block Diagram of a Perceptual Audio Encoder
72 | - Structure of the Human Ear
73 | - Cochlea
74 | - Organ of Corti
75 | - Preprocessing of Sound in the Peripheral System
76 | - Information Processing in the Auditory System
77 | - Sound Perception
78 | - Frequency and Level Range of Human Hearing
79 | - Threshold in Quiet or the Absolute Threshold
80 | - Hearing Threshold and Age
81 | - Loudness
82 | - Critical Bands
83 | - Frequency Grouping in Human Hearing
84 | - Excursus - Critical Bands and Loudness
85 | - Bark Scale
86 | - Masking
87 | - Masking of Pure Tones by Noise -Broad-Band Noise
88 | - Masking of Pure Tones by Noise -Narrow-Band Noise
89 | - Masking of Pure Tones by Low-Pass or High-Pass Noise
90 | - Masking of Pure Tones by Pure Tone
91 | - Masking of Pure Tone by Complex Tones
92 | - Tonality
93 | - Masking - Spreading Function
94 | - Calculating the Masking Threshold
95 | - In-Band Making
96 | - Masking Neighboring Bands
97 | - Temporal Masking Effects
98 |
99 | ## 05 Psychoacoustics Models : [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_05_psychoAcousticsModels.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_05_psychoAcousticsModels.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_05_psychoAcousticsModels.ipynb)[](https://youtu.be/CulE7VNtf5Q)
100 |
101 | - Spreading Function: Python Example
102 | - Masking Neighboring Bands Non-Linear Superposition
103 | - Bark Scale Approximations:
104 | - Zwicker&Terhard
105 | - Traunmueller
106 | - Schröder
107 | - Bark Scale Approximations: Comparisons
108 | - Bark Scale Mapping
109 | - Mapping from Bark scale back to Linear
110 | - Hearing Threshold in Quiet
111 | - The Complete Psycho-Acoustic Model
112 | - Physical Models of Hearing
113 |
114 | ## 06 PQMF Filter Bank, MPEG-1 / MPEG-2 BC Audio : [](https://nbviewer.jupyter.org/github/GuitarsAI/AudioCodingTutorials/blob/master/AC_06_PQMF_FilterBank.ipynb)[](https://mybinder.org/v2/gh/GuitarsAI/AudioCodingTutorials/master?filepath=AC_06_PQMF_FilterBank.ipynb)[](https://colab.research.google.com/github/TUIlmenauAMS/AudioCoding_Tutorials/blob/master/AC_06_PQMF_FilterBank.ipynb)[](https://youtu.be/yiPMDqBT7qk)
115 |
116 | - The Basic Paradigm of T/F Domain Audio Coding
117 | - MPEG Audio Standardization Philosophy
118 | - MPEG 1/2
119 | - MPEG-1 Audio
120 | - The main building blocks
121 | - MPEG Audio - Short Description of the Layers
122 | - Block Diagram MPEG-1 Layer 1
123 | - Block diagram Layer-3
124 | - Example for the Time/Frequency Resolution for the 2-Stage Layer III Coder
125 | - MPEG - Layer-1, -2 and -3 Compression: Header
126 | - The Pseudo-Quadrature-Mirror Filter Bank (PQMF)
127 | - PQMF Definition
128 | - PQMF Reformulation
129 | - PQMF Design
130 | - Python Example Optimization
131 | - PQMF Optimization
132 | - Optimization Function
133 | - Python Example
134 | - Unity Condition
135 | - PQMF Polyphase Implementation
136 | - Hybrid Filter Bank & Aliasing
137 | - Problem of Aliasing in a Cascaded Filter Bank
138 | - Aliasing Reduction Structure (MP3)
139 | - MPEG Audio - Layer-3: Bitstream
140 | - MPEG-1 Audio Decoder
141 | - MPEG Audio – General Decoder Structure
142 | - MPEG - Audio Decoder Process (1) Layer-3 Decoder flow chart
143 | - MPEG - Audio Decoder Process Layer-3 Decoder Diagramm
144 | - Annex: Abbreviations and Companies
145 |
146 | # YouTube Playlist
147 | [](https://www.youtube.com/playlist?list=PL6QnpHKwdPYjRWkWLswWmxFrDmj6leRwh)
148 |
149 | # Requirements
150 | Please check the following files at the 'binder' folder:
151 | - environment.yml
152 | - postBuild
153 |
154 | # Note
155 | Examples requiring a microphone will not work on remote environments such as Binder and Google Colab.
156 |
--------------------------------------------------------------------------------
/audio/fantasy-orchestra.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/audio/fantasy-orchestra.wav
--------------------------------------------------------------------------------
/audio/test3.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/audio/test3.wav
--------------------------------------------------------------------------------
/binder/del.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/binder/environment.yml:
--------------------------------------------------------------------------------
1 | name: TU_Tutorials
2 | channels:
3 | - conda-forge
4 | - defaults
5 | dependencies:
6 | - python=
7 | - numpy
8 | - scipy
9 | - matplotlib
10 | - scikit-learn
11 | - sympy
12 | - bokeh
13 | - librosa
14 | - notebook
15 | - jupyter_nbextensions_configurator
16 | - jupyter_contrib_nbextensions
17 | - widgetsnbextension
18 | - rise
19 | - ipywidgets
20 | - pyaudio
21 | - plotly=3.10.0
22 | - nodejs
23 |
24 |
25 |
--------------------------------------------------------------------------------
/binder/postBuild:
--------------------------------------------------------------------------------
1 | jupyter contrib nbextension install --user
2 | jupyter nbextension enable --py widgetsnbextension
3 | jupyter nbextension enable python-markdown/main
4 | jupyter trust *.ipynb
5 | jupyter nbextension enable hide_input/main
6 |
--------------------------------------------------------------------------------
/fb2048t1023d512bbitcs.mat:
--------------------------------------------------------------------------------
1 | -6.9165606e-02 -7.0128792e-02 -7.1104122e-02 -7.2091428e-02 -7.3090544e-02 -7.4101301e-02 -7.5123531e-02 -7.6157067e-02 -7.7201740e-02 -7.8257385e-02 -7.9323840e-02 -8.0401145e-02 -8.1489539e-02 -8.2589266e-02 -8.3700560e-02 -8.4823335e-02 -8.5957187e-02 -8.7101701e-02 -8.8256473e-02 -8.9421444e-02 -9.0596894e-02 -9.1783118e-02 -9.2980396e-02 -9.4188625e-02 -9.5407323e-02 -9.6635988e-02 -9.7874140e-02 -9.9121695e-02 -1.0037897e-01 -1.0164630e-01 -1.0292401e-01 -1.0421215e-01 -1.0551050e-01 -1.0681884e-01 -1.0813695e-01 -1.0946488e-01 -1.1080299e-01 -1.1215161e-01 -1.1351108e-01 -1.1488154e-01 -1.1626286e-01 -1.1765494e-01 -1.1905768e-01 -1.2047116e-01 -1.2189568e-01 -1.2333154e-01 -1.2477902e-01 -1.2623818e-01 -1.2770882e-01 -1.2919076e-01 -1.3068380e-01 -1.3218793e-01 -1.3370336e-01 -1.3523027e-01 -1.3676888e-01 -1.3831957e-01 -1.3988291e-01 -1.4145948e-01 -1.4304979e-01 -1.4465271e-01 -1.4626543e-01 -1.4788511e-01 -1.4950920e-01 -1.5114266e-01 -1.5279793e-01 -1.5448777e-01 -1.5622467e-01 -1.5801472e-01 -1.5985765e-01 -1.6175289e-01 -1.6369988e-01 -1.6569810e-01 -1.6774712e-01 -1.6984650e-01 -1.7199578e-01 -1.7419447e-01 -1.7644199e-01 -1.7873779e-01 -1.8108129e-01 -1.8347197e-01 -1.8590934e-01 -1.8839290e-01 -1.9092217e-01 -1.9349662e-01 -1.9611570e-01 -1.9877886e-01 -2.0148553e-01 -2.0423519e-01 -2.0702730e-01 -2.0986134e-01 -2.1273678e-01 -2.1565308e-01 -2.1860967e-01 -2.2160600e-01 -2.2464151e-01 -2.2771564e-01 -2.3082786e-01 -2.3397760e-01 -2.3716433e-01 -2.4038748e-01 -2.4364647e-01 -2.4694072e-01 -2.5026964e-01 -2.5363267e-01 -2.5702924e-01 -2.6045880e-01 -2.6392079e-01 -2.6741463e-01 -2.7093971e-01 -2.7449545e-01 -2.7808123e-01 -2.8169648e-01 -2.8534060e-01 -2.8901303e-01 -2.9271319e-01 -2.9644047e-01 -3.0019430e-01 -3.0397406e-01 -3.0777916e-01 -3.1160900e-01 -3.1546298e-01 -3.1934048e-01 -3.2324091e-01 -3.2716366e-01 -3.3110812e-01 -3.3507370e-01 -3.3905979e-01 -3.4306578e-01 -3.4709106e-01 -3.5113500e-01 -3.5519698e-01 -3.5927639e-01 -3.6337262e-01 -3.6748508e-01 -3.7161315e-01 -3.7575622e-01 -3.7991367e-01 -3.8408487e-01 -3.8826921e-01 -3.9246606e-01 -3.9667479e-01 -4.0089479e-01 -4.0512543e-01 -4.0936611e-01 -4.1361620e-01 -4.1787510e-01 -4.2214220e-01 -4.2641687e-01 -4.3069848e-01 -4.3498640e-01 -4.3927998e-01 -4.4357861e-01 -4.4788169e-01 -4.5218864e-01 -4.5649884e-01 -4.6081170e-01 -4.6512657e-01 -4.6944282e-01 -4.7375981e-01 -4.7807694e-01 -4.8239360e-01 -4.8670921e-01 -4.9102318e-01 -4.9533491e-01 -4.9964379e-01 -5.0394924e-01 -5.0825066e-01 -5.1254744e-01 -5.1683900e-01 -5.2112475e-01 -5.2540409e-01 -5.2967643e-01 -5.3394119e-01 -5.3819776e-01 -5.4244556e-01 -5.4668401e-01 -5.5091258e-01 -5.5513069e-01 -5.5933781e-01 -5.6353337e-01 -5.6771681e-01 -5.7188755e-01 -5.7604504e-01 -5.8018873e-01 -5.8431811e-01 -5.8843265e-01 -5.9253183e-01 -5.9661514e-01 -6.0068204e-01 -6.0473202e-01 -6.0876454e-01 -6.1277911e-01 -6.1677529e-01 -6.2075262e-01 -6.2471066e-01 -6.2864890e-01 -6.3256683e-01 -6.3646392e-01 -6.4033965e-01 -6.4419355e-01 -6.4802522e-01 -6.5183425e-01 -6.5562024e-01 -6.5938278e-01 -6.6312143e-01 -6.6683576e-01 -6.7052534e-01 -6.7418978e-01 -6.7782870e-01 -6.8144173e-01 -6.8502852e-01 -6.8858869e-01 -6.9212191e-01 -6.9562781e-01 -6.9910605e-01 -7.0255629e-01 -7.0597819e-01 -7.0937143e-01 -7.1273566e-01 -7.1607059e-01 -7.1937592e-01 -7.2265137e-01 -7.2589663e-01 -7.2911150e-01 -7.3229579e-01 -7.3544934e-01 -7.3857198e-01 -7.4166345e-01 -7.4472336e-01 -7.4775135e-01 -7.5074706e-01 -7.5371027e-01 -7.5664096e-01 -7.5953909e-01 -7.6240461e-01 -7.6523742e-01 -7.6803732e-01 -7.7080410e-01 -7.7353757e-01 -7.7623762e-01 -7.7890425e-01 -7.8153746e-01 -7.8413722e-01 -7.8670349e-01 -7.8923614e-01 -7.9173506e-01 -7.9420012e-01 -7.9663131e-01 -7.9902866e-01 -8.0139226e-01 -8.0372215e-01 -8.0601840e-01 -8.0828107e-01 -8.1051023e-01 -8.1270593e-01 -8.1486824e-01 -8.1724319e-01 -8.1937905e-01 -8.2152127e-01 -8.2366927e-01 -8.2582249e-01 -8.2798034e-01 -8.3014227e-01 -8.3230769e-01 -8.3447603e-01 -8.3664674e-01 -8.3881922e-01 -8.4099287e-01 -8.4316703e-01 -8.4534105e-01 -8.4751429e-01 -8.4968616e-01 -8.5185617e-01 -8.5402384e-01 -8.5618867e-01 -8.5835008e-01 -8.6050746e-01 -8.6266014e-01 -8.6480751e-01 -8.6694899e-01 -8.6908411e-01 -8.7121239e-01 -8.7333336e-01 -8.7544656e-01 -8.7755162e-01 -8.7964812e-01 -8.8173567e-01 -8.8381374e-01 -8.8588169e-01 -8.8793887e-01 -8.8998463e-01 -8.9201856e-01 -8.9404046e-01 -8.9605015e-01 -8.9804744e-01 -9.0003198e-01 -9.0200330e-01 -9.0396089e-01 -9.0590426e-01 -9.0783300e-01 -9.0974674e-01 -9.1164514e-01 -9.1352784e-01 -9.1539454e-01 -9.1724497e-01 -9.1907887e-01 -9.2089598e-01 -9.2269600e-01 -9.2447866e-01 -9.2624363e-01 -9.2799064e-01 -9.2971940e-01 -9.3142970e-01 -9.3312130e-01 -9.3479396e-01 -9.3644751e-01 -9.3808179e-01 -9.3969665e-01 -9.4129196e-01 -9.4286751e-01 -9.4442306e-01 -9.4595838e-01 -9.4747322e-01 -9.4896742e-01 -9.5044089e-01 -9.5189354e-01 -9.5332530e-01 -9.5473608e-01 -9.5612580e-01 -9.5749437e-01 -9.5884173e-01 -9.6016779e-01 -9.6147247e-01 -9.6275568e-01 -9.6401735e-01 -9.6525744e-01 -9.6647596e-01 -9.6767294e-01 -9.6884839e-01 -9.7000230e-01 -9.7113461e-01 -9.7224528e-01 -9.7333427e-01 -9.7440162e-01 -9.7544742e-01 -9.7647179e-01 -9.7747485e-01 -9.7845662e-01 -9.7941708e-01 -9.8035619e-01 -9.8127393e-01 -9.8217037e-01 -9.8304573e-01 -9.8390022e-01 -9.8473404e-01 -9.8554731e-01 -9.8634009e-01 -9.8711242e-01 -9.8786435e-01 -9.8859600e-01 -9.8930759e-01 -9.8999933e-01 -9.9067143e-01 -9.9132406e-01 -9.9195736e-01 -9.9257145e-01 -9.9316647e-01 -9.9374261e-01 -9.9430011e-01 -9.9483923e-01 -9.9536021e-01 -9.9586326e-01 -9.9634855e-01 -9.9681625e-01 -9.9726653e-01 -9.9769962e-01 -9.9811581e-01 -9.9851539e-01 -9.9889865e-01 -9.9926585e-01 -9.9961720e-01 -9.9995293e-01 -1.0002732e+00 -1.0005784e+00 -1.0008688e+00 -1.0011446e+00 -1.0014061e+00 -1.0016537e+00 -1.0018876e+00 -1.0021080e+00 -1.0023153e+00 -1.0025096e+00 -1.0026913e+00 -1.0028608e+00 -1.0030183e+00 -1.0031641e+00 -1.0032986e+00 -1.0034219e+00 -1.0035344e+00 -1.0036363e+00 -1.0037279e+00 -1.0038096e+00 -1.0038817e+00 -1.0039445e+00 -1.0039983e+00 -1.0040433e+00 -1.0040798e+00 -1.0041082e+00 -1.0041287e+00 -1.0041416e+00 -1.0041472e+00 -1.0041460e+00 -1.0041380e+00 -1.0041235e+00 -1.0041029e+00 -1.0040764e+00 -1.0040444e+00 -1.0040070e+00 -1.0039646e+00 -1.0039175e+00 -1.0038660e+00 -1.0038101e+00 -1.0037503e+00 -1.0036867e+00 -1.0036196e+00 -1.0035493e+00 -1.0034760e+00 -1.0034000e+00 -1.0033216e+00 -1.0032408e+00 -1.0031579e+00 -1.0030732e+00 -1.0029868e+00 -1.0028990e+00 -1.0028101e+00 -1.0027202e+00 -1.0026295e+00 -1.0025382e+00 -1.0024463e+00 -1.0023541e+00 -1.0022618e+00 -1.0021695e+00 -1.0020776e+00 -1.0019861e+00 -1.0018953e+00 -1.0018051e+00 -1.0017157e+00 -1.0016275e+00 -1.0015408e+00 -1.0014560e+00 -1.0013736e+00 -1.0012938e+00 -1.0012165e+00 -1.0011415e+00 -1.0010687e+00 -1.0009980e+00 -1.0009296e+00 -1.0008635e+00 -1.0007997e+00 -1.0007382e+00 -1.0006790e+00 -1.0006220e+00 -1.0005673e+00 -1.0005147e+00 -1.0004644e+00 -1.0004162e+00 -1.0003703e+00 -1.0003266e+00 -1.0002851e+00 -1.0002456e+00 -1.0002083e+00 -1.0001730e+00 -1.0001397e+00 -1.0001084e+00 -1.0000793e+00 -1.0000521e+00 -1.0000268e+00 -1.0000034e+00 -9.9998182e-01 -9.9996193e-01 -9.9994379e-01 -9.9992740e-01 -9.9991276e-01 -9.9989982e-01 -9.9988850e-01 -9.9987870e-01 -9.9987033e-01 -9.9986334e-01 -9.9985773e-01 -9.9985347e-01 -9.9985055e-01 -9.9984893e-01 -9.9984852e-01 -9.9984924e-01 -9.9985099e-01 -9.9985374e-01 -9.9985746e-01 -9.9986213e-01 -9.9986772e-01 -9.9987420e-01 -9.9988145e-01 -9.9988940e-01 -9.9989796e-01 -9.9990705e-01 -9.9991664e-01 -9.9992669e-01 -9.9993717e-01 -9.9994804e-01 -9.9995926e-01 -9.9997080e-01 -9.9998261e-01 -9.9999466e-01 -9.9999047e-01 -9.9999683e-01 -1.0000025e+00 -1.0000075e+00 -1.0000115e+00 -1.0000147e+00 -1.0000168e+00 -1.0000178e+00 -1.0000177e+00 -1.0000162e+00 -1.0000133e+00 -1.0000089e+00 -1.0000029e+00 -9.9999502e-01 -9.9998526e-01 -9.9997344e-01 -9.9995950e-01 -9.9994335e-01 -9.9992491e-01 -9.9990406e-01 -9.9988064e-01 -9.9985450e-01 -9.9982546e-01 -9.9979342e-01 -9.9975828e-01 -9.9971995e-01 -9.9967836e-01 -9.9963336e-01 -9.9958476e-01 -9.9953239e-01 -9.9947606e-01 -9.9941562e-01 -9.9935099e-01 -9.9928209e-01 -9.9920881e-01 -9.9913101e-01 -9.9904851e-01 -9.9896110e-01 -9.9886860e-01 -9.9877083e-01 -9.9866770e-01 -9.9855909e-01 -9.9844489e-01 -9.9832495e-01 -9.9819907e-01 -9.9806707e-01 -9.9792877e-01 -9.9778400e-01 -9.9763264e-01 -9.9747457e-01 -9.9730966e-01 -9.9713776e-01 -9.9695865e-01 -9.9677214e-01 -9.9657802e-01 -9.9637613e-01 -9.9616635e-01 -9.9594854e-01 -9.9572258e-01 -9.9548829e-01 -9.9524546e-01 -9.9499387e-01 -9.9473330e-01 -9.9446358e-01 -9.9418458e-01 -9.9389617e-01 -9.9359823e-01 -9.9329057e-01 -9.9297298e-01 -9.9264521e-01 -9.9230704e-01 -9.9195830e-01 -9.9159885e-01 -9.9122857e-01 -9.9084731e-01 -9.9045491e-01 -9.9005113e-01 -9.8963574e-01 -9.8920851e-01 -9.8876926e-01 -9.8831784e-01 -9.8785410e-01 -9.8737791e-01 -9.8688907e-01 -9.8638736e-01 -9.8587257e-01 -9.8534446e-01 -9.8480285e-01 -9.8424760e-01 -9.8367856e-01 -9.8309559e-01 -9.8249850e-01 -9.8188707e-01 -9.8126105e-01 -9.8062022e-01 -9.7996441e-01 -9.7929347e-01 -9.7860729e-01 -9.7790573e-01 -9.7718860e-01 -9.7645569e-01 -9.7570676e-01 -9.7494157e-01 -9.7415996e-01 -9.7336179e-01 -9.7254694e-01 -9.7171528e-01 -9.7086664e-01 -9.7000080e-01 -9.6911754e-01 -9.6821664e-01 -9.6729793e-01 -9.6636129e-01 -9.6540661e-01 -9.6443377e-01 -9.6344262e-01 -9.6243294e-01 -9.6140453e-01 -9.6035717e-01 -9.5929072e-01 -9.5820506e-01 -9.5710010e-01 -9.5597572e-01 -9.5483178e-01 -9.5366809e-01 -9.5248446e-01 -9.5128071e-01 -9.5005669e-01 -9.4881231e-01 -9.4754748e-01 -9.4626211e-01 -9.4495605e-01 -9.4362916e-01 -9.4228125e-01 -9.4091216e-01 -9.3952178e-01 -9.3811003e-01 -9.3667687e-01 -9.3522221e-01 -9.3374596e-01 -9.3224795e-01 -9.3072803e-01 -9.2918605e-01 -9.2762191e-01 -9.2603555e-01 -9.2442693e-01 -9.2279601e-01 -9.2114269e-01 -9.1946688e-01 -9.1776845e-01 -9.1604728e-01 -9.1430331e-01 -9.1253653e-01 -9.1074692e-01 -9.0893447e-01 -9.0709910e-01 -9.0524070e-01 -9.0335916e-01 -9.0145435e-01 -8.9952625e-01 -8.9757493e-01 -8.9560043e-01 -8.9360284e-01 -8.9158210e-01 -8.8953810e-01 -8.8747072e-01 -8.8537981e-01 -8.8326536e-01 -8.8112745e-01 -8.7896615e-01 -8.7678153e-01 -8.7457362e-01 -8.7234238e-01 -8.7008775e-01 -8.6780971e-01 -8.6550825e-01 -8.6318347e-01 -8.6083544e-01 -8.5846424e-01 -8.5606991e-01 -8.5365245e-01 -8.5121187e-01 -8.4874817e-01 -8.4626140e-01 -8.4375164e-01 -8.4121901e-01 -8.3866359e-01 -8.3608546e-01 -8.3348471e-01 -8.3086139e-01 -8.2821559e-01 -8.2554737e-01 -8.2285678e-01 -8.2014386e-01 -8.1740866e-01 -8.1465129e-01 -8.1187190e-01 -8.0907063e-01 -8.0624764e-01 -8.0340306e-01 -8.0053703e-01 -7.9764969e-01 -7.9474115e-01 -7.9181155e-01 -7.8886098e-01 -7.8588954e-01 -7.8289732e-01 -7.7988448e-01 -7.7685119e-01 -7.7379764e-01 -7.7072400e-01 -7.6763045e-01 -7.6451713e-01 -7.6138419e-01 -7.5823180e-01 -7.5506007e-01 -7.5186912e-01 -7.4865904e-01 -7.4542996e-01 -7.4218207e-01 -7.3891568e-01 -7.3563111e-01 -7.3232866e-01 -7.2900853e-01 -7.2567081e-01 -7.2231559e-01 -7.1894297e-01 -7.1555313e-01 -7.1214634e-01 -7.0872290e-01 -7.0528308e-01 -7.0182712e-01 -6.9835523e-01 -6.9486761e-01 -6.9136447e-01 -6.8784598e-01 -6.8431234e-01 -6.8076371e-01 -6.7720027e-01 -6.7362226e-01 -6.7002993e-01 -6.6642358e-01 -6.6280346e-01 -6.5916981e-01 -6.5552286e-01 -6.5186279e-01 -6.4818983e-01 -6.4450420e-01 -6.4080618e-01 -6.3709604e-01 -6.3337405e-01 -6.2964048e-01 -6.2589560e-01 -6.2213968e-01 -6.1837300e-01 -6.1459582e-01 6.1080519e-01 6.0700691e-01 6.0319907e-01 5.9938188e-01 5.9555555e-01 5.9172033e-01 5.8787646e-01 5.8402422e-01 5.8016386e-01 5.7629567e-01 5.7241997e-01 5.6853700e-01 5.6464698e-01 5.6075010e-01 5.5684662e-01 5.5293682e-01 5.4902096e-01 5.4509935e-01 5.4117230e-01 5.3724010e-01 5.3330299e-01 5.2936121e-01 5.2541505e-01 5.2146482e-01 5.1751080e-01 5.1355332e-01 5.0959273e-01 5.0562928e-01 5.0166311e-01 4.9769444e-01 4.9372344e-01 4.8975042e-01 4.8577576e-01 4.8179989e-01 4.7782324e-01 4.7384613e-01 4.6986876e-01 4.6589134e-01 4.6191410e-01 4.5793730e-01 4.5396124e-01 4.4998625e-01 4.4601267e-01 4.4204080e-01 4.3807095e-01 4.3410340e-01 4.3013848e-01 4.2617650e-01 4.2221774e-01 4.1826252e-01 4.1431114e-01 4.1036395e-01 4.0642117e-01 4.0248311e-01 3.9855002e-01 3.9462228e-01 3.9070017e-01 3.8678404e-01 3.8287427e-01 3.7897115e-01 3.7507496e-01 3.7118595e-01 3.6730442e-01 3.6343070e-01 3.5956517e-01 3.5570817e-01 3.5186012e-01 3.4802133e-01 3.4419206e-01 3.4037251e-01 3.3656296e-01 3.3276372e-01 3.2897509e-01 3.2519750e-01 3.2143126e-01 3.1767672e-01 3.1393411e-01 3.1020373e-01 3.0648585e-01 3.0278077e-01 2.9908883e-01 2.9541034e-01 2.9174570e-01 2.8809518e-01 2.8445912e-01 2.8083774e-01 2.7723136e-01 2.7364031e-01 2.7006492e-01 2.6650549e-01 2.6296238e-01 2.5943594e-01 2.5592637e-01 2.5243396e-01 2.4895902e-01 2.4550180e-01 2.4206263e-01 2.3864174e-01 2.3523948e-01 2.3185617e-01 2.2849201e-01 2.2514733e-01 2.2182244e-01 2.1851761e-01 2.1523309e-01 2.1196916e-01 2.0872611e-01 2.0550423e-01 2.0230374e-01 1.9912491e-01 1.9596805e-01 1.9283339e-01 1.8972121e-01 1.8663174e-01 1.8356525e-01 1.8052198e-01 1.7750214e-01 1.7450599e-01 1.7153372e-01 1.6858561e-01 1.6566182e-01 1.6276261e-01 1.5988821e-01 1.5703881e-01 1.5421464e-01 1.5141579e-01 1.4864269e-01 1.4589513e-01 1.4317342e-01 1.4047804e-01 1.3780924e-01 1.3516681e-01 1.3255103e-01 1.2996215e-01 1.2739984e-01 1.2486482e-01 1.2235700e-01 1.1987634e-01 1.1742338e-01 1.1499827e-01 1.1260058e-01 1.1023089e-01 1.0788876e-01 1.0557464e-01 1.0328876e-01 1.0103106e-01 9.8801770e-02 9.6600944e-02 9.4428431e-02 9.2284445e-02 9.0168821e-02 8.8081205e-02 8.6022143e-02 8.3991858e-02 8.1990483e-02 8.0017267e-02 7.8073091e-02 7.6157640e-02 7.4270281e-02 7.2411268e-02 7.0580229e-02 6.8778183e-02 6.7004695e-02 6.5259636e-02 6.3542616e-02 6.1854455e-02 6.0193794e-02 5.8561235e-02 5.6956676e-02 5.5379942e-02 5.3831363e-02 5.2310565e-02 5.0816801e-02 4.9350977e-02 4.7912398e-02 4.6500416e-02 4.5115796e-02 4.3758107e-02 4.2426868e-02 4.1122484e-02 3.9844484e-02 3.8592350e-02 3.7366608e-02 3.6166506e-02 3.4991884e-02 3.3843335e-02 3.2719479e-02 3.1621110e-02 3.0546815e-02 2.9497427e-02 2.8472172e-02 2.7470167e-02 2.6492524e-02 2.5539354e-02 2.4609688e-02 2.3702740e-02 2.2818090e-02 2.1956010e-02 2.1116222e-02 2.0298948e-02 1.9502943e-02 1.8728200e-02 1.7974832e-02 1.7242612e-02 1.6530885e-02 1.5839862e-02 1.5167979e-02 1.4516448e-02 1.3883511e-02 1.3270597e-02 1.2675961e-02 1.2099840e-02 1.1541580e-02 1.1002162e-02 1.0479034e-02 9.9733525e-03 9.4849156e-03 9.0134165e-03 8.5570094e-03 8.1174666e-03 7.6939132e-03 7.2851388e-03 6.8908907e-03 6.5117244e-03 6.1466648e-03 5.7955570e-03 5.4582332e-03 5.1343265e-03 4.8233550e-03 4.5252095e-03 4.2394526e-03 3.9655967e-03 3.7034261e-03 3.4528184e-03 3.2133170e-03 2.9847819e-03 2.7667353e-03 2.5588908e-03 2.3610510e-03 2.1726406e-03 1.9935106e-03 1.8232610e-03 1.6619513e-03 1.5081735e-03 1.3637997e-03 1.2266359e-03 1.0969144e-03 9.7474027e-04 8.6087196e-04 7.5224408e-04 6.4952873e-04 5.5356815e-04 4.6108541e-04 3.7550668e-04 2.9317409e-04 2.1499051e-04 5.7139224e-06 2.3524135e-06 -1.5742557e-06 -5.9616524e-06 -1.0705343e-05 -1.5700896e-05 -2.0843877e-05 -2.6029854e-05 -3.1154393e-05 -3.6113061e-05 -4.0803374e-05 -4.5167646e-05 -4.9192990e-05 -5.2868466e-05 -5.6182115e-05 -5.9098458e-05 -6.1558502e-05 -6.3502233e-05 -6.4869994e-05 -6.5610383e-05 -6.5680258e-05 -6.5036832e-05 -6.3639670e-05 -6.1502369e-05 -5.8692561e-05 -5.5280227e-05 -5.1328533e-05 -4.6743887e-05 -4.1275940e-05 -3.4667528e-05 -2.6680152e-05 -1.7504606e-05 -7.7609750e-06 1.9119885e-06 1.0908962e-05 1.9393470e-05 2.8297887e-05 3.8588014e-05 5.1199358e-05 6.6370625e-05 8.3643720e-05 1.0253025e-04 1.2255522e-04 1.4355132e-04 1.6565900e-04 1.8903206e-04 2.1382235e-04 2.4013662e-04 2.6803651e-04 2.9758169e-04 3.2883078e-04 3.6181820e-04 3.9655412e-04 4.3304770e-04 4.7130901e-04 5.1136953e-04 5.5328221e-04 5.9710091e-04 6.4288052e-04 6.9069968e-04 7.4066077e-04 7.9286719e-04 8.4742005e-04 9.0436785e-04 9.6370641e-04 1.0254293e-03 1.0895313e-03 1.1560383e-03 1.2250066e-03 1.2964941e-03 1.3705597e-03 1.4472839e-03 1.5267690e-03 1.6091185e-03 1.6944336e-03 1.7827675e-03 1.8741250e-03 1.9685091e-03 2.0659252e-03 2.1664386e-03 2.2701739e-03 2.3772584e-03 2.4878170e-03 2.6019129e-03 2.7195482e-03 2.8407226e-03 2.9654387e-03 3.0937752e-03 3.2258868e-03 3.3619314e-03 3.5020632e-03 3.6463484e-03 3.7947652e-03 3.9472879e-03 4.1038949e-03 4.2646552e-03 4.4297279e-03 4.5992763e-03 4.7734606e-03 4.9523658e-03 5.1360023e-03 5.3243771e-03 5.5175001e-03 5.7154446e-03 5.9183472e-03 6.1263474e-03 6.3395823e-03 6.5581341e-03 6.7820305e-03 7.0112967e-03 7.2459601e-03 7.4860963e-03 7.7318298e-03 7.9832868e-03 8.2405916e-03 8.5038203e-03 8.7730004e-03 9.0481576e-03 9.3293198e-03 9.6165689e-03 9.9100410e-03 1.0209874e-02 1.0516205e-02 1.0829113e-02 1.1148620e-02 1.1474747e-02 1.1807516e-02 1.2147005e-02 1.2493346e-02 1.2846672e-02 1.3207115e-02 1.3574750e-02 1.3949599e-02 1.4331677e-02 1.4721005e-02 1.5117659e-02 1.5521769e-02 1.5933467e-02 1.6352886e-02 1.6780104e-02 1.7215150e-02 1.7658050e-02 1.8108831e-02 1.8567567e-02 1.9034371e-02 1.9509362e-02 1.9992656e-02 2.0484326e-02 2.0984401e-02 2.1492909e-02 2.2009881e-02 2.2535387e-02 2.3069538e-02 2.3612448e-02 2.4164227e-02 2.4724948e-02 2.5294647e-02 2.5873358e-02 2.6461115e-02 2.7057984e-02 2.7664067e-02 2.8279463e-02 2.8904272e-02 2.9538560e-02 3.0182359e-02 3.0835702e-02 3.1498619e-02 3.2171182e-02 3.2853497e-02 3.3545670e-02 3.4247808e-02 3.4959978e-02 3.5682206e-02 3.6414518e-02 3.7156940e-02 3.7909538e-02 3.8672412e-02 3.9445665e-02 4.0229399e-02 4.1023679e-02 4.1828531e-02 4.2643982e-02 4.3470058e-02 4.4306815e-02 4.5154337e-02 4.6012706e-02 4.6882009e-02 4.7762315e-02 4.8653683e-02 4.9556168e-02 5.0469829e-02 5.1394721e-02 5.2330903e-02 5.3278430e-02 5.4237360e-02 5.5207750e-02 5.6189658e-02 5.7183142e-02 5.8188262e-02 5.9205083e-02 6.0233682e-02 6.1274133e-02 6.2326511e-02 6.3390867e-02 6.4467226e-02 6.5555616e-02 6.6656061e-02 6.7768624e-02 6.8893399e-02 7.0030485e-02 7.1179975e-02 7.2341927e-02 7.3516357e-02 7.4703282e-02 7.5902719e-02 7.7114721e-02 7.8339373e-02 7.9576766e-02 8.0826987e-02 8.2090091e-02 8.3366103e-02 8.4655049e-02 8.5956952e-02 8.7271856e-02 8.8599823e-02 8.9940916e-02 9.1295197e-02 9.2662717e-02 9.4043513e-02 9.5437624e-02 9.6845085e-02 9.8265941e-02 9.9700237e-02 1.0114802e-01 1.0260935e-01 1.0408424e-01 1.0557274e-01 1.0707485e-01 1.0859062e-01 1.1012008e-01 1.1166328e-01 1.1322028e-01 1.1479113e-01 1.1637586e-01 1.1797446e-01 1.1958693e-01 1.2121326e-01 1.2285349e-01 1.2450766e-01 1.2617582e-01 1.2785804e-01 1.2955436e-01 1.3126483e-01 1.3298952e-01 1.3472847e-01 1.3648174e-01 1.3494054e-04 3.6652048e-05 -2.8390545e-05 -6.0587020e-05 -6.0337157e-05 -2.8040737e-05 3.5902459e-05 1.3109265e-04 2.5713006e-04 4.1361489e-04 6.0014739e-04 8.1632775e-04 1.0617562e-03 1.3360330e-03 1.6387584e-03 1.9695325e-03 2.3279556e-03 2.7136278e-03 3.1261495e-03 3.5651209e-03 4.0301421e-03 4.5208133e-03 5.0367349e-03 5.5775070e-03 6.1427298e-03 6.7320036e-03 7.3449286e-03 7.9811050e-03 8.6401330e-03 9.3216128e-03 1.0025145e-02 1.0750329e-02 1.1496766e-02 1.2264055e-02 1.3051798e-02 1.3859593e-02 1.4687042e-02 1.5533745e-02 1.6399301e-02 1.7283311e-02 1.8185376e-02 1.9105095e-02 2.0042069e-02 2.0995898e-02 2.1966182e-02 2.2952521e-02 2.3954516e-02 2.4971767e-02 2.6003874e-02 2.7050436e-02 2.8111056e-02 2.9185332e-02 3.0272865e-02 3.1373255e-02 3.2486103e-02 3.3611008e-02 3.4747571e-02 3.5895393e-02 3.7054072e-02 3.8223210e-02 3.9402406e-02 4.0591261e-02 4.1789376e-02 4.2996349e-02 4.4211782e-02 4.5435275e-02 4.6666428e-02 4.7904841e-02 4.9150115e-02 5.0401850e-02 5.1659645e-02 5.2923102e-02 5.4191819e-02 5.5465398e-02 5.6743439e-02 5.8025542e-02 5.9311307e-02 6.0600335e-02 6.1892225e-02 6.3186578e-02 6.4482994e-02 6.5781073e-02 6.7080416e-02 6.8380623e-02 6.9681294e-02 7.0982029e-02 7.2282429e-02 7.3582093e-02 7.4880622e-02 7.6177616e-02 7.7472675e-02 7.8765399e-02 8.0055390e-02 8.1342246e-02 8.2625568e-02 8.3904957e-02 8.5180013e-02 8.6450335e-02 8.7715524e-02 8.8975181e-02 9.0228905e-02 9.1476297e-02 9.2716956e-02 9.3950484e-02 9.5176480e-02 9.6394545e-02 9.7604280e-02 9.8805284e-02 9.9997157e-02 1.0117950e-01 1.0235191e-01 1.0351399e-01 1.0466534e-01 1.0580556e-01 1.0693425e-01 1.0805101e-01 1.0915545e-01 1.1024716e-01 1.1132573e-01 1.1239078e-01 1.1344190e-01 1.1447869e-01 1.1550076e-01 1.1650769e-01 1.1749910e-01 1.1847459e-01 1.1943374e-01 1.2037617e-01 1.2130148e-01 1.2220926e-01 1.2309911e-01 1.2397064e-01 1.2482344e-01 1.2565711e-01 1.2647126e-01 1.2726548e-01 1.2803938e-01 1.2879256e-01 1.2952461e-01 1.3023514e-01 1.3092374e-01 1.3159003e-01 1.3223358e-01 1.3285402e-01 1.3345093e-01 1.3402392e-01 1.3457259e-01 1.3509653e-01 1.3559535e-01 1.3606866e-01 1.3651603e-01 1.3693709e-01 1.3733143e-01 1.3769865e-01 1.3803834e-01 1.3835012e-01 1.3863357e-01 1.3888831e-01 1.3911392e-01 1.3931002e-01 1.3947620e-01 1.3961206e-01 1.3971720e-01 1.3979122e-01 1.3983372e-01 1.3984430e-01 1.3982257e-01 1.3976811e-01 1.3968054e-01 1.3955946e-01 1.3940445e-01 1.3921514e-01 1.3899110e-01 1.3873195e-01 1.3843728e-01 1.3810669e-01 1.3773979e-01 1.3733617e-01 1.3689544e-01 1.3641719e-01 1.3590103e-01 1.3534655e-01 1.3475336e-01 1.3412105e-01 1.3344923e-01 1.3273750e-01 1.3198545e-01 1.3119269e-01 1.3035882e-01 1.2948344e-01 1.2856641e-01 1.2761399e-01 1.2663874e-01 1.2565354e-01 1.2467091e-01 1.2369590e-01 1.2272601e-01 1.2175845e-01 1.2079049e-01 1.1982103e-01 1.1885067e-01 1.1788004e-01 1.1690979e-01 1.1594036e-01 1.1497201e-01 1.1400498e-01 1.1303952e-01 1.1207566e-01 1.1111328e-01 1.1015220e-01 1.0919230e-01 1.0823368e-01 1.0727670e-01 1.0632177e-01 1.0536923e-01 1.0441924e-01 1.0347167e-01 1.0252641e-01 1.0158337e-01 1.0064272e-01 9.9704907e-02 9.8770406e-02 9.7839666e-02 9.6912790e-02 9.5989528e-02 9.5069615e-02 9.4152801e-02 9.3239173e-02 9.2329155e-02 9.1423186e-02 9.0521683e-02 8.9624612e-02 8.8731482e-02 8.7841782e-02 8.6955021e-02 8.6071124e-02 8.5190437e-02 8.4313322e-02 8.3440125e-02 8.2570820e-02 8.1705008e-02 8.0842272e-02 7.9982210e-02 7.9124768e-02 7.8270231e-02 7.7418903e-02 7.6571075e-02 7.5726811e-02 7.4885944e-02 7.4048298e-02 7.3213695e-02 7.2381961e-02 7.1552918e-02 7.0726389e-02 6.9902199e-02 6.9080171e-02
2 |
--------------------------------------------------------------------------------
/images/Lecture6-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/Lecture6-10.png
--------------------------------------------------------------------------------
/images/Lecture6-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/Lecture6-6.png
--------------------------------------------------------------------------------
/images/Lecture6-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/Lecture6-7.png
--------------------------------------------------------------------------------
/images/Lecture6-8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/Lecture6-8.png
--------------------------------------------------------------------------------
/images/Lecture6-9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/Lecture6-9.png
--------------------------------------------------------------------------------
/images/ac_01_modulation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_01_modulation.png
--------------------------------------------------------------------------------
/images/ac_02_audioCoders.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_02_audioCoders.png
--------------------------------------------------------------------------------
/images/ac_03_critc1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_03_critc1.png
--------------------------------------------------------------------------------
/images/ac_04_01_psycho1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_01_psycho1.png
--------------------------------------------------------------------------------
/images/ac_04_02_structureEar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_02_structureEar.png
--------------------------------------------------------------------------------
/images/ac_04_03_cochlea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_03_cochlea.png
--------------------------------------------------------------------------------
/images/ac_04_04_cochlea2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_04_cochlea2.png
--------------------------------------------------------------------------------
/images/ac_04_05_corti.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_05_corti.png
--------------------------------------------------------------------------------
/images/ac_04_06_preprocessing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_06_preprocessing.png
--------------------------------------------------------------------------------
/images/ac_04_07_preprocessing2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_07_preprocessing2.png
--------------------------------------------------------------------------------
/images/ac_04_08_basilarMembrane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_08_basilarMembrane.png
--------------------------------------------------------------------------------
/images/ac_04_09_frequency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_09_frequency.png
--------------------------------------------------------------------------------
/images/ac_04_10_threshold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_10_threshold.png
--------------------------------------------------------------------------------
/images/ac_04_11_threshold2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_11_threshold2.png
--------------------------------------------------------------------------------
/images/ac_04_12_threshold_age.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_12_threshold_age.png
--------------------------------------------------------------------------------
/images/ac_04_13_threshold_age2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_13_threshold_age2.png
--------------------------------------------------------------------------------
/images/ac_04_14_loudness.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_14_loudness.png
--------------------------------------------------------------------------------
/images/ac_04_15_loudness_scale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_15_loudness_scale.png
--------------------------------------------------------------------------------
/images/ac_04_16_groupin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_16_groupin.jpg
--------------------------------------------------------------------------------
/images/ac_04_16_groupin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_16_groupin.png
--------------------------------------------------------------------------------
/images/ac_04_17_bandwidth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_17_bandwidth.png
--------------------------------------------------------------------------------
/images/ac_04_18_bark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_18_bark.png
--------------------------------------------------------------------------------
/images/ac_04_19_broadnoise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_19_broadnoise.png
--------------------------------------------------------------------------------
/images/ac_04_20_narrownoise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_20_narrownoise.png
--------------------------------------------------------------------------------
/images/ac_04_21_narrownoise2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_21_narrownoise2.png
--------------------------------------------------------------------------------
/images/ac_04_22_LpHpnoise2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_22_LpHpnoise2.png
--------------------------------------------------------------------------------
/images/ac_04_23_pureTone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_23_pureTone.png
--------------------------------------------------------------------------------
/images/ac_04_24_complexTone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_24_complexTone.png
--------------------------------------------------------------------------------
/images/ac_04_25_inBand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_25_inBand.png
--------------------------------------------------------------------------------
/images/ac_04_25_tonality.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_25_tonality.png
--------------------------------------------------------------------------------
/images/ac_04_26_spreadingF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_26_spreadingF.png
--------------------------------------------------------------------------------
/images/ac_04_27_maskingBands.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_27_maskingBands.png
--------------------------------------------------------------------------------
/images/ac_04_28_temporal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_28_temporal.png
--------------------------------------------------------------------------------
/images/ac_04_critc2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_04_critc2.png
--------------------------------------------------------------------------------
/images/ac_05_01_ltq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_05_01_ltq.png
--------------------------------------------------------------------------------
/images/ac_05_02_pemo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_05_02_pemo.png
--------------------------------------------------------------------------------
/images/ac_05_downsamplint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_05_downsamplint.png
--------------------------------------------------------------------------------
/images/ac_06_01_blockdiagramAC.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_01_blockdiagramAC.jpg
--------------------------------------------------------------------------------
/images/ac_06_02_mpeg1BlockDiag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_02_mpeg1BlockDiag.jpg
--------------------------------------------------------------------------------
/images/ac_06_02_mpeg3BlockDiag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_02_mpeg3BlockDiag.jpg
--------------------------------------------------------------------------------
/images/ac_06_04_mpegHeader.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_04_mpegHeader.jpg
--------------------------------------------------------------------------------
/images/ac_06_05_FaMetraix.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_05_FaMetraix.jpg
--------------------------------------------------------------------------------
/images/ac_06_06_FsMetraix.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_06_FsMetraix.jpg
--------------------------------------------------------------------------------
/images/ac_06_07_hybrid1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_07_hybrid1.jpg
--------------------------------------------------------------------------------
/images/ac_06_08_hybrid2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_08_hybrid2.jpg
--------------------------------------------------------------------------------
/images/ac_06_09_hybrid3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_09_hybrid3.jpg
--------------------------------------------------------------------------------
/images/ac_06_10_hybrid4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_10_hybrid4.jpg
--------------------------------------------------------------------------------
/images/ac_06_11_hybrid5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_11_hybrid5.jpg
--------------------------------------------------------------------------------
/images/ac_06_12_hybrid6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_12_hybrid6.jpg
--------------------------------------------------------------------------------
/images/ac_06_13_bitstream.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_13_bitstream.jpg
--------------------------------------------------------------------------------
/images/ac_06_14_decoder.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_14_decoder.jpg
--------------------------------------------------------------------------------
/images/ac_06_15_flowchart.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_15_flowchart.jpg
--------------------------------------------------------------------------------
/images/ac_06_16_layer3Diag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_16_layer3Diag.jpg
--------------------------------------------------------------------------------
/images/ac_06_upsampling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_06_upsampling.png
--------------------------------------------------------------------------------
/images/ac_07_analysis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_07_analysis.png
--------------------------------------------------------------------------------
/images/ac_08_synthesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_08_synthesis.png
--------------------------------------------------------------------------------
/images/ac_09_fb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_09_fb.png
--------------------------------------------------------------------------------
/images/ac_10_bandpass_ny.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_10_bandpass_ny.png
--------------------------------------------------------------------------------
/images/ac_11_bandpass_ny2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_11_bandpass_ny2.png
--------------------------------------------------------------------------------
/images/ac_12_noble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_12_noble.png
--------------------------------------------------------------------------------
/images/ac_13_noble2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_13_noble2.png
--------------------------------------------------------------------------------
/images/ac_14_poly1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_14_poly1.png
--------------------------------------------------------------------------------
/images/ac_15_poly2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_15_poly2.png
--------------------------------------------------------------------------------
/images/ac_16_poly3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_16_poly3.png
--------------------------------------------------------------------------------
/images/ac_17_polyA1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_17_polyA1.png
--------------------------------------------------------------------------------
/images/ac_18_polyS1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_18_polyS1.png
--------------------------------------------------------------------------------
/images/ac_19_polyS2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_19_polyS2.png
--------------------------------------------------------------------------------
/images/ac_20_synth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_20_synth.png
--------------------------------------------------------------------------------
/images/ac_21_synth2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_21_synth2.png
--------------------------------------------------------------------------------
/images/ac_22_synth3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_22_synth3.png
--------------------------------------------------------------------------------
/images/ac_23_exH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_23_exH.png
--------------------------------------------------------------------------------
/images/ac_24_dft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_24_dft.png
--------------------------------------------------------------------------------
/images/ac_25_dftMatrix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_25_dftMatrix.png
--------------------------------------------------------------------------------
/images/ac_26_dct4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_26_dct4.png
--------------------------------------------------------------------------------
/images/ac_27_dct4_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_27_dct4_1.png
--------------------------------------------------------------------------------
/images/ac_28_freq_shift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_28_freq_shift.png
--------------------------------------------------------------------------------
/images/ac_29_freq_shift2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_29_freq_shift2.png
--------------------------------------------------------------------------------
/images/ac_30_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_30_window.png
--------------------------------------------------------------------------------
/images/ac_31_windowRect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_31_windowRect.png
--------------------------------------------------------------------------------
/images/ac_32_polyphaseAnalysis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_32_polyphaseAnalysis.png
--------------------------------------------------------------------------------
/images/ac_33_polyphaseAnalysis2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_33_polyphaseAnalysis2.png
--------------------------------------------------------------------------------
/images/ac_34_mdct_inv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_34_mdct_inv.png
--------------------------------------------------------------------------------
/images/ac_35_mdct_synth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_35_mdct_synth.png
--------------------------------------------------------------------------------
/images/ac_36_faMatA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_36_faMatA.png
--------------------------------------------------------------------------------
/images/ac_37_faMatA1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_37_faMatA1.png
--------------------------------------------------------------------------------
/images/ac_38_mdct_PR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_38_mdct_PR.png
--------------------------------------------------------------------------------
/images/ac_39_sinWindow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_39_sinWindow.png
--------------------------------------------------------------------------------
/images/ac_40_sineWindowFR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_40_sineWindowFR.png
--------------------------------------------------------------------------------
/images/ac_41_sineWinIR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_41_sineWinIR.png
--------------------------------------------------------------------------------
/images/ac_42_sineWinFR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_42_sineWinFR.png
--------------------------------------------------------------------------------
/images/ac_43_delayMat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_43_delayMat.png
--------------------------------------------------------------------------------
/images/ac_44_delayMat2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_44_delayMat2.png
--------------------------------------------------------------------------------
/images/ac_45_ldfbEx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_45_ldfbEx.png
--------------------------------------------------------------------------------
/images/ac_46_blockSwit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_46_blockSwit.png
--------------------------------------------------------------------------------
/images/ac_47_blockSwit2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_47_blockSwit2.png
--------------------------------------------------------------------------------
/images/ac_48_blockSwit3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_48_blockSwit3.png
--------------------------------------------------------------------------------
/images/ac_49_blockSwit4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_49_blockSwit4.png
--------------------------------------------------------------------------------
/images/ac_50_blockSwit5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_50_blockSwit5.png
--------------------------------------------------------------------------------
/images/ac_51_qmf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_51_qmf.png
--------------------------------------------------------------------------------
/images/ac_52_qmf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_52_qmf2.png
--------------------------------------------------------------------------------
/images/ac_53_qmf3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_53_qmf3.png
--------------------------------------------------------------------------------
/images/ac_54_qmf4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_54_qmf4.png
--------------------------------------------------------------------------------
/images/ac_55_pqmf1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_55_pqmf1.png
--------------------------------------------------------------------------------
/images/ac_56_pqmf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_56_pqmf2.png
--------------------------------------------------------------------------------
/images/ac_header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/ac_header.png
--------------------------------------------------------------------------------
/images/rise_tread_quantizers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TUIlmenauAMS/AudioCoding_Tutorials/bfbd8771984de576a4175221c8b459313db13c2f/images/rise_tread_quantizers.png
--------------------------------------------------------------------------------
/seminars/README.md:
--------------------------------------------------------------------------------
1 | # Audio Coding Seminars
2 |
3 | - Seminar 01: Introduction
4 |
5 |
6 |
--------------------------------------------------------------------------------
/seminars/all_ws22_seminars_intro.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "source": [
6 | "# AMS TUI Seminars Introduction"
7 | ],
8 | "metadata": {
9 | "id": "zrxOpr_oxb-t"
10 | }
11 | },
12 | {
13 | "cell_type": "markdown",
14 | "metadata": {
15 | "id": "ROoAWqqQ48zR"
16 | },
17 | "source": [
18 | "# General Information"
19 | ]
20 | },
21 | {
22 | "cell_type": "markdown",
23 | "metadata": {
24 | "id": "YY5XD3Vs48zS"
25 | },
26 | "source": [
27 | " - Instructors: Dr. Muhammad Imran -\n",
28 | "muhammad.imran@tu-ilmenau.de Renato Profeta - renato.profeta@tu-ilmenau.de\n",
29 | " - Seminars will be either in presence, or online. Some seminars will ONLY be online.\n",
30 | " - We will discuss the format of the seminars (presence/online) to see what suits us best.\n",
31 | " - For the online seminars we will use `Jitsi` and the link to the jitsi room is available at the course page in Moodle.\n",
32 | " - Each seminar has to be done from one seminar to the next.\n",
33 | " - Check the course page constantly for changes in dates, format, materials updates, etc.\n"
34 | ]
35 | },
36 | {
37 | "cell_type": "markdown",
38 | "metadata": {
39 | "id": "Nj-f-Ffi48zT"
40 | },
41 | "source": [
42 | "## Registration"
43 | ]
44 | },
45 | {
46 | "cell_type": "markdown",
47 | "metadata": {
48 | "hide_input": true,
49 | "id": "cEInhtMW48zT"
50 | },
51 | "source": [
52 | "To register for the seminars you MUST fill the form below. Only this way we can create your account in our `nbgrader` system with the correct information."
53 | ]
54 | },
55 | {
56 | "cell_type": "code",
57 | "execution_count": null,
58 | "metadata": {
59 | "cellView": "form",
60 | "hide_input": true,
61 | "id": "oZnZaUpo48zT",
62 | "outputId": "6b7598cd-ac5b-4a81-c744-1d0574efbdee",
63 | "scrolled": false,
64 | "colab": {
65 | "base_uri": "https://localhost:8080/",
66 | "height": 1000
67 | }
68 | },
69 | "outputs": [
70 | {
71 | "output_type": "display_data",
72 | "data": {
73 | "text/plain": [
74 | ""
75 | ],
76 | "text/html": [
77 | "Registration Form \n",
78 | "\n"
79 | ]
80 | },
81 | "metadata": {}
82 | }
83 | ],
84 | "source": [
85 | "#@title\n",
86 | "%%html\n",
87 | "Registration Form \n",
88 | ""
89 | ]
90 | },
91 | {
92 | "cell_type": "markdown",
93 | "metadata": {
94 | "id": "Za6AE48g48zV"
95 | },
96 | "source": [
97 | "Only after submitting your response, we will be able to register you in our system and share the exchange folder in Nextcloud that is used to fetch and submit assignments."
98 | ]
99 | },
100 | {
101 | "cell_type": "markdown",
102 | "metadata": {
103 | "id": "dezNC0hF48zX"
104 | },
105 | "source": [
106 | "# Requirements"
107 | ]
108 | },
109 | {
110 | "cell_type": "markdown",
111 | "metadata": {
112 | "id": "OTD99nz148zY"
113 | },
114 | "source": [
115 | " - For these seminars you MUST use LINUX. It's not possible to submit the assignments using a different operating system.\n",
116 | " - At the Applied Media Systems Group we use Ubuntu. If you want to use a different Linux flavor you are on your own. If you use Ubuntu we can try to help you in case you have problems.\n",
117 | " - The assignments are to be solved using `Python` and `Jupyter Notebooks`.\n",
118 | " - The assignments are retrived and submitted using `nbgrader` and `NextCloud`."
119 | ]
120 | },
121 | {
122 | "cell_type": "markdown",
123 | "metadata": {
124 | "id": "LuvHxXhWgQUi"
125 | },
126 | "source": [
127 | "## Jitsi"
128 | ]
129 | },
130 | {
131 | "cell_type": "markdown",
132 | "metadata": {
133 | "id": "BJc2FaG4gQUi"
134 | },
135 | "source": [
136 | "- `Jitsi`is a collection of free and open-source multiplatform voice, video conferencing and instant messaging applications for the web platform, Windows, Linux, macOS, iOS and Android.\n",
137 | "- You find the link to our Jitsi channel at the course Moodle's page."
138 | ]
139 | },
140 | {
141 | "cell_type": "markdown",
142 | "metadata": {
143 | "id": "DVEi2WpV48zY"
144 | },
145 | "source": [
146 | "## Linux"
147 | ]
148 | },
149 | {
150 | "cell_type": "markdown",
151 | "metadata": {
152 | "id": "-fa_qqI948zY"
153 | },
154 | "source": [
155 | "There are basically 3 options how you can use Linux:\n",
156 | " - Main operating system.\n",
157 | " - Dual Boot.\n",
158 | " - Virtual Machine."
159 | ]
160 | },
161 | {
162 | "cell_type": "markdown",
163 | "metadata": {
164 | "id": "8bJ4yW1P48zZ"
165 | },
166 | "source": [
167 | "### Main operating system"
168 | ]
169 | },
170 | {
171 | "cell_type": "markdown",
172 | "metadata": {
173 | "id": "JomqPimG48zZ"
174 | },
175 | "source": [
176 | "Install Ubuntu "
177 | ]
178 | },
179 | {
180 | "cell_type": "markdown",
181 | "metadata": {
182 | "id": "fw7-aFxC48zZ"
183 | },
184 | "source": [
185 | "### Dual Boot"
186 | ]
187 | },
188 | {
189 | "cell_type": "markdown",
190 | "metadata": {
191 | "hide_input": false,
192 | "id": "5lcFVbng48za"
193 | },
194 | "source": [
195 | "Install Ubuntu alongside Windows: Dual Boot "
196 | ]
197 | },
198 | {
199 | "cell_type": "markdown",
200 | "metadata": {
201 | "id": "usT4zq7b48zb"
202 | },
203 | "source": [
204 | "### VirtualBox"
205 | ]
206 | },
207 | {
208 | "cell_type": "markdown",
209 | "metadata": {
210 | "hide_input": false,
211 | "id": "9cSpWrxA48zb"
212 | },
213 | "source": [
214 | "Install Ubuntu on a Virtual Machine "
215 | ]
216 | },
217 | {
218 | "cell_type": "markdown",
219 | "metadata": {
220 | "id": "-XZDYuT-48zc"
221 | },
222 | "source": [
223 | "## Python"
224 | ]
225 | },
226 | {
227 | "cell_type": "markdown",
228 | "metadata": {
229 | "id": "uTm4KcDA48zd"
230 | },
231 | "source": [
232 | " - We use `Python` in the course Videocoding. \n",
233 | " - If you are not familiar with `Python` you should start getting familiar with it as fast as possible.\n",
234 | " - I can recommend two tutorials:\n",
235 | " - Very Basic of Python Tutorial: A very basic python tutorial to get you started, very short in a cheat-sheet style. \n",
236 | " - Basics of Digital Audio Signal Processing and Machine Learning using Python: This is a from zero to hero series in which we learn fundamentals of Audio DSP and Machine Learning for Audio side-by-side with learning Python Programming and vice-versa "
237 | ]
238 | },
239 | {
240 | "cell_type": "code",
241 | "execution_count": null,
242 | "metadata": {
243 | "cellView": "form",
244 | "hide_input": true,
245 | "id": "IhYHo49x48zd",
246 | "outputId": "80111bd8-4123-4223-a081-9c9285580a39"
247 | },
248 | "outputs": [
249 | {
250 | "data": {
251 | "text/html": [
252 | "Basics for Digital Audio Signal Processing and Machine Learning for Audio \n",
253 | " \n",
254 | "VIDEO \n"
255 | ],
256 | "text/plain": [
257 | ""
258 | ]
259 | },
260 | "metadata": {},
261 | "output_type": "display_data"
262 | }
263 | ],
264 | "source": [
265 | "#@title\n",
266 | "%%html\n",
267 | "Basics for Digital Audio Signal Processing and Machine Learning for Audio \n",
268 | " \n",
269 | "VIDEO "
270 | ]
271 | },
272 | {
273 | "cell_type": "markdown",
274 | "metadata": {
275 | "id": "JtM-Lh2Y48ze"
276 | },
277 | "source": [
278 | "- Python comes preinstalled in Ubuntu.\n",
279 | "- However, I highly recommend that you use a `Virtual Environment`.\n",
280 | "- I recommend basically two types of `Virtual Environments`:\n",
281 | " - `Conda:`Package, dependency and environment management for any language - Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN, and more.` \n",
282 | " - `venv:`Allow you to manage separate python package installations for different projects. \n",
283 | "- `Anaconda:` A very nice solution that combines a Python distribution, dependency and enviromnet management using `conda` and preinstalled `Python` packages. \n",
284 | " "
285 | ]
286 | },
287 | {
288 | "cell_type": "code",
289 | "execution_count": null,
290 | "metadata": {
291 | "hide_input": true,
292 | "cellView": "form",
293 | "id": "B6GrL3q8gQUo",
294 | "outputId": "44464436-2318-446e-9df2-01f169cbc67e"
295 | },
296 | "outputs": [
297 | {
298 | "data": {
299 | "text/html": [
300 | "Installing Anaconda on Ubuntu 20.04 and Creating a Conda Environment \n",
301 | " \n",
302 | "VIDEO \n"
303 | ],
304 | "text/plain": [
305 | ""
306 | ]
307 | },
308 | "metadata": {},
309 | "output_type": "display_data"
310 | }
311 | ],
312 | "source": [
313 | "#@title\n",
314 | "%%html\n",
315 | "Installing Anaconda on Ubuntu 20.04 and Creating a Conda Environment \n",
316 | " \n",
317 | "VIDEO "
318 | ]
319 | },
320 | {
321 | "cell_type": "markdown",
322 | "metadata": {
323 | "id": "Wz2il7VH48ze"
324 | },
325 | "source": [
326 | "## Jupyter Notebooks"
327 | ]
328 | },
329 | {
330 | "cell_type": "markdown",
331 | "metadata": {
332 | "hide_input": true,
333 | "id": "E3a79NC_48zf"
334 | },
335 | "source": [
336 | " - We use `Jupyter Notebooks` in the course Videocoding.\n",
337 | " - The `Jupyter Notebook:`is a web-based interactive computing platform. The notebook combines live code, equations, narrative text, visualizations, ... \n",
338 | " - Installing `Jupyter Notebooks` depends on the `Virtual Environment`that you chose:\n",
339 | " - Installation using `venv` or without a virtual environment. \n",
340 | " - Installation using `Anaconda`. \n",
341 | " - If you are not familiar with `Jupyter Notebooks`I can recommend the following tutorials: Introduction to `Google Colab` for Research. (The first 3 Tutorials).\n",
342 | " - `Google Colab`is a cloud solution based on `Jupyter Notebooks`. There are a few differences but the basic concepts are the same.\n",
343 | " "
344 | ]
345 | },
346 | {
347 | "cell_type": "code",
348 | "execution_count": null,
349 | "metadata": {
350 | "cellView": "form",
351 | "hide_input": true,
352 | "id": "NspRBreI48zf",
353 | "outputId": "2ca1d9d9-f7f1-4073-ac90-543c42bdb566"
354 | },
355 | "outputs": [
356 | {
357 | "data": {
358 | "text/html": [
359 | "Introduction to `Google Colab` for Research. \n",
360 | " \n",
361 | "VIDEO \n"
362 | ],
363 | "text/plain": [
364 | ""
365 | ]
366 | },
367 | "metadata": {},
368 | "output_type": "display_data"
369 | }
370 | ],
371 | "source": [
372 | "#@title\n",
373 | "%%html\n",
374 | "Introduction to `Google Colab` for Research. \n",
375 | " \n",
376 | "VIDEO "
377 | ]
378 | },
379 | {
380 | "cell_type": "markdown",
381 | "metadata": {
382 | "id": "gfcWYxvu48zf"
383 | },
384 | "source": [
385 | "## NextCloud"
386 | ]
387 | },
388 | {
389 | "cell_type": "markdown",
390 | "metadata": {
391 | "id": "CSpLxDzt48zg"
392 | },
393 | "source": [
394 | " - `Nextcloud` is a suite of client-server software for creating and using file hosting services.\n",
395 | " - As a student at TU Ilmenau you have access to the TU Ilmenau NextCloud. "
396 | ]
397 | },
398 | {
399 | "cell_type": "markdown",
400 | "metadata": {
401 | "id": "NTAYeshu48zg"
402 | },
403 | "source": [
404 | "### Mounting a TUI Nextcloud folder in your Ubuntu system"
405 | ]
406 | },
407 | {
408 | "cell_type": "code",
409 | "source": [
410 | "#@title\n",
411 | "%%html\n",
412 | " Accessing Nextcloud files using WebDAV \n",
413 | " \n",
414 | "VIDEO "
415 | ],
416 | "metadata": {
417 | "colab": {
418 | "base_uri": "https://localhost:8080/",
419 | "height": 353
420 | },
421 | "cellView": "form",
422 | "id": "Qc79NXP3NH1B",
423 | "outputId": "54aaaf0f-7dde-4efe-b7a6-fabc7e598c16"
424 | },
425 | "execution_count": 1,
426 | "outputs": [
427 | {
428 | "output_type": "display_data",
429 | "data": {
430 | "text/plain": [
431 | ""
432 | ],
433 | "text/html": [
434 | " Accessing Nextcloud files using WebDAV \n",
435 | " \n",
436 | "VIDEO \n"
437 | ]
438 | },
439 | "metadata": {}
440 | }
441 | ]
442 | },
443 | {
444 | "cell_type": "markdown",
445 | "source": [
446 | "To get access to our shared Nextcloud server, we can mount it in Ubuntu linux. If you setup a new\n",
447 | "Ubuntu, it will aks you if you want to connect to Nextcloud, and if yes, it will do this for you\n",
448 | "automatically. If you have an existing Ubuntu, you can use the following steps,\n",
449 | "according to:\n",
450 | "https://docs.nextcloud.com/server/20/user_manual/en/files/access_webdav.html\n"
451 | ],
452 | "metadata": {
453 | "id": "glU8GCW1y_vA"
454 | }
455 | },
456 | {
457 | "cell_type": "markdown",
458 | "metadata": {
459 | "id": "uRH6Im3n48zg"
460 | },
461 | "source": [
462 | "(replace “schuller” by your user name)\n",
463 | "\n",
464 | "sudo apt install davfs2\n",
465 | "\n",
466 | "sudo usermod -aG davfs2 schuller\n",
467 | "\n",
468 | "mkdir ~/nextcloud_mount\n",
469 | "\n",
470 | "mkdir ~/.davfs2\n",
471 | "\n",
472 | "sudo cp /etc/davfs2/secrets .davfs2/secrets\n",
473 | "\n",
474 | "sudo chown schuller:schuller .davfs2/secrets\n",
475 | "\n",
476 | "chmod 600 ~/.davfs2/secrets\n",
477 | "\n",
478 | "cd .davfs2/\n",
479 | "\n",
480 | "gedit secrets &\n",
481 | "\n",
482 | "In the editor, append Nextcloud mount point (directory) and Nextcloud user name:\n",
483 | "/home/schuller/nextcloud_mount gschull\n",
484 | "\n",
485 | "sudo gedit /etc/fstab\n",
486 | "\n",
487 | "In the editor, append (Nextcloud server path, mount point, options, one line):\n",
488 | "https://cloud.tu-ilmenau.de/remote.php/dav/files/gschull/ /home/schuller/nextcloud_mount davfs\n",
489 | "user,rw,auto 0 0\n",
490 | "\n",
491 | "\n",
492 | "cd #back to home directory\n",
493 | "\n",
494 | "mount nextcloud_mount #mount nextcloud\n",
495 | "\n",
496 | "cd nextcloud_mount #should be now in mounted Nextcloud\n",
497 | "\n",
498 | "\\#When done, unmount with:\n",
499 | "\n",
500 | "umount ~/nextcloud_moun\n"
501 | ]
502 | },
503 | {
504 | "cell_type": "markdown",
505 | "metadata": {
506 | "id": "lOv9sqTQ48zg"
507 | },
508 | "source": [
509 | "## NBgrader"
510 | ]
511 | },
512 | {
513 | "cell_type": "markdown",
514 | "metadata": {
515 | "id": "ohWz1r_v48zg"
516 | },
517 | "source": [
518 | " - We will use `nbgrader` for managing and evaluating students homeworks.\n",
519 | " - The `nbgrader:`is a tool that facilitates creating and grading assignments in the Jupyter notebook. \n",
520 | " - Installing `nbgrader` depends on the `Virtual Environment`that you chose:\n",
521 | " - Installation using `venv`, without a virtual environment or using `conda`. "
522 | ]
523 | },
524 | {
525 | "cell_type": "code",
526 | "execution_count": null,
527 | "metadata": {
528 | "hide_input": true,
529 | "cellView": "form",
530 | "id": "9AnwYE1FgQUr",
531 | "outputId": "4c2b15e2-ff2d-43db-f84c-0c825ee2cb33"
532 | },
533 | "outputs": [
534 | {
535 | "data": {
536 | "text/html": [
537 | "Installing NBGrader \n",
538 | " \n",
539 | "VIDEO \n"
540 | ],
541 | "text/plain": [
542 | ""
543 | ]
544 | },
545 | "metadata": {},
546 | "output_type": "display_data"
547 | }
548 | ],
549 | "source": [
550 | "#@title\n",
551 | "%%html\n",
552 | "Installing NBGrader \n",
553 | " \n",
554 | "VIDEO "
555 | ]
556 | },
557 | {
558 | "cell_type": "markdown",
559 | "source": [
560 | "### Configuring NBGrader to use Nextcloud Exchange Folder"
561 | ],
562 | "metadata": {
563 | "id": "3HPGDXasNwhi"
564 | }
565 | },
566 | {
567 | "cell_type": "code",
568 | "source": [
569 | "#@title\n",
570 | "%%html\n",
571 | "VIDEO "
572 | ],
573 | "metadata": {
574 | "colab": {
575 | "base_uri": "https://localhost:8080/",
576 | "height": 336
577 | },
578 | "cellView": "form",
579 | "id": "l6fEbE3DN0r-",
580 | "outputId": "b5c36ba2-8eb1-4100-f2f7-e03e01c26496"
581 | },
582 | "execution_count": 2,
583 | "outputs": [
584 | {
585 | "output_type": "display_data",
586 | "data": {
587 | "text/plain": [
588 | ""
589 | ],
590 | "text/html": [
591 | "VIDEO \n"
592 | ]
593 | },
594 | "metadata": {}
595 | }
596 | ]
597 | },
598 | {
599 | "cell_type": "markdown",
600 | "source": [
601 | "### Fetching and Submitting NBGRader Assignments"
602 | ],
603 | "metadata": {
604 | "id": "6gr757jFRZm1"
605 | }
606 | },
607 | {
608 | "cell_type": "code",
609 | "source": [
610 | "#@title\n",
611 | "%%html\n",
612 | "VIDEO "
613 | ],
614 | "metadata": {
615 | "colab": {
616 | "base_uri": "https://localhost:8080/",
617 | "height": 336
618 | },
619 | "cellView": "form",
620 | "id": "ZedwJ9LKRUDc",
621 | "outputId": "82293e4d-79f5-4145-dd04-341eec32939c"
622 | },
623 | "execution_count": 3,
624 | "outputs": [
625 | {
626 | "output_type": "display_data",
627 | "data": {
628 | "text/plain": [
629 | ""
630 | ],
631 | "text/html": [
632 | "VIDEO \n"
633 | ]
634 | },
635 | "metadata": {}
636 | }
637 | ]
638 | },
639 | {
640 | "cell_type": "markdown",
641 | "source": [
642 | "### NBGrader Workflow - Fetching, Submitting, Feedback - Command "
643 | ],
644 | "metadata": {
645 | "id": "LAdrG4_wSHFb"
646 | }
647 | },
648 | {
649 | "cell_type": "code",
650 | "source": [
651 | "#@title\n",
652 | "%%html\n",
653 | "VIDEO "
654 | ],
655 | "metadata": {
656 | "colab": {
657 | "base_uri": "https://localhost:8080/",
658 | "height": 336
659 | },
660 | "cellView": "form",
661 | "id": "eFJLYPn-RuN6",
662 | "outputId": "177b0b15-5a2e-46a7-afd5-be13269b8c41"
663 | },
664 | "execution_count": 4,
665 | "outputs": [
666 | {
667 | "output_type": "display_data",
668 | "data": {
669 | "text/plain": [
670 | ""
671 | ],
672 | "text/html": [
673 | "VIDEO \n"
674 | ]
675 | },
676 | "metadata": {}
677 | }
678 | ]
679 | },
680 | {
681 | "cell_type": "markdown",
682 | "source": [
683 | "## Seminars Resources"
684 | ],
685 | "metadata": {
686 | "id": "IDe6fvPWS98a"
687 | }
688 | },
689 | {
690 | "cell_type": "markdown",
691 | "source": [
692 | "TUI AMS Github: [https://github.com/TUIlmenauAMS](https://github.com/TUIlmenauAMS)\n",
693 | "\n",
694 | "YouTube: [https://www.youtube.com/c/GuitarsAI/](https://www.youtube.com/c/GuitarsAI/)"
695 | ],
696 | "metadata": {
697 | "id": "FVeyLqFTTJhg"
698 | }
699 | },
700 | {
701 | "cell_type": "code",
702 | "source": [],
703 | "metadata": {
704 | "id": "6avnd4a5TeB1"
705 | },
706 | "execution_count": null,
707 | "outputs": []
708 | }
709 | ],
710 | "metadata": {
711 | "colab": {
712 | "provenance": [],
713 | "collapsed_sections": []
714 | },
715 | "kernelspec": {
716 | "display_name": "Python 3",
717 | "language": "python",
718 | "name": "python3"
719 | },
720 | "language_info": {
721 | "codemirror_mode": {
722 | "name": "ipython",
723 | "version": 3
724 | },
725 | "file_extension": ".py",
726 | "mimetype": "text/x-python",
727 | "name": "python",
728 | "nbconvert_exporter": "python",
729 | "pygments_lexer": "ipython3",
730 | "version": "3.6.15"
731 | },
732 | "toc": {
733 | "base_numbering": 1,
734 | "nav_menu": {},
735 | "number_sections": true,
736 | "sideBar": true,
737 | "skip_h1_title": false,
738 | "title_cell": "Table of Contents",
739 | "title_sidebar": "Contents",
740 | "toc_cell": false,
741 | "toc_position": {},
742 | "toc_section_display": true,
743 | "toc_window_display": false
744 | }
745 | },
746 | "nbformat": 4,
747 | "nbformat_minor": 0
748 | }
--------------------------------------------------------------------------------
/seminars/nbgrader_config.py:
--------------------------------------------------------------------------------
1 | #According to: https://nbgrader.readthedocs.io/en/stable/user_guide/managing_assignment_files.html#setting-up-the-exchange
2 | # Template for the nbgrader configuration file
3 | # You must change the data to fit your system
4 | c = get_config()
5 | c.CourseDirectory.course_id = "AC_seminars_ws22" # Don't change this!!!
6 | c.Exchange.root = "/home/username/WS22_Seminars/instructor/nextcloud" # Change this to point to your local folder (nextcloud).
7 | c.CourseDirectory.student_id = "6666927" # Change this to your matrikel number.
8 |
--------------------------------------------------------------------------------