HiFiScan/chirp.ipynb

461 wiersze
565 KiB
Plaintext
Czysty Zwykły widok Historia

2022-09-11 11:28:25 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import numpy as np\n",
2022-09-28 06:33:59 +00:00
"from numpy.fft import fft, ifft, irfft, rfft\n",
2022-09-11 11:28:25 +00:00
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
2022-09-28 06:33:59 +00:00
"plt.rcParams[\"figure.figsize\"] = (12, 6)\n",
2022-09-11 11:28:25 +00:00
" \n",
"import hifiscan as hifi\n",
"audio = hifi.Audio()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Spectrum measurement\n",
"analyzer = hifi.Analyzer(f0=20, f1=20000, secs=1, rate=audio.rate, ampl=0.4)\n",
"audio.play(analyzer.chirp)\n",
"async for recording in audio.record():\n",
" if analyzer.findMatch(recording):\n",
" break\n",
" if analyzer.timedOut():\n",
" raise Exception('Timeout')\n",
" \n",
"spectrum = analyzer.spectrum(smoothing=10)\n",
"plt.plot(*spectrum)\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Input stimulus x\n",
"plt.plot(analyzer.x)\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Output response y\n",
"plt.plot(analyzer.y)\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 5,
2022-09-11 11:28:25 +00:00
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Transfer function H = X / Y, with X = FT(x), Y = FT(y) and FT the Fourier Transform\n",
"# f, H = analyzer.H()\n",
"f, H2 = analyzer.H2(smoothing=0)\n",
"H = H2 ** 0.5\n",
"plt.plot(f, H)\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Impulse response h = IFT(H), with IFT the Inverse Fourier Transform\n",
"t, h = analyzer.h()\n",
"plt.plot(t, h)\n",
"plt.grid()\n",
"audio.play(h / np.abs(h).max())"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Inverse impulse response h_inv = IFT(1 / H)\n",
"t, h_inv = analyzer.h_inv(\n",
" secs=0.05,\n",
2022-09-28 06:33:59 +00:00
" dbRange=30,\n",
2022-09-11 11:28:25 +00:00
" kaiserBeta=5,\n",
" smoothing=15)\n",
"plt.plot(t, h_inv)\n",
"plt.grid()\n",
"# audio.play(h_inv / np.abs(h_inv).max())\n",
2022-09-28 06:33:59 +00:00
"# hifi.write_wav('IR.wav', [h_inv, h_inv], audio.rate)"
2022-09-11 11:28:25 +00:00
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Correction factor that h_inv applies for every frequency\n",
"corrFactor = analyzer.correctionFactor(h_inv)\n",
"plt.plot(*corrFactor)\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Expected corrected spectrum\n",
"sp1, sp2 = analyzer.correctedSpectrum(corrFactor)\n",
"plt.plot(*sp1)\n",
"plt.plot(*sp2)\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Setting mic calibration or target curve\n",
"calibration = [(20, -1.5), (150, 0), (4500, 0), (10000, 4), (17000, 0), (20000, -2)]\n",
"target = [(100, -5), (500, 10), (1000, -10), (2000, 10), (4000, 10), (10000, 5)]\n",
"#target = hifi.read_correction('house.txt')\n",
"analyzer = hifi.Analyzer(\n",
" f0=20, f1=20000, secs=1, rate=audio.rate, ampl=0.4,\n",
" calibration=calibration, target=target)\n",
"\n",
"# Interpolated calibration/target curves\n",
"freq = analyzer.frequency()\n",
"cal = analyzer.calibration()\n",
"tgt = analyzer.target()\n",
"r = analyzer.freqRange()\n",
"plt.semilogx(freq[r], cal[r])\n",
"plt.semilogx(freq[r], tgt[r])\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 11,
2022-09-28 06:33:59 +00:00
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Waveform as a function of causality\n",
"for causality in range(0, 110, 10):\n",
" offset = causality / 100\n",
" h2 = offset + hifi.transform_causality(h_inv, causality / 100)\n",
" plt.plot(h2)\n",
" plt.text(h2.size + 10, offset, f'{causality}%')\n",
"plt.axis('off');"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# dB reduction of pre-echo as a function of causality\n",
"causalities = range(0, 100, 2)\n",
"dbs = np.empty_like(causalities, 'd')\n",
"for i, causality in enumerate(causalities):\n",
" h2 = hifi.transform_causality(h_inv, causality / 100)\n",
" p = h2.argmax()\n",
" caus = (h2[p:] ** 2).sum()\n",
" acaus = (h2[:p] ** 2).sum()\n",
" dbs[i] = 10 * np.log10(acaus / caus)\n",
"dbs -= dbs[0]\n",
"plt.plot(causalities, dbs)\n",
"plt.grid()\n",
"plt.xlabel('Causality [%]')\n",
"plt.ylabel('Pre-echo reduction [dB]');"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Phase distortion as a function of causality\n",
"from scipy import signal\n",
"for causality in range(0, 110, 20):\n",
" h2 = hifi.transform_causality(h_inv, causality / 100)\n",
" phase = signal.detrend(np.unwrap(np.angle(fft(h2))))\n",
" plt.plot(phase, label=causality)\n",
"plt.legend()\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": 14,
2022-09-11 11:28:25 +00:00
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
2022-09-28 06:33:59 +00:00
"image/png": "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
2022-09-11 11:28:25 +00:00
"text/plain": [
2022-09-28 06:33:59 +00:00
"<Figure size 864x432 with 1 Axes>"
2022-09-11 11:28:25 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Power distribution of the chirp\n",
"x = analyzer.chirp\n",
"y = np.abs(np.fft.rfft(x)) ** 2\n",
"f = np.linspace(0, analyzer.rate / 2, y.size)\n",
"r = analyzer.freqRange(f.size)\n",
"plt.loglog(f[r], y[r])\n",
"plt.grid()"
]
},
{
"cell_type": "code",
2022-09-28 06:33:59 +00:00
"execution_count": 15,
2022-09-11 11:28:25 +00:00
"metadata": {},
"outputs": [],
"source": [
"# Play some tones\n",
"tones = [0.4 * hifi.tone(440 * i, 0.1, audio.rate) for i in range(1, 12)]\n",
"for tone in tones:\n",
" audio.play(tone)"
]
},
{
"cell_type": "code",
2022-09-28 06:33:59 +00:00
"execution_count": 16,
2022-09-11 11:28:25 +00:00
"metadata": {},
"outputs": [],
"source": [
"# Create a missing fundamental of 20 Hz\n",
"# https://en.wikipedia.org/wiki/Missing_fundamental\n",
"tones = [hifi.tone(20 * i, 2, audio.rate) / i for i in range(6, 22)]\n",
"for chord in np.cumsum(tones[::-1], 0):\n",
" chord /= np.abs(chord).max()\n",
" audio.play(chord)"
]
},
{
"cell_type": "code",
2022-09-28 06:33:59 +00:00
"execution_count": 17,
2022-09-11 11:28:25 +00:00
"metadata": {},
"outputs": [],
"source": [
"audio.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.0rc2"
2022-09-11 11:28:25 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 4
}