demod wip

This commit is contained in:
jaseg 2020-03-09 13:23:35 +01:00
parent b4d5293d04
commit 9debe084fc
5 changed files with 289 additions and 60 deletions

View file

@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 121,
"metadata": {},
"outputs": [],
"source": [
@ -14,11 +14,11 @@
"from collections import defaultdict\n",
"import json\n",
"\n",
"\n",
"from matplotlib import pyplot as plt\n",
"import matplotlib\n",
"import numpy as np\n",
"from scipy import signal as sig\n",
"from scipy import fftpack as fftpack\n",
"import ipywidgets\n",
"\n",
"from tqdm.notebook import tqdm\n",
@ -29,7 +29,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 108,
"metadata": {},
"outputs": [],
"source": [
@ -38,7 +38,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 109,
"metadata": {},
"outputs": [],
"source": [
@ -47,7 +47,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 110,
"metadata": {},
"outputs": [],
"source": [
@ -73,7 +73,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 111,
"metadata": {},
"outputs": [],
"source": [
@ -93,7 +93,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 112,
"metadata": {},
"outputs": [],
"source": [
@ -107,7 +107,7 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 113,
"metadata": {},
"outputs": [
{
@ -127,7 +127,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 114,
"metadata": {},
"outputs": [],
"source": [
@ -142,7 +142,7 @@
},
{
"cell_type": "code",
"execution_count": 26,
"execution_count": 115,
"metadata": {},
"outputs": [],
"source": [
@ -162,7 +162,67 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 125,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "4330b0f8ceea4d5d922d2063a81554ca",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.psd(colorednoise.powerlaw_psd_gaussian(1, 1000))\n",
"None"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"start 14880 end 24800 rec 29760\n"
]
}
],
"source": [
"test_duration = 32\n",
"test_nbits = 5\n",
"test_signal_amplitude=2.0e-3\n",
"test_decimation=10\n",
"test_signal_amplitude = 200e-3\n",
"noise_level = 10e-3\n",
"\n",
"#test_data = np.random.RandomState(seed=0).randint(0, 2 * (2**test_nbits), test_duration)\n",
"#test_data = np.array([0, 1, 2, 3] * 50)\n",
"test_data = np.array(range(test_duration))\n",
"signal = np.repeat(modulate(test_data, test_nbits, pad=False) * 2.0 - 1, test_decimation) * test_signal_amplitude\n",
"noise = colorednoise.powerlaw_psd_gaussian(1, len(signal)*3) * noise_level\n",
"noise[int(1.5*len(signal)):][:len(signal)] += signal\n",
"print('start', int(1.5*len(signal)), 'end', int(1.5*len(signal))+len(signal), 'rec', len(noise))\n",
"\n",
"with open(f'dsss_test_signals/dsss_test_noiseless_padded.bin', 'wb') as f:\n",
" for e in noise:\n",
" f.write(struct.pack('<f', e))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@ -176,13 +236,13 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "373401133cfe408aa15738e48c58dfaa",
"model_id": "",
"version_major": 2,
"version_minor": 0
},
@ -198,6 +258,46 @@
"plot_distance_func()"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-104-abeb28a85dfa>:5: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" fig, ax = plt.subplots()\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#nonlinear_distance_impl = lambda x: np.exp(-np.abs(x)/10) * x**4\n",
"nonlinear_distance_impl = lambda x: np.exp(-((x/10 - 0.5)%1 - 0.5)**2 / (2*1.2/10**2))\n",
"\n",
"def plot_distance_func_impl():\n",
" fig, ax = plt.subplots()\n",
" x = np.linspace(-30, 30, 10000)\n",
" ax.plot(x, nonlinear_distance_impl(x))\n",
"\n",
"plot_distance_func_impl()"
]
},
{
"cell_type": "code",
"execution_count": 11,