notebook-notes/Untitled-1.ipynb

196 lines
199 KiB
Plaintext
Raw Permalink Normal View History

2023-02-08 10:36:56 +03:00
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%pip install matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1400x900 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"length = 23\n",
"counts = [x for x in range(length)]\n",
"x_n = [6]*length\n",
"y_n = [0]*length\n",
"eps_n = [0]*length\n",
"u_n = [0]*length\n",
"\n",
"y_n[0] = 127\n",
"eps_n[0] = 0\n",
"u_n[0] = 0\n",
"for x in range(1, length):\n",
" u_n[x] = x_n[x - 1] - eps_n[x - 1]\n",
" y_n[x] = 127 if u_n[x] >= 0 else -128\n",
" eps_n[x] = y_n[x] - u_n[x]\n",
"# print('$x = ' + str(x_n[x]) + ', u_{' + str(x) + '} = ' + str(u_n[x]) + ', y_{' + str(x-1) + '} = ' + str(y_n[x-1]) + ', \\\\varepsilon_{' + str(x) + '} = ' + str(eps_n[x]) + '$')\n",
"\n",
"\n",
"fig, ax = plt.subplots()\n",
"\n",
"ax.plot(counts, x_n, 'r-', label='x')\n",
"ax.plot(counts, y_n, 'b-', label='$y\\'_n$')\n",
"ax.plot(counts, u_n, 'c--', label='$u_n$')\n",
"ax.plot(counts, eps_n, 'g.', label='$\\\\varepsilon_n$')\n",
"ax.legend()\n",
"ax.grid(linestyle='--', color='grey')\n",
"fig.set_figheight(9)\n",
"fig.set_figwidth(14)\n",
"plt.xticks(counts)\n",
"#plt.show()\n",
"plt.savefig('03-fpga-04-sigdel.pgf', format='pgf')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"def moreless(in1, in2):\n",
" out = []\n",
" if (in1 >= in2):\n",
" out.append(in1)\n",
" out.append(in2)\n",
" else:\n",
" out.append(in2)\n",
" out.append(in1)\n",
" return out\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"def layer4(in8):\n",
" out = [0 for x in range(8)]\n",
" tmp = [0 for x in range(2)]\n",
" for i in range(4):\n",
" tmp = moreless(in8[i * 2], in8[i * 2 + 1])\n",
" out[i * 2] = tmp[0]\n",
" out[i * 2 + 1] = tmp[1]\n",
" \n",
" return out"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"def layer3(in8):\n",
" out = [0 for x in range(8)]\n",
" tmp = [0 for x in range(2)]\n",
" out[0] = in8[0]\n",
" out[7] = in8[7]\n",
" for i in range(3):\n",
" tmp = moreless(in8[i * 2 + 1], in8[i * 2 + 2])\n",
" out[i * 2 + 1] = tmp[0]\n",
" out[i * 2 + 2] = tmp[1]\n",
" \n",
" return out"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 1, 2, 3, 4, 5, 6, 7]\n",
"[1, 0, 3, 2, 5, 4, 7, 6]\n",
"[1, 3, 0, 5, 2, 7, 4, 6]\n",
"[3, 1, 5, 0, 7, 2, 6, 4]\n",
"[3, 5, 1, 7, 0, 6, 2, 4]\n",
"[5, 3, 7, 1, 6, 0, 4, 2]\n",
"[5, 7, 3, 6, 1, 4, 0, 2]\n",
"[7, 5, 6, 3, 4, 1, 2, 0]\n",
"[7, 6, 5, 4, 3, 2, 1, 0]\n"
]
}
],
"source": [
"arr = [0, 1, 2, 3, 4, 5, 6, 7]\n",
"step = []\n",
"print(arr)\n",
"step = layer4(arr)\n",
"print(step)\n",
"step = layer3(step)\n",
"print(step)\n",
"step = layer4(step)\n",
"print(step)\n",
"step = layer3(step)\n",
"print(step)\n",
"step = layer4(step)\n",
"print(step)\n",
"step = layer3(step)\n",
"print(step)\n",
"step = layer4(step)\n",
"print(step)\n",
"step = layer3(step)\n",
"print(step)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"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.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "a900b4e6582a1b4cc15d3a2dc9354d443914a9108f4b541959554dc4368e173c"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}