{ "cells": [ { "cell_type": "code", "execution_count": 15, "id": "4f72a6e3-57ea-4a72-a830-75039cf19a41", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import math" ] }, { "cell_type": "code", "execution_count": 10, "id": "ca0fdfda-74c6-486c-a556-5356b3e8a2bf", "metadata": {}, "outputs": [], "source": [ "def genetate_step_signal(fs):\n", " half_second_length = int(fs * 0.5);\n", " \n", " all_ones = np.ones(half_second_length)\n", " all_zeros = np.zeros(half_second_length)\n", " result = np.append(all_ones, all_zeros)\n", " \n", " return result;" ] }, { "cell_type": "code", "execution_count": 19, "id": "0cdf63c4-457c-41b2-9466-8865b6da4ee9", "metadata": {}, "outputs": [], "source": [ "def calcTimeCoefficient(t, fs):\n", " return math.exp(-1/(t*fs))" ] }, { "cell_type": "code", "execution_count": 16, "id": "e87c6f79-c545-4828-a3e8-2ca3a6307fec", "metadata": {}, "outputs": [], "source": [ "fs = 16000\n", "step_signal = genetate_step_signal(fs)" ] }, { "cell_type": "code", "execution_count": 17, "id": "cc29f62c-2e77-4905-8d9e-e7397b166a08", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAOy0lEQVR4nO3dXYxdV3nG8f9TO6bloyTCA0r9gU1lPiw1qWAItCollLbYyYWFhNQERNQI5EYliMuklQoX3BShVogScK3IirjBqkoEpjVElVpIpTRtJlLixERBgxHx1FSeAKI0XERO3l6cAzpMzszZ45w54738/0kjnb33mjPv0hw9Xt6z9lqpKiRJ/fcrm12AJGk6DHRJaoSBLkmNMNAlqREGuiQ1Yutm/eDt27fXnj17NuvHS1IvPfzww09X1dy4a5sW6Hv27GFhYWGzfrwk9VKS7692zVsuktQIA12SGmGgS1IjDHRJaoSBLkmNmBjoSY4lOZ/k8VWuJ8lnkywmOZXkzdMvU5I0SZcR+j3AgTWuHwT2Db8OA1948WVJktZr4jz0qro/yZ41mhwCvliDdXgfTHJlkqur6gfTKnLUk//zU/751LmNeGsJgJdcsYVbfue1vOJXr9jsUqR1mcaDRTuAsyPHS8NzLwj0JIcZjOLZvXv3Rf2wxfP/x9/92+JFfa80yc+3B9i7/WXc8FtXb24x0jpNI9Az5tzYXTOq6ihwFGB+fv6idta48ZqrufGaGy/mW6WJFs//lD/82/t57nk3flH/TGOWyxKwa+R4J+A9EUmasWkE+gngluFsl7cDP9mo++eSpNVNvOWS5EvA9cD2JEvAJ4ArAKrqCHASuAFYBH4G3LpRxUqSVtdllsvNE64X8JGpVSRJuig+KSpJjTDQpTGc46I+MtClXzJuFq7UDwa6JDXCQJekRhjoktQIA12SGmGgS2NUOc9F/WOgS1IjDHRpRJy1qB4z0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRphLMW1WcGuiQ1wkCXpEYY6JLUCANdkhphoEtjuNii+shAl6RGGOjSiLjconrMQJekRhjoktQIA12SGmGgS1IjDHRpjMJ5i+ofA10a4RwX9ZmBLkmN6BToSQ4keTLJYpI7x1x/ZZKvJXk0yekkt06/VEnSWiYGepItwF3AQWA/cHOS/SuafQT4dlVdC1wP/E2SbVOuVZK0hi4j9OuAxao6U1XPAseBQyvaFPCKDB6zeznwI+DCVCuVJK2pS6DvAM6OHC8Nz436HPAm4BzwGPCxqnp+5RslOZxkIcnC8vLyRZYsbTwX51IfdQn0cX/4X/lxfw/wCPAbwG8Dn0vy6y/4pqqjVTVfVfNzc3PrLFWStJYugb4E7Bo53slgJD7qVuDeGlgEvge8cTolSrPj2lzqsy6B/hCwL8ne4R86bwJOrGjzFPBugCSvAd4AnJlmoZKktW2d1KCqLiS5HbgP2AIcq6rTSW4bXj8CfBK4J8ljDG7R3FFVT29g3ZKkFSYGOkBVnQROrjh3ZOT1OeCPp1uaJGk9fFJUkhphoEtjOG1RfWSgS1IjDHRpRFxvUT1moEtSIwx0SWqEgS5JjTDQJakRBro0hrMW1UcGuiQ1wkCXRrjaovrMQJekRhjoktQIA12SGmGgS1IjDHRpjHK5RfWQgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLYzhpUX1koEsjXJxLfWagS1IjDHRJaoSBLkmNMNAlqREGujSO01zUQwa6JDWiU6AnOZDkySSLSe5cpc31SR5JcjrJt6ZbpjQbcd6iemzrpAZJtgB3AX8ELAEPJTlRVd8eaXMl8HngQFU9leTVG1SvJGkVXUbo1wGLVXWmqp4FjgOHVrR5P3BvVT0FUFXnp1umJGmSLoG+Azg7crw0PDfq9cBVSb6Z5OEkt4x7oySHkywkWVheXr64iiVJY3UJ9HE3FVfOAdgKvAW4EXgP8FdJXv+Cb6o6WlXzVTU/Nze37mIlSaubeA+dwYh818jxTuDcmDZPV9UzwDNJ7geuBb4zlSqlGSvnLaqHuozQHwL2JdmbZBtwE3BiRZuvAu9IsjXJS4G3AU9Mt1RJ0lomjtCr6kKS24H7gC3Asao6neS24fUjVfVEkm8Ap4Dngbur6vGNLFzaCE5aVJ91ueVCVZ0ETq44d2TF8aeBT0+vNEnSevikqCQ1wkCXpEYY6JLUCANdGqOctageMtAlqREGujTCxRbVZwa6JDXCQJekRhjoktQIA12SGmGgS2M4a1F9ZKBLUiMMdGlEXG9RPWagS1IjDHRJaoSBLkmNMNAlqREGujSGqy2qjwx0aYSLc6nPDHRJaoSBLkmNMNAlqREGuiQ1wkCXxiiX51IPGeiS1AgDXRrhrEX1mYEuSY0w0CWpEQa6JDXCQJekRhjo0hguzqU+6hToSQ4keTLJYpI712j31iTPJXnf9EqUJHUxMdCTbAHuAg4C+4Gbk+xfpd2ngPumXaQ0M85bVI91GaFfByxW1ZmqehY4Dhwa0+6jwJeB81OsT5LUUZdA3wGcHTleGp77hSQ7gPcCR9Z6oySHkywkWVheXl5vrZKkNXQJ9HH/CV35J6PPAHdU1XNrvVFVHa2q+aqan5ub61iiJKmLrR3aLAG7Ro53AudWtJkHjmew3ct24IYkF6rqK9MoUpI0WZdAfwjYl2Qv8N/ATcD7RxtU1d6fv05yD/BPhrn6zFmL6qOJgV5VF5LczmD2yhbgWFWdTnLb8Pqa980lSbPRZYROVZ0ETq44NzbIq+pPX3xZ0uaI8xbVYz4pKkmNMNAlqREGuiQ1wkCXpEYY6NI4LreoHjLQJakRBro0Is5aVI8Z6JLUCANdkhphoEtSIwx0SWqEgS6N4aRF9ZGBLo1wkov6zECXpEYY6JLUCANdkhphoEtSIwx0aQzX5lIfGeiS1AgDXRoRV+dSjxnoktQIA12SGmGgS1IjDHRJaoSBLo1RzltUDxnoktQIA10a4aRF9ZmBLkmNMNAlqREGuiQ1olOgJzmQ5Mkki0nuHHP9A0lODb8eSHLt9EuVJK1lYqAn2QLcBRwE9gM3J9m/otn3gHdW1TXAJ4Gj0y5UmiUnLaqPuozQrwMWq+pMVT0LHAcOjTaoqgeq6sfDwweBndMtU5I0SZdA3wGcHTleGp5bzYeAr4+7kORwkoUkC8vLy92rlGbExRbVZ10CfdxHfOz/SJO8i0Gg3zHuelUdrar5qpqfm5vrXqUkaaKtHdosAbtGjncC51Y2SnINcDdwsKp+OJ3yJElddRmhPwTsS7I3yTbgJuDEaIMku4F7gQ9W1XemX6YkaZKJI/SqupDkduA+YAtwrKpOJ7lteP0I8HHgVcDnhzu+XKiq+Y0rW5K0UpdbLlTVSeDkinNHRl5/GPjwdEuTNo+LLaqPfFJUGhGX51KPGeiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0KUxnLWoPjLQpVHOWlSPGeiS1AgDXZIaYaBLUiMMdElqhIEujVGuzqUeMtAlqREGujTCPUXVZwa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLo1w1qL6zECXpEYY6JLUCANdkhphoEtSIwx0aQwXW1QfGeiS1AgDXRoRl1tUjxnoktQIA12SGtEp0JMcSPJkksUkd465niSfHV4/leTN0y9VkrSWiYGeZAtwF3AQ2A/cnGT/imYHgX3Dr8PAF6ZcpyRpgq0d2lwHLFbVGYAkx4FDwLdH2hwCvliDnXUfTHJlkqur6gdTr1iagb+//7v8w8LZzS5DjfqTt+7iw+943dTft0ug7wBGP9lLwNs6tNkB/FKgJznMYATP7t2711urtOFetm0Lf/bO13H2Rz/b7FLUsO0vf8mGvG+XQB83j2vlYxdd2lBVR4GjAPPz8z66oUtOEv7i4Js2uwzponT5o+gSsGvkeCdw7iLaSJI2UJdAfwjYl2Rvkm3ATcCJFW1OALcMZ7u8HfiJ988labYm3nKpqgtJbgfuA7YAx6rqdJLbhtePACeBG4BF4GfArRtXsiRpnC730KmqkwxCe/TckZHXBXxkuqVJktbDJ0UlqREGuiQ1wkCXpEYY6JLUiNQmbc2SZBn4/kV++3bg6SmW0wf2+fJgny8PL6bPr62quXEXNi3QX4wkC1U1v9l1zJJ9vjzY58vDRvXZWy6S1AgDXZIa0ddAP7rZBWwC+3x5sM+Xhw3pcy/voUuSXqivI3RJ0goGuiQ14pIO9Mtxc+oOff7AsK+nkjyQ5NrNqHOaJvV5pN1bkzyX5H2zrG8jdOlzkuuTPJLkdJJvzbrGaevw2X5lkq8leXTY516v2prkWJLzSR5f5fr086uqLskvBkv1fhd4HbANeBTYv6LNDcDXGeyY9HbgPze77hn0+XeBq4avD14OfR5p968MVv1832bXPYPf85UM9u3dPTx+9WbXPYM+/yXwqeHrOeBHwLbNrv1F9Pn3gTcDj69yfer5dSmP0H+xOXVVPQv8fHPqUb/YnLqqHgSuTHL1rAudool9rqoHqurHw8MHGewO1Wddfs8AHwW+DJyfZXEbpEuf3w/cW1VPAVRV3/vdpc8FvCJJgJczCPQLsy1zeqrqfgZ9WM3U8+tSDvTVNp5eb5s+WW9/PsTgX/g+m9jnJDuA9wJHaEOX3/PrgauSfDPJw0lumVl1G6NLnz8HvInB9pWPAR+rqudnU96mmHp+ddrgYpNMbXPqHuncnyTvYhDov7ehFW28Ln3+DHBHVT03GLz1Xpc+bwXeArwb+DXgP5I8WFXf2ejiNkiXPr8HeAT4A+A3gX9J8u9V9b8bXNtmmXp+XcqBfjluTt2pP0muAe4GDlbVD2dU20bp0ud54PgwzLcDNyS5UFVfmUmF09f1s/10VT0DPJPkfuBaoK+B3qXPtwJ/XYMbzItJvge8Efiv2ZQ4c1PPr0v5lsvluDn1xD4n2Q3cC3ywx6O1URP7XFV7q2pPVe0B/hH48x6HOXT7bH8VeEeSrUleCrwNeGLGdU5Tlz4/xeB/JCR5DfAG4MxMq5ytqefXJTtCr8twc+qOff448Crg88MR64Xq8Up1HfvclC59rqonknwDOAU8D9xdVWOnv/VBx9/zJ4F7kjzG4HbEHVXV22V1k3wJuB7YnmQJ+ARwBWxcfvnovyQ14lK+5SJJWgcDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXi/wEzLMuoeXKqpAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.arange(step_signal.size) / sr\n", "plt.plot(x, step_signal)" ] }, { "cell_type": "markdown", "id": "72031f67-e853-4af1-81af-6953e2b55cc9", "metadata": {}, "source": [ "## ideal peak detector\n", "\n", "$$\n", "\\begin{aligned}\n", "y_{L}[n]=& \\alpha_{R} y_{L}[n-1] \\\\\n", "&+\\left(1-\\alpha_{A}\\right) \\max \\left(x_{L}[n]-y_{L}[n-1], 0\\right)\n", "\\end{aligned}\n", "$$" ] }, { "cell_type": "code", "execution_count": 31, "id": "20321ff7-e3d6-488d-9170-d7e16e8fd16c", "metadata": {}, "outputs": [], "source": [ "def ideal_peak_detector(x, fs, release_t, attack_t):\n", " release_coef = calcTimeCoefficient(release_t, fs)\n", " attack_coef = calcTimeCoefficient(attack_t, fs)\n", " \n", " y = np.zeros(x.size)\n", " y_pre = 0\n", " for i in range(x.size):\n", " y[i] = release_coef*y_pre + (1-attack_coef)*max(x[i]-y_pre, 0)\n", " y_pre = y[i]\n", " \n", " return y" ] }, { "cell_type": "code", "execution_count": 32, "id": "1ec1cb50-37f1-402a-8d4d-b504bb1a6d22", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "attack_time = 0.05\n", "y0 = ideal_peak_detector(step_signal, fs, 0.05, attack_time)\n", "y1 = ideal_peak_detector(step_signal, fs, 0.2, attack_time)\n", "y2 = ideal_peak_detector(step_signal, fs, 0.5, attack_time)\n", "\n", "x = np.arange(step_signal.size) / sr\n", "plt.plot(x, step_signal, label='input')\n", "plt.plot(x, y0, label='50ms release time')\n", "plt.plot(x, y1, label='200ms release time')\n", "plt.plot(x, y2, label='500ms release time')\n", "plt.xlabel('Time(sec)')\n", "plt.ylabel('Voltage')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fb47f9c7-1420-4f92-be52-0082715d5cb8", "metadata": {}, "source": [ "## decoupled peak detector\n", "$$\n", "\\begin{array}{l}\n", "y_{1}[n]=\\max \\left(x_{L}[n], \\alpha_{R} y_{1}[n-1]\\right) \\\\\n", "y_{L}[n]=\\alpha_{A} y_{L}[n-1]+\\left(1-\\alpha_{A}\\right) y_{1}[n]\n", "\\end{array}\n", "$$" ] }, { "cell_type": "code", "execution_count": 42, "id": "3a062252-ae57-4055-9448-98410086b57f", "metadata": {}, "outputs": [], "source": [ "def decoupled_peak_detector(x, fs, release_t, attack_t):\n", " release_coef = calcTimeCoefficient(release_t, fs)\n", " attack_coef = calcTimeCoefficient(attack_t, fs)\n", " \n", " y = np.zeros(x.size)\n", " y1_pre = 0\n", " y_pre = 0\n", " for i in range(x.size):\n", " y1 = max(x[i], release_coef*y1_pre)\n", " y[i] = attack_coef*y_pre + (1-attack_coef)*y1\n", " \n", " y1_pre = y1\n", " y_pre = y[i]\n", " \n", " return y" ] }, { "cell_type": "markdown", "id": "af7aac46-361f-4554-bea6-09329ff3e8e4", "metadata": {}, "source": [ "## branching peak detector\n", "$$\n", "y_{L}[n]=\\left\\{\\begin{array}{ll}\n", "\\alpha_{A} y_{L}[n-1]+\\left(1-\\alpha_{A}\\right) x_{L}[n] & x_{L}[n]>y_{L}[n-1] \\\\\n", "\\alpha_{R} y_{L}[n-1] & x_{L}[n] \\leq y_{L}[n-1]\n", "\\end{array}\\right.\n", "$$" ] }, { "cell_type": "code", "execution_count": 43, "id": "4ac34002-66af-4aa2-9e39-00d91c2b33b1", "metadata": {}, "outputs": [], "source": [ "def branching_peak_detector(x, fs, release_t, attack_t):\n", " release_coef = calcTimeCoefficient(release_t, fs)\n", " attack_coef = calcTimeCoefficient(attack_t, fs)\n", " \n", " y = np.zeros(x.size)\n", " y_pre = 0\n", " for i in range(x.size):\n", " if x[i] > y_pre:\n", " y[i] = attack_coef*y_pre + (1-attack_coef)*x[i]\n", " else:\n", " y[i] = release_coef*y_pre\n", " \n", " y_pre = y[i]\n", " \n", " return y" ] }, { "cell_type": "code", "execution_count": 45, "id": "cd8a7a02-37c3-475b-a780-52ea9398707c", "metadata": {}, "outputs": [ { "data": { "image/png": "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t26VzZs3f6ZMYmKi0foLDAyU1atXN1p7z0OLFi3k0aNHDe/LlSsnQ0JCctTWjz/+KMeOHZutOjt27JDr16+XXbp0eeJ4nz595G+//SallHLkyJFy4cKFUkopN23aJDt27Ch1Op08dOiQrF+/fo5sTU1CUpI8efOxvB8em2G5jL4Dz3PfjMHt27flsWPHpJRShoeHy4oVK8qzZ89KKaV8++235cyZM6WUUs6cOVO+8847Ukopz549K318fGRsbKy8du2aLF++vFG/50+Tk791c6DT6WT0qdPyzsfT5cX6DeS5ylXkBb96MnjyuzJi716pi4/PdZsAf5nO72qBGxHc/ewzrr88OMNX0EsvEzr5dUInv55p2esvD+buZ59ly4bw8HCDcNqePXto1aoVAwcONAhtvfDCC9StW5fq1auzePFiQz17e3s++OADatWqRcOGDbl37x6gV+Ds2bMntWrVolatWobRRlJSEsOHD6d69eq0b9+emJgYQB9OmiJB4enpybRp06hTpw41a9bkQvJuyZCQENq1a0edOnUYOXIk5cqVy/RpdPr06dSrV48aNWowYsQIpJT8+eef+Pv7M2jQIHx9fZk3bx63b9+mVatWtGrVCtDr1Pv5+VG9evUn5LGPHj1K48aNqVWrFvXr139CjgJg06ZNNGrUKFO72rRpg4ODwxPHpJTs2rWLF198EdCL961duxbIWJa6SpUqDBs2jBo1ajBo0CB27NhBkyZNqFixIkeOHAFg7969+Pr64uvrS+3atZ+x+2ns7e2ZOnUqDRo04NChQ/z888+GHckjR458Ynd2CumVSe9evvvuu1SrVg0fHx+D2mtISAi9e/emXr161KtXj4MHD2ZoZ8mSJalTpw6glwepWrWqQUF03bp1DBkyJM17mZYsdcp1T548mbp169K2bVuOHDlCy5YtKV++POvX61OTnD171nCdPj4+T0hb5GeEENjWrEGJqVOoeGA/ZRZ/h0ObNkTs3MnNESO53LQZd6ZMIXL/gbwxUkjPQ+TVV2YjgjszZsigl17O8HW1f395qc9AeaVvv0zLBr30srwzY0am3laj0chatWrJypUrS0dHR+nv7y+llHL37t3Szs5OXrt2zVD24cOHUkopo6OjZfXq1eWDBw9SPLZcv369lFL/BPbJJ59IKaXs27ev/Oqrr6SU+ifK0NBQGRgYKLVa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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "y_decoupled0 = decoupled_peak_detector(step_signal, fs, 0.2, 0.1)\n", "y_decoupled1 = decoupled_peak_detector(step_signal, fs, 0.3, 0.1)\n", "y_branching0 = branching_peak_detector(step_signal, fs, 0.2, 0.1)\n", "y_branching1 = branching_peak_detector(step_signal, fs, 0.3, 0.1)\n", "\n", "x = np.arange(step_signal.size) / sr\n", "plt.plot(x, step_signal, label='input')\n", "plt.plot(x, y_decoupled0, label='Decoupled, attack: 100ms, release: 200ms')\n", "plt.plot(x, y_decoupled1, label='Decoupled, attack: 100ms, release: 300ms')\n", "plt.plot(x, y_branching0, label='Branching, attack: 100ms, release: 200ms')\n", "plt.plot(x, y_branching1, label='Branching, attack: 100ms, release: 300ms')\n", "plt.xlabel('Time(sec)')\n", "plt.ylabel('Voltage')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "9cb5d4b1-9579-46ee-960a-93d57766f1ca", "metadata": {}, "source": [ "## decoupled smooth peak detector\n", "$$\n", "\\begin{array}{l}\n", "y_{1}[n]=\\max \\left(x_{L}[n], \\alpha_{R} y_{1}[n-1]+\\left(1-\\alpha_{R}\\right) x_{L}[n]\\right) \\\\\n", "y_{L}[n]=\\alpha_{A} y_{L}[n-1]+\\left(1-\\alpha_{A}\\right) y_{1}[n]\n", "\\end{array}\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 49, "id": "12ff9235-2500-4182-a601-7fe3ffa2874d", "metadata": {}, "outputs": [], "source": [ "def decoupled_smooth_peak_detector(x, fs, release_t, attack_t):\n", " release_coef = calcTimeCoefficient(release_t, fs)\n", " attack_coef = calcTimeCoefficient(attack_t, fs)\n", " \n", " y = np.zeros(x.size)\n", " y1_pre = 0\n", " y_pre = 0\n", " for i in range(x.size):\n", " y1 = max(x[i], release_coef*y1_pre + (1-release_coef)*x[i])\n", " y[i] = attack_coef*y_pre + (1-attack_coef)*y1\n", " \n", " y1_pre = y1\n", " y_pre = y[i]\n", " \n", " return y" ] }, { "cell_type": "markdown", "id": "bc4da3b4-0e6e-420c-9a70-58d6ce418115", "metadata": {}, "source": [ "## branching smooth peak detector\n", "$$\n", "y_{L}[n]=\\left\\{\\begin{array}{ll}\n", "\\alpha_{A} y_{L}[n-1]+\\left(1-\\alpha_{A}\\right) x_{L}[n] & x_{L}[n]>y_{L}[n-1] \\\\\n", "\\alpha_{R} y_{L}[n-1]+\\left(1-\\alpha_{R}\\right) x_{L}[n] & x_{L}[n] \\leq y_{L}[n-1]\n", "\\end{array}\\right.\n", "$$" ] }, { "cell_type": "code", "execution_count": 50, "id": "d3b61802-42ef-476c-8957-13270659f886", "metadata": {}, "outputs": [], "source": [ "def branching_smooth_peak_detector(x, fs, release_t, attack_t):\n", " release_coef = calcTimeCoefficient(release_t, fs)\n", " attack_coef = calcTimeCoefficient(attack_t, fs)\n", " \n", " y = np.zeros(x.size)\n", " y_pre = 0\n", " for i in range(x.size):\n", " if x[i] > y_pre:\n", " y[i] = attack_coef*y_pre + (1-attack_coef)*x[i]\n", " else:\n", " y[i] = release_coef*y_pre + (1-release_coef)*x[i]\n", " \n", " y_pre = y[i]\n", " \n", " return y" ] }, { "cell_type": "code", "execution_count": 54, "id": "60b8dd02-8268-4d2e-8915-47a02cc10c56", "metadata": {}, "outputs": [], "source": [ "def genetate_step_plateau_signal(fs):\n", " first_part_length = int(fs * 0.3);\n", " second_part_length = int(fs * 0.7)\n", " \n", " all_ones = np.ones(first_part_length)\n", " plateau_part = np.ones(second_part_length) * 0.25\n", " result = np.append(all_ones, plateau_part)\n", " \n", " return result;" ] }, { "cell_type": "code", "execution_count": 55, "id": "fc785489-126e-4ea8-b74f-0a44e288e91f", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "attack_time = 0.05\n", "release_time = 0.3\n", "step_plateau_signal = genetate_step_plateau_signal(fs)\n", "\n", "y_decoupled = decoupled_peak_detector(step_plateau_signal, fs, release_time, attack_time)\n", "y_decoupled_smooth = decoupled_smooth_peak_detector(step_plateau_signal, fs, release_time, attack_time)\n", "y_branching = branching_peak_detector(step_plateau_signal, fs, release_time, attack_time)\n", "y_branching_smooth = branching_smooth_peak_detector(step_plateau_signal, fs, release_time, attack_time)\n", "\n", "x = np.arange(step_signal.size) / sr\n", "plt.plot(x, step_plateau_signal, label='input')\n", "plt.plot(x, y_decoupled, label='Decoupled')\n", "plt.plot(x, y_decoupled_smooth, label='Decoupled smooth')\n", "plt.plot(x, y_branching, label='Branching')\n", "plt.plot(x, y_branching_smooth, label='Branching smooth')\n", "plt.xlabel('Time(sec)')\n", "plt.ylabel('Voltage')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "d4f2801a-f45c-4273-bbbe-5ada1a61984a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.4" } }, "nbformat": 4, "nbformat_minor": 5 }