diff options
-rw-r--r-- | doc/thesis/chapters/implementation.tex | 7 | ||||
-rw-r--r-- | notebooks/FIR_mehrere.ipynb | 489 | ||||
-rw-r--r-- | simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc | 77 | ||||
-rwxr-xr-x | simulation/QAM_Fading/qam_fading_block.py | 13 | ||||
-rw-r--r-- | src/gr-fadingui/grc/CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/gr-fadingui/grc/fadingui_multipath_fading.block.yml | 41 | ||||
-rw-r--r-- | src/gr-fadingui/python/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/gr-fadingui/python/__init__.py | 1 | ||||
-rw-r--r-- | src/gr-fadingui/python/multipath_fading.py | 91 | ||||
-rwxr-xr-x | src/gr-fadingui/python/qa_multipath_fading.py | 41 | ||||
-rw-r--r-- | src/gr-fadingui/python/xor_frame_sync.py | 2 |
11 files changed, 387 insertions, 382 deletions
diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex index 27a8d41..91a1856 100644 --- a/doc/thesis/chapters/implementation.tex +++ b/doc/thesis/chapters/implementation.tex @@ -72,10 +72,15 @@ Here its possible to add some AWGN noise in the channel line. Different paramete To get a basic line for further simulations a 16QAM has been made. The results of this simulation are shown in \figref{fig:simul16QAM} and \figref{fig:simul16QAM_1} as the red Signal. In \tabref{tab:modulation_settings} some importer Parameter settings for a different modulation scheme are mentioned. -A FIR-Filter was added in the Channel to create a time delay between tow paths. In \figref{fig:simul16QAM} the result includes a direct path and a delayed one. In the plot of \figref{fig:simul16QAM_1} the transmission line dosn't include a direct path. It's impotent to mention that the delay should be smaller than the symbol rate or a multiple of it. +A FIR-Filter was added in the Channel to create a time delay between tow paths. In \figref{fig:simul16QAM} the result includes a direct path and a delayed one. In the plot of \figref{fig:simul16QAM_1} the transmission line dosn't include a direct path. %It's impotent to mention that the delay should be smaller than the symbol rate or a multiple of it. (Stimmt dies , not sure any more) For the a first simulation with some fading the 16QAM simulation model has been extended with a FIR-Filter in the Chanel. The results of this simulation are shown in \figref{fig:simul16QAM} and \figref{fig:simul16QAM_1} as the blue Signal. +%TO DO: übersetzen +Für das veranschaulichen des Fading effekts wurde ein eigener Block kreaiert und in den Channel implementiert. Dieser Block basiert auf einem FIR Filter. Es kann mit direcktem Pfad oder ohne dargestellt werden ( Line of Side ). Mit Hilfe des FIR filters wird die Verspätung der nebenpfaden dargestellt. Es ist möglich beliebig viele dieser Pfade mit unterschiedlicher stärke zu simulieren. + + + \section{Hardware} diff --git a/notebooks/FIR_mehrere.ipynb b/notebooks/FIR_mehrere.ipynb index cb4a968..cdd7e25 100644 --- a/notebooks/FIR_mehrere.ipynb +++ b/notebooks/FIR_mehrere.ipynb @@ -99,7 +99,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -111,7 +111,7 @@ } ], "source": [ - "d = 3.3\n", + "d =0\n", "k = np.linspace(-5,10,1000)\n", "h_ideal = np.sinc(k-d)\n", "plt.plot(k,h_ideal)\n", @@ -127,7 +127,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -170,7 +170,7 @@ "amplitude = 1\n", "\n", "d_int = int(np.floor(delay))\n", - "d_frac = delay - d_int\n", + "#d_frac = delay - d_int\n", "\n", "h_int = np.concatenate([np.zeros(d_int-1), [amplitude], np.zeros(3)])" ] @@ -182,8 +182,8 @@ "metadata": {}, "outputs": [], "source": [ - "H_int = fft(h_int)\n", - "h = ifft(H_int)" + "#H_int = fft(h_int)\n", + "#h = ifft(H_int)" ] }, { @@ -204,7 +204,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -216,8 +216,9 @@ } ], "source": [ - "test = np.random.randint(0, 10, size = 20)\n", - "y = np.convolve(test.real, h_int)\n", + "test = np.random.randint(0, 10, size = 20)# Signal\n", + "\n", + "y = np.convolve(test.real, h_int)#Faltung\n", "\n", "plt.stem(test, linefmt=\"C0-\")\n", "plt.stem(y, linefmt='C1-')" @@ -232,7 +233,7 @@ { "data": { "text/plain": [ - "array([3, 6, 5, 2, 9, 9, 5, 9, 2, 1, 5, 8, 0, 5, 1, 6, 9, 9, 9, 8])" + "array([9, 9, 2, 7, 8, 2, 8, 6, 2, 8, 4, 5, 7, 8, 2, 3, 0, 6, 4, 6])" ] }, "execution_count": 11, @@ -274,8 +275,8 @@ { "data": { "text/plain": [ - "array([0., 0., 3., 6., 5., 2., 9., 9., 5., 9., 2., 1., 5., 8., 0., 5., 1.,\n", - " 6., 9., 9., 9., 8., 0., 0., 0.])" + "array([0., 0., 9., 9., 2., 7., 8., 2., 8., 6., 2., 8., 4., 5., 7., 8., 2.,\n", + " 3., 0., 6., 4., 6., 0., 0., 0.])" ] }, "execution_count": 13, @@ -297,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 17, "id": "d51e107c", "metadata": {}, "outputs": [ @@ -305,9 +306,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "System frequencies fs=10, T=0.1\n", - "Tap with amplitude=4, delay=0.7250000000000001\n", - "Creating filter of order N=15.0\n" + "System frequencies fs=100, T=0.01\n", + "Tap with amplitude=4, delay=0.0725\n", + "Creating filter of order N=15.0\n", + "[-0.12418156 0.14405061 -0.17148882 0.21183913 -0.2770204 0.40014058\n", + " -0.72025305 3.60126526 1.20042175 -0.51446647 0.32738775 -0.24008435\n", + " 0.18954028 -0.15657675 0.13338019 -0.11616985]\n" ] }, { @@ -316,13 +320,13 @@ "<StemContainer object of 3 artists>" ] }, - "execution_count": 14, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAPE0lEQVR4nO3df2zcd33H8ddrjjtcfsigmLVx0jlDnaEqG0YWkEWapkLlDFAb8RdsQ9WGlP4xtjKxZA1I0/bH2kiZ2JCGtkWFtdKqrFXIsopRTESZEFNp68Rt0iT1QGOkcdLFqPICm0US570/7tzazjk+O/e97/t7fj4kK77v2ZfX+e5e97nP9/u5c0QIAJDXz5UdAABwbRQ1ACRHUQNAchQ1ACRHUQNAcuuKuND169fHwMBAERcNAB3pyJEjP46IvkbnFVLUAwMDGhsbK+KiAaAj2f7RUucx9QEAyVHUAJAcRQ0AyVHUAJAcRQ0AyRVy1AfQLofGJ7V3dEJnp2e0obdHO0cGtX2ov+xYQEtR1KisQ+OT2n3wuGYuzUqSJqdntPvgcUmirNFRmPpAZe0dnXitpOfMXJrV3tGJkhIBxaCoUVlnp2dWtB2oKooalbWht2dF24GqoqhRWTtHBtXT3bVgW093l3aODJaUCCgGOxNRWXM7DHcdOKaLs1fUz1Ef6FAUNSpt+1C/9j97WpL02L1bSk4DFIOpDwBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOQoagBIjqIGgOSWLWrbb7D9rO0XbJ+w/eftCAYAqGnmU8h/JumOiPip7W5J37X9ZER8r+BsAAA1UdQREZJ+Wj/ZXf+KIkMBAF7X1By17S7bz0s6L+lwRDzT4Gd22B6zPTY1NdXimACwdjVV1BExGxHvkbRR0vts397gZ/ZFxHBEDPf19bU4JgCsXSs66iMipiX9m6RtRYQBAFytmaM++mz31r/vkfQhSS8VnAsAUNfMUR83S3rEdpdqxf54RHyt2FgAgDnNHPVxTNJQG7IAABpgZSIAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0Byyxa17U22v237lO0Ttu9rRzAAQM26Jn7msqTPRsRR22+WdMT24Yg4WXA2AICaGFFHxLmIOFr//ieSTknqLzoYAKBmRXPUtgckDUl6psF5O2yP2R6bmppqUTwAQNNFbftNkr4q6TMRcWHx+RGxLyKGI2K4r6+vlRkBYE1rqqhtd6tW0o9GxMFiIwEA5mvmqA9L+rKkUxHxheIjAQDma2ZEvVXSJyXdYfv5+teHC84FAKhb9vC8iPiuJLchCwCgAVYmAkByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJEdRA0ByFDUAJLeu7ABAJofGJ7V3dEJnp2e0obdHO0cGtX2ov+xYWOMoaqDu0Pikdh88rplLs5KkyekZ7T54XJIoa5SKqQ+gbu/oxGslPWfm0qz2jk6UlAiooaiBurPTMyvaDrQLRQ3UbejtWdF2oF0oaqBu58igerq7Fmzr6e7SzpHBkhIBNexMBOrmdhjuOnBMF2evqJ+jPpAERQ3Ms32oX/ufPS1JeuzeLSWnAWqY+gCA5JYtattfsX3e9ovtCAQAWKiZEfXDkrYVnAMAsIRlizoiviPp1TZkAQA00LI5ats7bI/ZHpuammrVxQLAmteyoo6IfRExHBHDfX19rbpYAFjzOOoDAJKjqAEguWYOz9sv6WlJg7bP2P5U8bEAAHOWXZkYEZ9oRxAAQGNMfQBAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAcst+ZiLWrkPjk9o7OqGz0zPa0NujnSOD2j7UX3YsYM2hqNHQofFJ7T54XDOXZiVJk9Mz2n3wuCRR1kCbMfWBhvaOTrxW0nNmLs1q7+hESYmAtYsRNRo6Oz2zou1oH6ak1h5G1GhoQ2/PirajPeampCanZxR6fUrq0Phk2dFQIIoaDe0cGVRPd9eCbT3dXdo5MlhSIkhMSa1VTH2gobmX0rsOHNPF2Svq5yV2CkxJrU0UNZa0fahf+589LUl67N4tJaeBVJt6mmxQykxJdTamPkp0aHxSW/c8pc33/6u27nmKeUYsiymptYkRdUk4ThmrUYUpKY5KaT2KuiTX2inEnRrXknlKigFIMTq2qLM/q7NTCJ2IAUgxOrKoq/Cszk4hdKKqDECyD+QW68idiVU41pSdQuhEVVgoVcVFQx1Z1FV4Vt8+1K8HP/Zu3dBVuwn6e3v04MfenfpZHVhOFQYgVRjILdaRUx9VmVbIvFMIWI0qHJVShYHcYh05oq7CszrQqbYP9Wvoll69f/Pb9O/335GqpKVqTM8s1pFFzbQCgKVUcSDX1NSH7W2SviipS9JDEbGn0FQtwLQCgEaqMD2z2LJFbbtL0pck3SnpjKTnbD8RESeLDgcARajaQM4Rce0fsLdI+rOIGKmf3i1JEfHgUr8zPDwcY2NjKw7zygMP6GenXlrx7y3l5LkLkqTbbn5Lyy6z1bJnzJ5Pan3GtXidWy17PqmYjD//rnfqps99blW/a/tIRAw3Oq+ZqY9+SS/PO31G0vsb/Cc7JO2QpFtuuWUVMaUnj5/TTVMXWvaHa/WdpIgbNnvGIh5o2TNmv01afVlS/ttEyp/x5LkLeuXyOf1uSy+1ppmidoNtVw3DI2KfpH1SbUS9mjDf+I3fkpT3pciuv39aUt58EhkzqsL1JeP1m8tXRFE3c9THGUmb5p3eKOlsAVkAoJIOjU9q/PS0nvnhq4W8ZXEzRf2cpFttb7Z9g6SPS3qipSlU/BUFgCLMLUm/OHtFUjFL0pct6oi4LOnTkkYlnZL0eEScaFkCteeKAqiuzAO5dixJb2rBS0R8PSJ+OSLeERF/0bL/va4Ka+8z31GATpZ9INeOJekpViZmX3uf/Y4CdLLsA7l2LElPUdTZ195nv6MAnSz7QK4dS9JTFHX2tffZ7yjA9cg+rZd9IDf33kL9vT2yinlvoRRvczp3hbJ+4kJV3jYVWKmlpvWkPJ+GtHNkcMEnNkm5BnJS7W9V5N8rRVFLxV/R61GFO4r0+sjo4uwVbd3zVKonO+RUhc84zD6Qa4c0RZ1ZFe4oVRgZIZ+qTOtlHsi1A0XdpOx3lCqMjJAP03rVkGJnIq5fVUZGyCX7jnzUUNQdIvueceTUjiMWcP2Y+ugQVdnhiXyyT+uBou4YVdjhCWB1KOoOwsgI6EzMUQNAchQ1ACRHUQNAchQ1UKDsb3iEaqCogYLwPuZoFYoaKAjvY45WoaiBgrCsH61CUQMFYVk/WoWiBgrCGx6hVViZCBSEZf1oFYoaKBDL+tEKTH0AQHIUNdqKBSDAylHUaBsWgACrQ1GjbVgAAqwORY22YQEIsDoUNdqGBSDA6lDUaBsWgACrw3HUaBsWgACrQ1GjrVgAAqwcUx8AkBxFDQDJUdQAkBxFDQDJUdQAkJwjovUXak9J+tEqf329pB+3ME6rZc8nkbEVsueT8mfMnk/KlfEXI6Kv0RmFFPX1sD0WEcNl51hK9nwSGVshez4pf8bs+aRqZJSY+gCA9ChqAEguY1HvKzvAMrLnk8jYCtnzSfkzZs8nVSNjvjlqAMBCGUfUAIB5KGoASC5NUdveZnvC9g9s3192nsVsb7L9bdunbJ+wfV/ZmRqx3WV73PbXys7SiO1e2wdsv1T/W24pO9Nitv+ofhu/aHu/7TeUnOcrts/bfnHetrfZPmz7+/V/35ow49767XzM9j/b7i0xYsOM8877Y9the30Z2ZaToqhtd0n6kqTflHSbpE/Yvq3cVFe5LOmzEfEuSR+Q9PsJM0rSfZJOlR3iGr4o6RsR8U5Jv6pkWW33S/pDScMRcbukLkkfLzeVHpa0bdG2+yV9KyJulfSt+ukyPayrMx6WdHtE/Iqk/5C0u92hFnlYV2eU7U2S7pR0ut2BmpWiqCW9T9IPIuI/I+KipH+SdHfJmRaIiHMRcbT+/U9UK5hUb6xse6Okj0h6qOwsjdh+i6Rfl/RlSYqIixExXWqoxtZJ6rG9TtKNks6WGSYiviPp1UWb75b0SP37RyRtb2emxRpljIhvRsTl+snvSdrY9mAL8zT6O0rSX0naJSntkRVZirpf0svzTp9RshKcz/aApCFJz5QcZbG/Vu0Od6XkHEv5JUlTkv6hPj3zkO03lh1qvoiYlPSXqo2uzkn6n4j4ZrmpGvqFiDgn1QYRkt5ecp7l/J6kJ8sOsZjtuyRNRsQLZWe5lixF7QbbUj672X6TpK9K+kxEXCg7zxzbH5V0PiKOlJ3lGtZJeq+kv42IIUn/q/Jfsi9Qn+u9W9JmSRskvdH275Sbqtpsf161qcNHy84yn+0bJX1e0p+WnWU5WYr6jKRN805vVMkvNxux3a1aST8aEQfLzrPIVkl32f4v1aaO7rD9j+VGusoZSWciYu6VyAHVijuTD0n6YURMRcQlSQcl/VrJmRr5b9s3S1L93/Ml52nI9j2SPirptyPfoo13qPaE/EL9cbNR0lHbN5WaqoEsRf2cpFttb7Z9g2o7b54oOdMCtq3a3OqpiPhC2XkWi4jdEbExIgZU+/s9FRGpRoIR8Yqkl23Pfez4ByWdLDFSI6clfcD2jfXb/INKtsOz7glJ99S/v0fSv5SYpSHb2yT9iaS7IuL/ys6zWEQcj4i3R8RA/XFzRtJ76/fTVFIUdX2Hw6cljar2oHg8Ik6Um+oqWyV9UrWR6vP1rw+XHaqC/kDSo7aPSXqPpAfKjbNQfbR/QNJRScdVe4yUuszY9n5JT0satH3G9qck7ZF0p+3vq3bEwp6EGf9G0pslHa4/Xv4uYcZKYAk5ACSXYkQNAFgaRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJDc/wNYvQCENR4byAAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -334,7 +338,7 @@ } ], "source": [ - "samp_rate = 10\n", + "samp_rate = 100\n", "period = 1 / samp_rate\n", "print(f\"System frequencies fs={samp_rate}, T={period}\")\n", "\n", @@ -348,31 +352,40 @@ "skip = np.floor(delay / period) - (order - 1) / 2 #M\n", "assert skip >= 0\n", "\n", - "samples = np.arange(0, order + 1) * period - delay\n", - "h = ampl*(np.sin(samp_rate * samples) / (samp_rate * samples)) #sinc\n", + "samples = np.arange(0, order +1) * period - delay\n", "\n", + "h = ampl*(np.sin(samp_rate * samples*np.pi) / (samp_rate * samples * np.pi)) #sinc\n", + "print(h)\n", "plt.stem(h)" ] }, { "cell_type": "code", - "execution_count": 15, - "id": "c89c83ae", + "execution_count": 26, + "id": "70acad87", "metadata": {}, "outputs": [ { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tap with amplitude=1, delay=1.25\n", + "Creating filter of order N=3.0\n" + ] + }, + { "data": { "text/plain": [ "<StemContainer object of 3 artists>" ] }, - "execution_count": 15, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -384,297 +397,30 @@ } ], "source": [ - "t = np.linspace(0, delay + period, samp_rate)\n", - "f = np.sin(2 * np.pi * samp_rate * t)\n", "\n", - "f_shift = np.convolve(h, f)[:len(f)]\n", + "delay = 1.25\n", + "ampl = 1\n", + "print(f\"Tap with amplitude={ampl}, delay={delay}\")\n", "\n", - "plt.stem(t, f, linefmt=\"C0-\")\n", - "plt.stem(t, f_shift, linefmt='C1-')" - ] - }, - { - "cell_type": "markdown", - "id": "15f663c6", - "metadata": {}, - "source": [ - "# Test Delay " + "order = 2 * np.floor(delay) + 1 #N\n", + "print(f\"Creating filter of order N={order}\")\n", + "\n", + "samples = np.arange(0, order +1) - delay\n", + "\n", + "h = ampl*(np.sinc(samples)) #sinc\n", + "\n", + "plt.stem(samples, h)" ] }, { "cell_type": "code", - "execution_count": 19, - "id": "afb9e748", + "execution_count": 27, + "id": "c89c83ae", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "System frequencies fs=10, T=0.1\n", - "Tap with amplitude=4, delay_freq=0.7250000000000001, delay_int=7\n", - "Creating filter of order N=15.0\n", - "samples_freq[-0.725 -0.625 -0.525 -0.425 -0.325 -0.225 -0.125 -0.025 0.075 0.175\n", - " 0.275 0.375 0.475 0.575 0.675 0.775]\n", - "samples_int[0 1 2 3 4 5 6]\n", - "h_freq[ 0.45411359 -0.0212347 -0.65442628 -0.84234293 -0.13316324 1.38324124\n", - " 3.03675078 3.95846335 3.63540672 2.24911074 0.55514326 -0.60966541\n", - " -0.84150972 -0.35358545 0.26669278 0.51334131]\n", - "h_ideal[ 3.10262780e-02 2.99830750e-02 2.88692595e-02 2.76870500e-02\n", - " 2.64388245e-02 2.51271158e-02 2.37546068e-02 2.23241246e-02\n", - " 2.08386353e-02 1.93012375e-02 1.77151562e-02 1.60837364e-02\n", - " 1.44104353e-02 1.26988161e-02 1.09525398e-02 9.17535764e-03\n", - " 7.37110346e-03 5.54368515e-03 3.69707648e-03 1.83530854e-03\n", - " -3.75389411e-05 -1.91734645e-03 -3.79996360e-03 -5.68121819e-03\n", - " -7.55692534e-03 -9.42289669e-03 -1.12749496e-02 -1.31089164e-02\n", - " -1.49206538e-02 -1.67060518e-02 -1.84610433e-02 -2.01816127e-02\n", - " -2.18638056e-02 -2.35037373e-02 -2.50976019e-02 -2.66416805e-02\n", - " -2.81323506e-02 -2.95660937e-02 -3.09395037e-02 -3.22492951e-02\n", - " -3.34923102e-02 -3.46655271e-02 -3.57660666e-02 -3.67911991e-02\n", - " -3.77383512e-02 -3.86051122e-02 -3.93892397e-02 -4.00886655e-02\n", - " -4.07015008e-02 -4.12260407e-02 -4.16607694e-02 -4.20043635e-02\n", - " -4.22556964e-02 -4.24138408e-02 -4.24780722e-02 -4.24478711e-02\n", - " -4.23229246e-02 -4.21031285e-02 -4.17885880e-02 -4.13796183e-02\n", - " -4.08767448e-02 -4.02807029e-02 -3.95924372e-02 -3.88131000e-02\n", - " -3.79440498e-02 -3.69868493e-02 -3.59432624e-02 -3.48152516e-02\n", - " -3.36049739e-02 -3.23147774e-02 -3.09471966e-02 -2.95049475e-02\n", - " -2.79909227e-02 -2.64081855e-02 -2.47599639e-02 -2.30496441e-02\n", - " -2.12807638e-02 -1.94570050e-02 -1.75821866e-02 -1.56602563e-02\n", - " -1.36952827e-02 -1.16914466e-02 -9.65303250e-03 -7.58441946e-03\n", - " -5.49007187e-03 -3.37453002e-03 -1.24240037e-03 9.01654268e-04\n", - " 3.05292479e-03 5.20666595e-03 7.35810667e-03 9.50246043e-03\n", - " 1.16349357e-02 1.37507466e-02 1.58451231e-02 1.79133223e-02\n", - " 1.99506380e-02 2.19524121e-02 2.39140447e-02 2.58310043e-02\n", - " 2.76988383e-02 2.95131833e-02 3.12697744e-02 3.29644561e-02\n", - " 3.45931908e-02 3.61520691e-02 3.76373182e-02 3.90453114e-02\n", - " 4.03725766e-02 4.16158043e-02 4.27718560e-02 4.38377715e-02\n", - " 4.48107764e-02 4.56882893e-02 4.64679278e-02 4.71475148e-02\n", - " 4.77250846e-02 4.81988877e-02 4.85673958e-02 4.88293061e-02\n", - " 4.89835454e-02 4.90292733e-02 4.89658850e-02 4.87930140e-02\n", - " 4.85105339e-02 4.81185596e-02 4.76174484e-02 4.70078001e-02\n", - " 4.62904572e-02 4.54665036e-02 4.45372638e-02 4.35043009e-02\n", - " 4.23694144e-02 4.11346372e-02 3.98022324e-02 3.83746893e-02\n", - " 3.68547189e-02 3.52452494e-02 3.35494203e-02 3.17705767e-02\n", - " 2.99122632e-02 2.79782166e-02 2.59723589e-02 2.38987898e-02\n", - " 2.17617778e-02 1.95657526e-02 1.73152954e-02 1.50151300e-02\n", - " 1.26701130e-02 1.02852236e-02 7.86555385e-03 5.41629729e-03\n", - " 2.94273859e-03 4.50242226e-04 -2.05575891e-03 -4.56977505e-03\n", - " -7.08627130e-03 -9.59967955e-03 -1.21044105e-02 -1.45948660e-02\n", - " -1.70654508e-02 -1.95105853e-02 -2.19247178e-02 -2.43023365e-02\n", - " -2.66379819e-02 -2.89262594e-02 -3.11618507e-02 -3.33395267e-02\n", - " -3.54541587e-02 -3.75007304e-02 -3.94743496e-02 -4.13702594e-02\n", - " -4.31838493e-02 -4.49106660e-02 -4.65464241e-02 -4.80870163e-02\n", - " -4.95285232e-02 -5.08672230e-02 -5.20996007e-02 -5.32223566e-02\n", - " -5.42324150e-02 -5.51269319e-02 -5.59033024e-02 -5.65591677e-02\n", - " -5.70924219e-02 -5.75012172e-02 -5.77839701e-02 -5.79393658e-02\n", - " -5.79663626e-02 -5.78641958e-02 -5.76323807e-02 -5.72707150e-02\n", - " -5.67792814e-02 -5.61584481e-02 -5.54088703e-02 -5.45314899e-02\n", - " -5.35275352e-02 -5.23985195e-02 -5.11462399e-02 -4.97727743e-02\n", - " -4.82804791e-02 -4.66719848e-02 -4.49501926e-02 -4.31182690e-02\n", - " -4.11796405e-02 -3.91379878e-02 -3.69972390e-02 -3.47615623e-02\n", - " -3.24353588e-02 -3.00232534e-02 -2.75300867e-02 -2.49609055e-02\n", - " -2.23209526e-02 -1.96156571e-02 -1.68506230e-02 -1.40316187e-02\n", - " -1.11645646e-02 -8.25552183e-03 -5.31067933e-03 -2.33634137e-03\n", - " 6.61085556e-04 3.67510610e-03 6.69914965e-03 9.72658419e-03\n", - " 1.27507304e-02 1.57648758e-02 1.87622895e-02 2.17362360e-02\n", - " 2.46799907e-02 2.75868541e-02 3.04501664e-02 3.32633224e-02\n", - " 3.60197865e-02 3.87131066e-02 4.13369293e-02 4.38850140e-02\n", - " 4.63512470e-02 4.87296560e-02 5.10144235e-02 5.31999005e-02\n", - " 5.52806201e-02 5.72513099e-02 5.91069054e-02 6.08425615e-02\n", - " 6.24536651e-02 6.39358460e-02 6.52849882e-02 6.64972404e-02\n", - " 6.75690260e-02 6.84970525e-02 6.92783207e-02 6.99101326e-02\n", - " 7.03900998e-02 7.07161501e-02 7.08865344e-02 7.08998325e-02\n", - " 7.07549582e-02 7.04511638e-02 6.99880440e-02 6.93655393e-02\n", - " 6.85839378e-02 6.76438776e-02 6.65463469e-02 6.52926850e-02\n", - " 6.38845812e-02 6.23240737e-02 6.06135477e-02 5.87557322e-02\n", - " 5.67536966e-02 5.46108466e-02 5.23309188e-02 4.99179751e-02\n", - " 4.73763961e-02 4.47108739e-02 4.19264040e-02 3.90282768e-02\n", - " 3.60220681e-02 3.29136291e-02 2.97090759e-02 2.64147779e-02\n", - " 2.30373461e-02 1.95836204e-02 1.60606568e-02 1.24757134e-02\n", - " 8.83623633e-03 5.14984533e-03 1.42431836e-03 -2.33242388e-03\n", - " -6.11233392e-03 -9.90725388e-03 -1.37089322e-02 -1.75090406e-02\n", - " -2.12991916e-02 -2.50709556e-02 -2.88158792e-02 -3.25255026e-02\n", - " -3.61913783e-02 -3.98050887e-02 -4.33582646e-02 -4.68426034e-02\n", - " -5.02498876e-02 -5.35720026e-02 -5.68009551e-02 -5.99288913e-02\n", - " -6.29481141e-02 -6.58511015e-02 -6.86305235e-02 -7.12792593e-02\n", - " -7.37904144e-02 -7.61573366e-02 -7.83736325e-02 -8.04331828e-02\n", - " -8.23301579e-02 -8.40590322e-02 -8.56145984e-02 -8.69919811e-02\n", - " -8.81866500e-02 -8.91944321e-02 -9.00115233e-02 -9.06345000e-02\n", - " -9.10603287e-02 -9.12863762e-02 -9.13104182e-02 -9.11306474e-02\n", - " -9.07456810e-02 -9.01545664e-02 -8.93567878e-02 -8.83522701e-02\n", - " -8.71413833e-02 -8.57249448e-02 -8.41042223e-02 -8.22809343e-02\n", - " -8.02572502e-02 -7.80357901e-02 -7.56196229e-02 -7.30122635e-02\n", - " -7.02176692e-02 -6.72402358e-02 -6.40847914e-02 -6.07565904e-02\n", - " -5.72613061e-02 -5.36050227e-02 -4.97942257e-02 -4.58357923e-02\n", - " -4.17369800e-02 -3.75054154e-02 -3.31490810e-02 -2.86763017e-02\n", - " -2.40957312e-02 -1.94163358e-02 -1.46473796e-02 -9.79840698e-03\n", - " -4.87922599e-03 1.00110106e-04 5.12932134e-03 1.01979203e-02\n", - " 1.52952321e-02 2.04104147e-02 2.55324798e-02 3.06503146e-02\n", - " 3.57527030e-02 4.08283487e-02 4.58658970e-02 5.08539582e-02\n", - " 5.57811308e-02 6.06360245e-02 6.54072845e-02 7.00836144e-02\n", - " 7.46538010e-02 7.91067371e-02 8.34314465e-02 8.76171070e-02\n", - " 9.16530745e-02 9.55289065e-02 9.92343857e-02 1.02759543e-01\n", - " 1.06094680e-01 1.09230392e-01 1.12157592e-01 1.14867527e-01\n", - " 1.17351807e-01 1.19602419e-01 1.21611751e-01 1.23372609e-01\n", - " 1.24878241e-01 1.26122348e-01 1.27099109e-01 1.27803190e-01\n", - " 1.28229769e-01 1.28374542e-01 1.28233745e-01 1.27804164e-01\n", - " 1.27083144e-01 1.26068609e-01 1.24759063e-01 1.23153608e-01\n", - " 1.21251946e-01 1.19054389e-01 1.16561864e-01 1.13775922e-01\n", - " 1.10698736e-01 1.07333109e-01 1.03682471e-01 9.97508850e-02\n", - " 9.55430408e-02 9.10642566e-02 8.63204746e-02 8.13182571e-02\n", - " 7.60647807e-02 7.05678297e-02 6.48357883e-02 5.88776313e-02\n", - " 5.27029141e-02 4.63217610e-02 3.97448529e-02 3.29834130e-02\n", - " 2.60491927e-02 1.89544549e-02 1.17119577e-02 4.33493531e-03\n", - " -3.16292005e-03 -1.07674790e-02 -1.84641959e-02 -2.62381307e-02\n", - " -3.40739725e-02 -4.19560626e-02 -4.98684197e-02 -5.77947654e-02\n", - " -6.57185500e-02 -7.36229797e-02 -8.14910442e-02 -8.93055449e-02\n", - " -9.70491235e-02 -1.04704291e-01 -1.12253460e-01 -1.19678969e-01\n", - " -1.26963119e-01 -1.34088203e-01 -1.41036535e-01 -1.47790482e-01\n", - " -1.54332496e-01 -1.60645148e-01 -1.66711154e-01 -1.72513412e-01\n", - " -1.78035031e-01 -1.83259362e-01 -1.88170031e-01 -1.92750967e-01\n", - " -1.96986439e-01 -2.00861076e-01 -2.04359907e-01 -2.07468386e-01\n", - " -2.10172419e-01 -2.12458396e-01 -2.14313217e-01 -2.15724319e-01\n", - " -2.16679702e-01 -2.17167955e-01 -2.17178280e-01 -2.16700518e-01\n", - " -2.15725169e-01 -2.14243413e-01 -2.12247135e-01 -2.09728942e-01\n", - " -2.06682181e-01 -2.03100959e-01 -1.98980157e-01 -1.94315445e-01\n", - " -1.89103299e-01 -1.83341009e-01 -1.77026695e-01 -1.70159312e-01\n", - " -1.62738663e-01 -1.54765405e-01 -1.46241051e-01 -1.37167982e-01\n", - " -1.27549441e-01 -1.17389543e-01 -1.06693268e-01 -9.54664662e-02\n", - " -8.37158486e-02 -7.14489876e-02 -5.86743091e-02 -4.54010860e-02\n", - " -3.16394290e-02 -1.74002770e-02 -2.69538540e-03 1.24626868e-02\n", - " 2.80605915e-02 4.40842070e-02 6.05186552e-02 7.73483197e-02\n", - " 9.45568662e-02 1.12127263e-01 1.30041802e-01 1.48282126e-01\n", - " 1.66829248e-01 1.85663582e-01 2.04764966e-01 2.24112693e-01\n", - " 2.43685536e-01 2.63461784e-01 2.83419266e-01 3.03535387e-01\n", - " 3.23787160e-01 3.44151238e-01 3.64603949e-01 3.85121331e-01\n", - " 4.05679165e-01 4.26253014e-01 4.46818258e-01 4.67350128e-01\n", - " 4.87823748e-01 5.08214170e-01 5.28496409e-01 5.48645486e-01\n", - " 5.68636461e-01 5.88444475e-01 6.08044786e-01 6.27412805e-01\n", - " 6.46524137e-01 6.65354618e-01 6.83880349e-01 7.02077739e-01\n", - " 7.19923533e-01 7.37394857e-01 7.54469248e-01 7.71124690e-01\n", - " 7.87339648e-01 8.03093104e-01 8.18364586e-01 8.33134205e-01\n", - " 8.47382681e-01 8.61091376e-01 8.74242323e-01 8.86818254e-01\n", - " 8.98802629e-01 9.10179658e-01 9.20934330e-01 9.31052433e-01\n", - " 9.40520581e-01 9.49326231e-01 9.57457704e-01 9.64904206e-01\n", - " 9.71655841e-01 9.77703629e-01 9.83039523e-01 9.87656414e-01\n", - " 9.91548150e-01 9.94709543e-01 9.97136375e-01 9.98825408e-01\n", - " 9.99774389e-01 9.99982051e-01 9.99448116e-01 9.98173297e-01\n", - " 9.96159296e-01 9.93408801e-01 9.89925480e-01 9.85713979e-01\n", - " 9.80779912e-01 9.75129853e-01 9.68771325e-01 9.61712788e-01\n", - " 9.53963626e-01 9.45534133e-01 9.36435494e-01 9.26679770e-01\n", - " 9.16279878e-01 9.05249571e-01 8.93603413e-01 8.81356763e-01\n", - " 8.68525743e-01 8.55127218e-01 8.41178765e-01 8.26698652e-01\n", - " 8.11705801e-01 7.96219765e-01 7.80260693e-01 7.63849301e-01\n", - " 7.47006840e-01 7.29755058e-01 7.12116175e-01 6.94112837e-01\n", - " 6.75768091e-01 6.57105345e-01 6.38148328e-01 6.18921063e-01\n", - " 5.99447818e-01 5.79753078e-01 5.59861505e-01 5.39797897e-01\n", - " 5.19587153e-01 4.99254235e-01 4.78824129e-01 4.58321808e-01\n", - " 4.37772194e-01 4.17200121e-01 3.96630295e-01 3.76087261e-01\n", - " 3.55595365e-01 3.35178717e-01 3.14861155e-01 2.94666213e-01\n", - " 2.74617084e-01 2.54736586e-01 2.35047131e-01 2.15570692e-01\n", - " 1.96328771e-01 1.77342369e-01 1.58631958e-01 1.40217449e-01\n", - " 1.22118168e-01 1.04352827e-01 8.69395028e-02 6.98956068e-02\n", - " 5.32378671e-02 3.69823046e-02 2.11442132e-02 5.73814030e-03\n", - " -9.22213061e-03 -2.37235968e-02 -3.77540513e-02 -5.13020963e-02\n", - " -6.43571561e-02 -7.69094874e-02 -8.89501891e-02 -1.00471210e-01\n", - " -1.11465356e-01 -1.21926294e-01 -1.31848557e-01 -1.41227546e-01\n", - " -1.50059529e-01 -1.58341643e-01 -1.66071889e-01 -1.73249131e-01\n", - " -1.79873089e-01 -1.85944334e-01 -1.91464280e-01 -1.96435173e-01\n", - " -2.00860082e-01 -2.04742889e-01 -2.08088271e-01 -2.10901690e-01\n", - " -2.13189377e-01 -2.14958311e-01 -2.16216206e-01 -2.16971490e-01\n", - " -2.17233284e-01 -2.17011380e-01 -2.16316223e-01 -2.15158883e-01\n", - " -2.13551032e-01 -2.11504922e-01 -2.09033356e-01 -2.06149661e-01\n", - " -2.02867663e-01 -1.99201659e-01 -1.95166386e-01 -1.90776994e-01\n", - " -1.86049017e-01 -1.80998338e-01 -1.75641166e-01 -1.69994000e-01\n", - " -1.64073598e-01 -1.57896950e-01 -1.51481240e-01 -1.44843820e-01\n", - " -1.38002176e-01 -1.30973897e-01 -1.23776643e-01 -1.16428113e-01\n", - " -1.08946015e-01 -1.01348035e-01 -9.36518043e-02 -8.58748724e-02\n", - " -7.80346738e-02 -7.01485002e-02 -6.22334708e-02 -5.43065042e-02\n", - " -4.63842900e-02 -3.84832618e-02 -3.06195706e-02 -2.28090587e-02\n", - " -1.50672349e-02 -7.40924970e-03 1.50127586e-04 7.59653178e-03\n", - " 1.49160234e-02 2.20951092e-02 2.91207622e-02 3.59804400e-02\n", - " 4.26621028e-02 4.91542297e-02 5.54458342e-02 6.15264789e-02\n", - " 6.73862882e-02 7.30159608e-02 7.84067807e-02 8.35506264e-02\n", - " 8.84399802e-02 9.30679351e-02 9.74282010e-02 1.01515110e-01\n", - " 1.05323619e-01 1.08849316e-01 1.12088414e-01 1.15037761e-01\n", - " 1.17694830e-01 1.20057723e-01 1.22125164e-01 1.23896498e-01\n", - " 1.25371680e-01 1.26551275e-01 1.27436444e-01 1.28028941e-01\n", - " 1.28331097e-01 1.28345814e-01 1.28076550e-01 1.27527309e-01\n", - " 1.26702624e-01 1.25607545e-01 1.24247621e-01 1.22628887e-01\n", - " 1.20757841e-01 1.18641435e-01 1.16287047e-01 1.13702469e-01\n", - " 1.10895881e-01 1.07875838e-01 1.04651239e-01 1.01231317e-01\n", - " 9.76256070e-02 9.38439292e-02 8.98963649e-02 8.57932335e-02\n", - " 8.15450691e-02 7.71625969e-02 7.26567100e-02 6.80384452e-02\n", - " 6.33189591e-02 5.85095046e-02 5.36214066e-02 4.86660385e-02\n", - " 4.36547985e-02 3.85990857e-02 3.35102772e-02 2.83997049e-02\n", - " 2.32786325e-02 1.81582335e-02 1.30495685e-02 7.96356398e-03\n", - " 2.91099109e-03 -2.09755531e-03 -7.05167669e-03 -1.19411905e-02\n", - " -1.67561490e-02 -2.14868582e-02 -2.61238947e-02 -3.06581236e-02\n", - " -3.50807142e-02 -3.93831556e-02 -4.35572719e-02 -4.75952355e-02\n", - " -5.14895808e-02 -5.52332162e-02 -5.88194355e-02 -6.22419285e-02\n", - " -6.54947910e-02 -6.85725329e-02 -7.14700865e-02 -7.41828131e-02\n", - " -7.67065095e-02 -7.90374123e-02 -8.11722025e-02 -8.31080085e-02\n", - " -8.48424084e-02 -8.63734309e-02 -8.76995561e-02 -8.88197148e-02\n", - " -8.97332864e-02 -9.04400974e-02 -9.09404173e-02 -9.12349548e-02\n", - " -9.13248523e-02 -9.12116803e-02 -9.08974307e-02 -9.03845086e-02\n", - " -8.96757245e-02 -8.87742848e-02 -8.76837817e-02 -8.64081832e-02\n", - " -8.49518209e-02 -8.33193786e-02 -8.15158793e-02 -7.95466720e-02\n", - " -7.74174180e-02 -7.51340760e-02 -7.27028880e-02 -7.01303632e-02\n", - " -6.74232623e-02 -6.45885815e-02 -6.16335357e-02 -5.85655415e-02\n", - " -5.53922002e-02 -5.21212799e-02 -4.87606982e-02 -4.53185037e-02\n", - " -4.18028587e-02 -3.82220204e-02 -3.45843229e-02 -3.08981590e-02\n", - " -2.71719616e-02 -2.34141859e-02 -1.96332912e-02 -1.58377225e-02\n", - " -1.20358931e-02 -8.23616654e-03 -4.44683950e-03 -6.76124398e-04\n", - " 3.06786745e-03 6.77714235e-03 1.04438404e-02 1.40602515e-02\n", - " 1.76188304e-02 2.11122119e-02 2.45332251e-02 2.78749075e-02\n", - " 3.11305182e-02 3.42935512e-02 3.73577469e-02 4.03171046e-02\n", - " 4.31658929e-02 4.58986604e-02 4.85102453e-02 5.09957845e-02\n", - " 5.33507222e-02 5.55708171e-02 5.76521497e-02 5.95911283e-02\n", - " 6.13844945e-02 6.30293283e-02 6.45230515e-02 6.58634314e-02\n", - " 6.70485830e-02 6.80769710e-02 6.89474104e-02 6.96590672e-02\n", - " 7.02114574e-02 7.06044462e-02 7.08382455e-02 7.09134118e-02\n", - " 7.08308420e-02 7.05917701e-02 7.01977616e-02 6.96507086e-02\n", - " 6.89528232e-02 6.81066310e-02 6.71149634e-02 6.59809499e-02\n", - " 6.47080089e-02 6.32998393e-02 6.17604101e-02 6.00939503e-02\n", - " 5.83049386e-02 5.63980914e-02 5.43783520e-02 5.22508778e-02\n", - " 5.00210284e-02 4.76943524e-02 4.52765747e-02 4.27735824e-02\n", - " 4.01914120e-02 3.75362345e-02 3.48143422e-02 3.20321335e-02\n", - " 2.91960990e-02 2.63128070e-02 2.33888883e-02 2.04310219e-02\n", - " 1.74459204e-02 1.44403149e-02 1.14209406e-02 8.39452220e-03\n", - " 5.36775927e-03 2.34731209e-03 -6.60212626e-04 -3.64827569e-03\n", - " -6.61041919e-03 -9.54027998e-03 -1.24316029e-02 -1.52782538e-02\n", - " -1.80742319e-02 -2.08136822e-02 -2.34909073e-02 -2.61003788e-02\n", - " -2.86367481e-02 -3.10948576e-02 -3.34697500e-02 -3.57566785e-02\n", - " -3.79511155e-02 -4.00487615e-02 -4.20455530e-02 -4.39376700e-02\n", - " -4.57215427e-02 -4.73938583e-02 -4.89515666e-02 -5.03918847e-02\n", - " -5.17123024e-02 -5.29105853e-02 -5.39847788e-02 -5.49332105e-02\n", - " -5.57544922e-02 -5.64475214e-02 -5.70114826e-02 -5.74458468e-02\n", - " -5.77503715e-02 -5.79250997e-02 -5.79703582e-02 -5.78867552e-02\n", - " -5.76751777e-02 -5.73367882e-02 -5.68730201e-02 -5.62855740e-02\n", - " -5.55764119e-02 -5.47477517e-02 -5.38020613e-02 -5.27420517e-02\n", - " -5.15706699e-02 -5.02910910e-02 -4.89067105e-02 -4.74211357e-02\n", - " -4.58381763e-02 -4.41618356e-02 -4.23963006e-02 -4.05459318e-02\n", - " -3.86152529e-02 -3.66089403e-02 -3.45318117e-02 -3.23888155e-02\n", - " -3.01850186e-02 -2.79255956e-02 -2.56158163e-02 -2.32610339e-02\n", - " -2.08666732e-02 -1.84382181e-02 -1.59811995e-02 -1.35011830e-02\n", - " -1.10037565e-02 -8.49451808e-03 -5.97906349e-03 -3.46297419e-03\n", - " -9.51805147e-04 1.54892714e-03 4.03375648e-03 6.49727867e-03\n", - " 8.93416300e-03 1.13391635e-02 1.37071299e-02 1.60330187e-02\n", - " 1.83119032e-02 2.05389840e-02 2.27095991e-02 2.48192326e-02\n", - " 2.68635248e-02 2.88382803e-02 3.07394768e-02 3.25632727e-02\n", - " 3.43060149e-02 3.59642460e-02 3.75347103e-02 3.90143607e-02\n", - " 4.04003640e-02 4.16901060e-02 4.28811966e-02 4.39714734e-02\n", - " 4.49590059e-02 4.58420983e-02 4.66192922e-02 4.72893687e-02\n", - " 4.78513501e-02 4.83045006e-02 4.86483272e-02 4.88825791e-02\n", - " 4.90072479e-02 4.90225658e-02 4.89290044e-02 4.87272725e-02\n", - " 4.84183133e-02 4.80033015e-02 4.74836396e-02 4.68609537e-02\n", - " 4.61370892e-02 4.53141056e-02 4.43942707e-02 4.33800555e-02\n", - " 4.22741272e-02 4.10793427e-02 3.97987415e-02 3.84355384e-02]\n" - ] - }, - { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -687,16 +433,16 @@ { "data": { "text/plain": [ - "<StemContainer object of 3 artists>" + "[<matplotlib.lines.Line2D at 0x7fbfbc612d60>]" ] }, - "execution_count": 19, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -708,11 +454,45 @@ } ], "source": [ - "samp_rate = 10\n", + "t = np.arange(200)\n", + "\n", + "signal = np.sin(2 * np.pi * t * 0.05)\n", + "\n", + "signal_shifted = np.convolve(h, signal, mode='full')\n", + "\n", + "plt.plot(t, signal)\n", + "plt.grid(True)\n", + "plt.show()\n", + "plt.plot(signal_shifted)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "15f663c6", + "metadata": {}, + "source": [ + "# Test Delay " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "afb9e748", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "samp_rate = 100\n", "period = 1 / samp_rate\n", + "\n", + "#samp_rate_2 = 100\n", + "#period_2 = 1 / samp_rate_2\n", + "\n", "print(f\"System frequencies fs={samp_rate}, T={period}\")\n", "\n", - "delay_freq = 7.25 * period\n", + "delay_freq = 1.25 * period\n", "delay_int = int(np.floor(delay_freq/period))\n", "ampl = 4\n", "print(f\"Tap with amplitude={ampl}, delay_freq={delay_freq}, delay_int={delay_int}\")\n", @@ -731,9 +511,9 @@ "\n", "h_freq = ampl*(np.sin(samp_rate * samples_freq) / (samp_rate * samples_freq)) #sinc\n", "\n", - "#h_ideal = np.exp(-1j*delay_int*2*np.pi*samp_rate)\n", + "h_ideal = np.exp(-1j*delay_int*2*np.pi*samp_rate)\n", "print(f\"h_freq{h_freq}\")\n", - "print(f\"h_ideal{h_ideal}\")\n", + "#print(f\"h_ideal{h_ideal}\")\n", "\n", "t_freq = np.linspace(0, delay_freq + period, samp_rate)\n", "t_int = np.linspace(0, delay_int + period, samp_rate)\n", @@ -759,9 +539,88 @@ ] }, { + "cell_type": "markdown", + "id": "6fb85387", + "metadata": {}, + "source": [ + "# Test 2" + ] + }, + { "cell_type": "code", "execution_count": null, - "id": "e5f23991", + "id": "f224987a", + "metadata": {}, + "outputs": [], + "source": [ + "samp_rate = 10e6\n", + "period = 1 / samp_rate\n", + "#print(f\"System frequencies fs={samp_rate}, T={period}\")\n", + "\n", + "delay_freq = 7.25 * period\n", + "delay_int = int(np.floor(delay_freq/period))\n", + "ampl = 2\n", + "#print(f\"Tap with amplitude={ampl}, delay_freq={delay_freq}, delay_int={delay_int}\")\n", + "\n", + "#order = 2 * np.floor(delay / period) + 1 #N\n", + "#print(f\"Creating filter of order N={order}\")\n", + "\n", + "#skip = np.floor(delay / period) - (order - 1) / 2 #M\n", + "#assert skip >= 0\n", + "\n", + "#samples_freq = np.arange(0, order + 1) * period - delay_freq\n", + "#print(f\"samples_freq{samples_freq}\")\n", + "\n", + "samples_int = np.arange(0,delay_int,1)\n", + "#print(f\"samples_int{samples_int}\")\n", + "\n", + "#h_freq = ampl*(np.sin(samp_rate * samples_freq) / (samp_rate * samples_freq)) #sinc\n", + "\n", + "H_ideal = np.exp(-1j*delay_int*2*np.pi*samples_int)\n", + "h_ideal = ifft(H_ideal)\n", + "\n", + "plt.stem(H_ideal.real, linefmt=\"C0-\")\n", + "plt.stem(h_ideal.real, linefmt='C1-')\n", + "#print(f\"h_freq{h_freq}\")\n", + "#print(f\"h_ideal{h_ideal}\")\n", + "\n", + "#t_freq = np.linspace(0, delay_freq + period, samp_rate)\n", + "#t_int = np.linspace(0, delay_int + period, samp_rate)\n", + "\n", + "#f_freq = np.sin(2 * np.pi * samp_rate * t_freq)#test Signal\n", + "#f_int = np.sin(2 * np.pi * samp_rate * t_int)#test Signal\n", + "\n", + "#f_shift_freq = np.convolve(h_freq , f_freq)[:len(f_freq)]#Faltung freq \n", + "#f_shift_int = np.convolve(h_int , f_int)[:len(f_int)]#Faltung int \n", + "\n", + "\n", + "\n", + "#h_int = np.concatenate([np.zeros(delay_int-1), [ampl], np.zeros(3)])\n", + "#y1 = np.convolve(test.real, h_int)\n", + "#plt.grid(True)\n", + "#plt.stem(t_freq, f_shift_freq, linefmt=\"C0-\")\n", + "#plt.stem(t_int, f_shift_int, linefmt='C1-')\n", + "#plt.show()\n", + "#plt.grid(True)\n", + "#plt.stem(f_shift_freq, linefmt=\"C2-\", label='freq')\n", + "#plt.stem(f_shift_int, linefmt='C3-', label = 'int')\n", + "#plt.legend(loc=\"upper left\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87e52ab7", + "metadata": {}, + "outputs": [], + "source": [ + "h_ideal\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97f54131", "metadata": {}, "outputs": [], "source": [] @@ -769,7 +628,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f224987a", + "id": "cb6163b1", "metadata": {}, "outputs": [], "source": [] diff --git a/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc b/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc index f14bda0..1ba7d1c 100644 --- a/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc +++ b/simulation/QAM_Fading/qam_fading_V2_eigerner_block.grc @@ -768,58 +768,6 @@ blocks: coordinate: [1016, 1204.0] rotation: 0 state: true -- name: epy_block_0 - id: epy_block - parameters: - _source_code: "\"\"\"\nEmbedded Python Blocks:\n\nEach time this file is saved,\ - \ GRC will instantiate the first class it finds\nto get ports and parameters\ - \ of your block. The arguments to __init__ will\nbe the parameters. All of\ - \ them are required to have default values!\n\"\"\"\n\nimport numpy as np\n\ - from numpy.fft import fft,ifft,fftshift\nfrom gnuradio import gr\n\n\nclass\ - \ blk(gr.sync_block): # other base classes are basic_block, decim_block, interp_block\n\ - \ \"\"\"Embedded Python Block example - a simple multiply const\"\"\"\n\n\ - \ def __init__(self, amplitudes=[], delays=[], los=True): # only default\ - \ arguments here\n \"\"\"arguments to this function show up as parameters\ - \ in GRC\"\"\"\n gr.sync_block.__init__(\n self,\n \ - \ name='Embedded Python Block', # will show up in GRC\n in_sig=[np.complex64],\n\ - \ out_sig=[np.complex64]\n )\n # if an attribute with\ - \ the same name as a parameter is found,\n # a callback is registered\ - \ (properties work, too).\n self.amplitudes = amplitudes\n self.delays\ - \ = delays\n self.temp = [0]\n # if los:\n # self.amplitudes.append(1)\n\ - \ # self.delays.append(0)\n self.los= 1\n #self.fir\ - \ = \n\n def work(self, input_items, output_items):\n \"\"\"example:\ - \ multiply with constant\"\"\"\n inp = input_items[0]\n oup =\ - \ output_items[0]\n \n if len(self.amplitudes) != len(self.delays):\n\ - \ raise Exception(\"Amplitudes and Delay length dont match\")\n\n\ - \ # raise Exception(\"Delay length can't be one\")\n #if np.min(self.delays)<=1:\n\ - \ # raise Exception(\"Delay length can't be one\")\n max_len\ - \ = np.max(self.delays)\n sum_x = np.zeros(max_len)\n for(a,d)\ - \ in zip(self.amplitudes,self.delays):\n # if d-1 <= 0:\n \ - \ # x = np.concatenate([[a], np.zeros(max_len-1)])\n # else:\ - \ \n x = np.concatenate([np.zeros(d-1), [a], np.zeros(max_len-d)])\n\ - \ sum_x += x\n \n sum_x[0] = self.los\n print(sum_x)\n\ - \ \n #H_int = fft(sum_x)\n\n #h = ifft(H_int)\n\n \ - \ #h[0]=1\n\n y = np.convolve(inp, sum_x)\n \n y+=np.concatenate([self.temp,np.zeros(len(y)-len(self.temp))])\n\ - \ \n\n oup[:] = y[:len(inp)]\n self.temp = y[len(inp):]\ - \ \n \n\n return len(oup)" - affinity: '' - alias: '' - amplitudes: '[0.2,0.2]' - comment: '' - delays: '[sps+1,sps+1]' - los: 'True' - maxoutbuf: '0' - minoutbuf: '0' - states: - _io_cache: ('Embedded Python Block', 'blk', [('amplitudes', '[]'), ('delays', - '[]'), ('los', 'True')], [('0', 'complex', 1)], [('0', 'complex', 1)], 'Embedded - Python Block example - a simple multiply const', ['amplitudes', 'delays', 'los']) - bus_sink: false - bus_source: false - bus_structure: null - coordinate: [968, 324.0] - rotation: 0 - state: true - name: epy_block_1 id: epy_block parameters: @@ -855,6 +803,23 @@ blocks: coordinate: [984, 284.0] rotation: 0 state: disabled +- name: fadingui_multipath_fading_0 + id: fadingui_multipath_fading + parameters: + affinity: '' + alias: '' + amplitudes: '[0.2,0.2]' + comment: '' + delays: '[sps+1,sps+1]' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [968, 324.0] + rotation: 0 + state: true - name: import_0 id: import parameters: @@ -1577,7 +1542,7 @@ connections: - [blocks_unpack_k_bits_bb_0_0, '0', blocks_char_to_float_0_0, '0'] - [blocks_unpack_k_bits_bb_0_1, '0', blocks_char_to_float_0_1, '0'] - [channels_channel_model_0, '0', digital_pfb_clock_sync_xxx_0_0, '0'] -- [channels_channel_model_0, '0', epy_block_0, '0'] +- [channels_channel_model_0, '0', fadingui_multipath_fading_0, '0'] - [channels_channel_model_0, '0', qtgui_const_sink_x_0, '1'] - [channels_channel_model_0, '0', qtgui_freq_sink_x_0, '1'] - [digital_cma_equalizer_cc_0, '0', digital_costas_loop_cc_0, '0'] @@ -1599,9 +1564,9 @@ connections: - [digital_pfb_clock_sync_xxx_0, '0', qtgui_const_sink_x_0_0, '0'] - [digital_pfb_clock_sync_xxx_0_0, '0', digital_cma_equalizer_cc_0_0, '0'] - [digital_pfb_clock_sync_xxx_0_0, '0', qtgui_const_sink_x_0_0, '1'] -- [epy_block_0, '0', digital_pfb_clock_sync_xxx_0, '0'] -- [epy_block_0, '0', qtgui_const_sink_x_0, '0'] -- [epy_block_0, '0', qtgui_freq_sink_x_0, '0'] +- [fadingui_multipath_fading_0, '0', digital_pfb_clock_sync_xxx_0, '0'] +- [fadingui_multipath_fading_0, '0', qtgui_const_sink_x_0, '0'] +- [fadingui_multipath_fading_0, '0', qtgui_freq_sink_x_0, '0'] metadata: file_format: 1 diff --git a/simulation/QAM_Fading/qam_fading_block.py b/simulation/QAM_Fading/qam_fading_block.py index b16ac7a..8186175 100755 --- a/simulation/QAM_Fading/qam_fading_block.py +++ b/simulation/QAM_Fading/qam_fading_block.py @@ -36,7 +36,7 @@ from argparse import ArgumentParser from gnuradio.eng_arg import eng_float, intx from gnuradio import eng_notation from gnuradio.qtgui import Range, RangeWidget -import epy_block_0 +import fadingui import numpy as np from gnuradio import qtgui @@ -491,6 +491,7 @@ class qam_fading_block(gr.top_block, Qt.QWidget): self.plots_grid_layout_0.setRowStretch(r, 1) for c in range(0, 1): self.plots_grid_layout_0.setColumnStretch(c, 1) + self.fadingui_multipath_fading_0 = fadingui.multipath_fading(amplitudes=[0.2,0.2], delays=[sps+1,sps+1]) self._fading_1_range = Range(1, 30, 1, 2, 200) self._fading_1_win = RangeWidget(self._fading_1_range, self.set_fading_1, 'Fading', "counter_slider", int) self.params_grid_layout_2.addWidget(self._fading_1_win, 1, 0, 1, 1) @@ -498,7 +499,6 @@ class qam_fading_block(gr.top_block, Qt.QWidget): self.params_grid_layout_2.setRowStretch(r, 1) for c in range(0, 1): self.params_grid_layout_2.setColumnStretch(c, 1) - self.epy_block_0 = epy_block_0.blk(amplitudes=[0.2,0.2], delays=[sps+1,sps+1], los=True) self.digital_pfb_clock_sync_xxx_0_0 = digital.pfb_clock_sync_ccf(sps , timing_loop_bw, rrc_taps, nfilts, nfilts/2, 1.5, 1) self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(sps, timing_loop_bw, rrc_taps, nfilts, nfilts/2, 1.5, 1) self.digital_map_bb_0_0 = digital.map_bb([0, 1, 3, 2]) @@ -568,7 +568,7 @@ class qam_fading_block(gr.top_block, Qt.QWidget): self.connect((self.blocks_unpack_k_bits_bb_0_0, 0), (self.blocks_char_to_float_0_0, 0)) self.connect((self.blocks_unpack_k_bits_bb_0_1, 0), (self.blocks_char_to_float_0_1, 0)) self.connect((self.channels_channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0_0, 0)) - self.connect((self.channels_channel_model_0, 0), (self.epy_block_0, 0)) + self.connect((self.channels_channel_model_0, 0), (self.fadingui_multipath_fading_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.qtgui_const_sink_x_0, 1)) self.connect((self.channels_channel_model_0, 0), (self.qtgui_freq_sink_x_0, 1)) self.connect((self.digital_cma_equalizer_cc_0, 0), (self.digital_costas_loop_cc_0, 0)) @@ -590,9 +590,9 @@ class qam_fading_block(gr.top_block, Qt.QWidget): self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.qtgui_const_sink_x_0_0, 0)) self.connect((self.digital_pfb_clock_sync_xxx_0_0, 0), (self.digital_cma_equalizer_cc_0_0, 0)) self.connect((self.digital_pfb_clock_sync_xxx_0_0, 0), (self.qtgui_const_sink_x_0_0, 1)) - self.connect((self.epy_block_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0)) - self.connect((self.epy_block_0, 0), (self.qtgui_const_sink_x_0, 0)) - self.connect((self.epy_block_0, 0), (self.qtgui_freq_sink_x_0, 0)) + self.connect((self.fadingui_multipath_fading_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0)) + self.connect((self.fadingui_multipath_fading_0, 0), (self.qtgui_const_sink_x_0, 0)) + self.connect((self.fadingui_multipath_fading_0, 0), (self.qtgui_freq_sink_x_0, 0)) def closeEvent(self, event): @@ -606,7 +606,6 @@ class qam_fading_block(gr.top_block, Qt.QWidget): def set_sps(self, sps): self.sps = sps self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.sps), self.excess_bw, 45*self.nfilts)) - self.epy_block_0.delays = [self.sps+1,self.sps+1] def get_nfilts(self): return self.nfilts diff --git a/src/gr-fadingui/grc/CMakeLists.txt b/src/gr-fadingui/grc/CMakeLists.txt index 92b6add..2394de4 100644 --- a/src/gr-fadingui/grc/CMakeLists.txt +++ b/src/gr-fadingui/grc/CMakeLists.txt @@ -22,5 +22,6 @@ install(FILES fadingui_dearpygui_sink.block.yml fadingui_xor_frame_sync.block.yml fadingui_deframer.block.yml - fadingui_frame_obj.block.yml DESTINATION share/gnuradio/grc/blocks + fadingui_frame_obj.block.yml + fadingui_multipath_fading.block.yml DESTINATION share/gnuradio/grc/blocks ) diff --git a/src/gr-fadingui/grc/fadingui_multipath_fading.block.yml b/src/gr-fadingui/grc/fadingui_multipath_fading.block.yml new file mode 100644 index 0000000..e116467 --- /dev/null +++ b/src/gr-fadingui/grc/fadingui_multipath_fading.block.yml @@ -0,0 +1,41 @@ +id: fadingui_multipath_fading +label: Multipath Fading +category: '[fadingui]' + +templates: + imports: import fadingui + make: fadingui.multipath_fading(amplitudes=${amplitudes}, delays=${delays}) + +# Make one 'parameters' list entry for every parameter you want settable from the GUI. +# Keys include: +# * id (makes the value accessible as \$keyname, e.g. in the make entry) +# * label (label shown in the GUI) +# * dtype (e.g. int, float, complex, byte, short, xxx_vector, ...) +parameters: +- id: amplitudes + label: Amplitudes + dtype: raw +- id: delays + label: Delays + dtype: raw + +# Make one 'inputs' list entry per input and one 'outputs' list entry per output. +# Keys include: +# * label (an identifier for the GUI) +# * domain (optional - stream or message. Default is stream) +# * dtype (e.g. int, float, complex, byte, short, xxx_vector, ...) +# * vlen (optional - data stream vector length. Default is 1) +# * optional (optional - set to 1 for optional inputs. Default is 0) +inputs: +- label: in + domain: stream + dtype: complex + +outputs: +- label: out + domain: stream + dtype: complex + +# 'file_format' specifies the version of the GRC yml format used in the file +# and should usually not be changed. +file_format: 1 diff --git a/src/gr-fadingui/python/CMakeLists.txt b/src/gr-fadingui/python/CMakeLists.txt index 6ee73d3..95bb852 100644 --- a/src/gr-fadingui/python/CMakeLists.txt +++ b/src/gr-fadingui/python/CMakeLists.txt @@ -37,7 +37,8 @@ GR_PYTHON_INSTALL( dearpygui_sink.py xor_frame_sync.py deframer.py - frame_obj.py DESTINATION ${GR_PYTHON_DIR}/fadingui + frame_obj.py + multipath_fading.py DESTINATION ${GR_PYTHON_DIR}/fadingui ) ######################################################################## @@ -48,3 +49,4 @@ include(GrTest) set(GR_TEST_TARGET_DEPS gnuradio-fadingui) set(GR_TEST_PYTHON_DIRS ${CMAKE_BINARY_DIR}/swig) GR_ADD_TEST(qa_xor_frame_sync ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_xor_frame_sync.py) +GR_ADD_TEST(qa_multipath_fading ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_multipath_fading.py) diff --git a/src/gr-fadingui/python/__init__.py b/src/gr-fadingui/python/__init__.py index 5fdfea4..5a7b546 100644 --- a/src/gr-fadingui/python/__init__.py +++ b/src/gr-fadingui/python/__init__.py @@ -37,5 +37,6 @@ from .dearpygui_sink import dearpygui_sink from .xor_frame_sync import xor_frame_sync from .deframer import deframer from .frame_obj import frame_obj +from .multipath_fading import multipath_fading # diff --git a/src/gr-fadingui/python/multipath_fading.py b/src/gr-fadingui/python/multipath_fading.py new file mode 100644 index 0000000..01f2dbe --- /dev/null +++ b/src/gr-fadingui/python/multipath_fading.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2021 Sara Cinzia Halter. +# +# This is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this software; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + + +import numpy as np +from numpy.fft import fft,ifft,fftshift +from gnuradio import gr + +from fadingui.logger import get_logger +log = get_logger("multipath_fading") + +class multipath_fading(gr.sync_block): + """ + docstring for block multipath_fading + """ + def __init__(self, amplitudes=[], delays=[], los=True): # only default arguments here + """arguments to this function show up as parameters in GRC""" + gr.sync_block.__init__( + self, + name='Embedded Python Block', # will show up in GRC + in_sig=[np.complex64], + out_sig=[np.complex64] + ) + # if an attribute with the same name as a parameter is found, + # a callback is registered (properties work, too). + self.amplitudes = amplitudes + self.delays = delays + self.temp = [0] + # if los: + # self.amplitudes.append(1) + # self.delays.append(0) + self.los= 1 + #self.fir = + + def work(self, input_items, output_items): + """example: multiply with constant""" + inp = input_items[0] + oup = output_items[0] + + if len(self.amplitudes) != len(self.delays): + raise Exception("Amplitudes and Delay length dont match") + + # raise Exception("Delay length can't be one") + #if np.min(self.delays)<=1: + # raise Exception("Delay length can't be one") + max_len = np.max(self.delays) + sum_x = np.zeros(max_len) + for(a,d) in zip(self.amplitudes,self.delays): + # if d-1 <= 0: + # x = np.concatenate([[a], np.zeros(max_len-1)]) + # else: + x = np.concatenate([np.zeros(d-1), [a], np.zeros(max_len-d)]) + sum_x += x + + sum_x[0] = self.los + log.debug(sum_x) + + #H_int = fft(sum_x) + + #h = ifft(H_int) + + #h[0]=1 + + y = np.convolve(inp, sum_x) + + y+=np.concatenate([self.temp,np.zeros(len(y)-len(self.temp))]) + + + oup[:] = y[:len(inp)] + self.temp = y[len(inp):] + + + return len(oup)
\ No newline at end of file diff --git a/src/gr-fadingui/python/qa_multipath_fading.py b/src/gr-fadingui/python/qa_multipath_fading.py new file mode 100755 index 0000000..6a27cc6 --- /dev/null +++ b/src/gr-fadingui/python/qa_multipath_fading.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2021 Sara Cinzia Halter. +# +# This is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this software; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from gnuradio import gr, gr_unittest +from gnuradio import blocks +from multipath_fading import multipath_fading + +class qa_multipath_fading(gr_unittest.TestCase): + + def setUp(self): + self.tb = gr.top_block() + + def tearDown(self): + self.tb = None + + def test_001_t(self): + # set up fg + self.tb.run() + # check data + + +if __name__ == '__main__': + gr_unittest.run(qa_multipath_fading) diff --git a/src/gr-fadingui/python/xor_frame_sync.py b/src/gr-fadingui/python/xor_frame_sync.py index 05c150a..bb5cfb1 100644 --- a/src/gr-fadingui/python/xor_frame_sync.py +++ b/src/gr-fadingui/python/xor_frame_sync.py @@ -9,7 +9,7 @@ from numpy_ringbuffer import RingBuffer from gnuradio import gr -from logger import get_logger +from fadingui.logger import get_logger log = get_logger("xor_frame_sync") |