lasp/examples/Test SLM.ipynb

230 lines
16 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"%pylab is deprecated, use %matplotlib inline and import the required libraries.\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"from lasp import SLM\n",
"import numpy as np\n",
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-08-16 21:20:04+0200 \n",
"2022-08-16 21:20:04+0200 Enter fromBiquads (lasp_slm.cpp: 82)\n",
"2022-08-16 21:20:04+0200 | Enter createBandPass (lasp_slm.cpp: 62)\n",
"2022-08-16 21:20:04+0200 | | Enter SeriesBiquad (lasp_biquadbank.cpp: 12)\n",
"2022-08-16 21:20:04+0200 | | Leave SeriesBiquad (lasp_biquadbank.cpp)\n",
"2022-08-16 21:20:04+0200 | | \n",
"2022-08-16 21:20:04+0200 | | Enter SeriesBiquad (lasp_biquadbank.cpp: 12)\n",
"2022-08-16 21:20:04+0200 | | Leave SeriesBiquad (lasp_biquadbank.cpp)\n",
"2022-08-16 21:20:04+0200 | Leave createBandPass (lasp_slm.cpp)\n",
"2022-08-16 21:20:04+0200 | \n",
"2022-08-16 21:20:04+0200 | Enter SLM (lasp_slm.cpp: 37)\n",
"2022-08-16 21:20:04+0200 | Leave SLM (lasp_slm.cpp)\n",
"2022-08-16 21:20:04+0200 Leave fromBiquads (lasp_slm.cpp)\n"
]
}
],
"source": [
"fs = 44100.\n",
"Lref = 1\n",
"ds = 1\n",
"tau = 1/8\n",
"\n",
"bp_coefs = np.zeros((6,2), order='F')\n",
"bp_coefs[0,:] = 1\n",
"bp_coefs[3,:] = 1\n",
"\n",
"slm = SLM.fromBiquads(\n",
" fs, \n",
" Lref,\n",
" ds, tau, bp_coefs\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[1., 1.],\n",
" [0., 0.],\n",
" [0., 0.],\n",
" [1., 1.],\n",
" [0., 0.],\n",
" [0., 0.]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bp_coefs"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(20100, 2)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-08-16 21:20:04+0200 \n",
"2022-08-16 21:20:04+0200 Enter run (lasp_slm.cpp: 151)\n",
"2022-08-16 21:20:04+0200 | Enter filter (lasp_biquadbank.cpp: 44)\n",
"2022-08-16 21:20:04+0200 | | Enter filter (lasp_biquadbank.cpp: 44)\n",
"2022-08-16 21:20:04+0200 | | Leave filter (lasp_biquadbank.cpp)\n",
"2022-08-16 21:20:04+0200 | Leave filter (lasp_biquadbank.cpp)\n",
"2022-08-16 21:20:04+0200 | N = 0ul\n",
"2022-08-16 21:20:04+0200 | N = 0ul\n",
"2022-08-16 21:20:04+0200 Leave run (lasp_slm.cpp)\n"
]
}
],
"source": [
"x = np.zeros(20100, dtype=float)\n",
"x[:] = 1\n",
"\n",
"res = slm.run(x)\n",
"print(res.shape)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3823125cf0>,\n",
" <matplotlib.lines.Line2D at 0x7f3823125d50>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(res)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[1.],\n",
" [1.]])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"slm.Pm"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-0.11480531, -0.11480531])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res[-1,:]"
]
},
{
"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.10.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}