aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas128 <Andreas>2016-12-02 16:38:45 +0100
committerandreas128 <Andreas>2016-12-02 16:38:45 +0100
commit2dc2e90eff0f5c46c701ed6ae749520adf94798c (patch)
treed8567f82a06fcd40cf1a37911893b033d527c8d4
parent9623ce222ae217b816eb11dcb4bdf3289dc616cb (diff)
downloadODR-StaticPrecorrection-2dc2e90eff0f5c46c701ed6ae749520adf94798c.tar.gz
ODR-StaticPrecorrection-2dc2e90eff0f5c46c701ed6ae749520adf94798c.tar.bz2
ODR-StaticPrecorrection-2dc2e90eff0f5c46c701ed6ae749520adf94798c.zip
Add generator ipynb for two tone
-rw-r--r--generate_compensated_2_tone_file.ipynb291
-rw-r--r--live_analyse.grc1140
2 files changed, 1358 insertions, 73 deletions
diff --git a/generate_compensated_2_tone_file.ipynb b/generate_compensated_2_tone_file.ipynb
new file mode 100644
index 0000000..7037d3b
--- /dev/null
+++ b/generate_compensated_2_tone_file.ipynb
@@ -0,0 +1,291 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = np.fromfile(\"./out_sin\", np.complex64)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = a[0:100]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "mag = np.abs(a)\n",
+ "plt.plot(mag)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plt.plot(a.imag[0:100])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plt.plot(a.real[0:100])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def complex_exp(freq, samp_rate, periods, phase_deg=0):\n",
+ " t_max = 1.0 * samp_rate / freq * periods\n",
+ " t = np.arange(t_max)\n",
+ " fac = t / samp_rate * freq\n",
+ " phase = 1j * phase_deg/360*2*np.pi\n",
+ " ret = np.exp(phase + 1j * 2 * np.pi * fac - 1j * np.pi / 2, dtype=np.complex64)\n",
+ " return ret\n",
+ "ret = complex_exp(10,40,2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "samp_rate = 4000000 #samples / second\n",
+ "frequency_0 = samp_rate/9. #cycles / second\n",
+ "frequency_1 = samp_rate/10. #cycles / second\n",
+ "tone_0 = complex_exp(frequency_0, samp_rate, 10, 180)\n",
+ "tone_1 = complex_exp(frequency_1, samp_rate, 9)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def complex_exp(freq, samp_rate, periods):\n",
+ " t_max = 1.0 * samp_rate / freq * periods\n",
+ " t = np.arange(t_max)\n",
+ " fac = t / samp_rate * freq\n",
+ " ret = np.exp(1j * 2 * np.pi * fac - 1j * np.pi / 2)\n",
+ " return ret\n",
+ "ret = complex_exp(10,40,2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "two_tone = 1/2.0 * (tone_0 + tone_1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "two_tone[-1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "two_tone.tofile(\"./np_twotone\")\n",
+ "two_tone.dtype"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a_load = np.fromfile(\"./np_twotone\", dtype=np.complex64)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plt.plot(a_load.real[0:100])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pickle"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lut_dict = pickle.load(open(\"./lut_tab.pkl\", \"rb\"))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def dpd(x):\n",
+ " mag = np.abs(x)\n",
+ " fac = np.interp(mag/2.0, lut_dict[\"ampl\"], lut_dict[\"fac\"])\n",
+ " ret = x*fac\n",
+ " return ret.astype(np.complex64)\n",
+ "\n",
+ "#def dpd(x):\n",
+ "# return x*0.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tone_0_dpd = np.apply_along_axis(dpd, 0, tone_0)\n",
+ "tone_1_dpd = np.apply_along_axis(dpd, 0, tone_1)\n",
+ "two_tone_dpd = 1/2. * (tone_0_dpd + tone_1_dpd)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plt.plot(two_tone_dpd.real[0:200])\n",
+ "plt.plot(two_tone.real[0:200])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "two_tone_dpd.tofile(\"./np_twotone\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "two_tone.tofile(\"./np_twotone\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a_load = np.fromfile(\"./np_twotone_dpd\", dtype=np.complex64)\n",
+ "plt.plot(a_load.real[0:200])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/live_analyse.grc b/live_analyse.grc
index 4bb0d2c..550df5c 100644
--- a/live_analyse.grc
+++ b/live_analyse.grc
@@ -163,6 +163,195 @@
</param>
</block>
<block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(408, 545)</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>pow1</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>pow1</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>0.05</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>rangeType</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(288, 545)</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>pow2</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>pow2</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>0.05</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>rangeType</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(168, 545)</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>pow3</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>pow3</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>0.05</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>rangeType</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ </block>
+ <block>
<key>variable</key>
<param>
<key>comment</key>
@@ -460,11 +649,7 @@
</param>
</block>
<block>
- <key>analog_sig_source_x</key>
- <param>
- <key>amp</key>
- <value>source_ampl * 0.5</value>
- </param>
+ <key>analog_const_source_x</key>
<param>
<key>alias</key>
<value></value>
@@ -474,6 +659,10 @@
<value></value>
</param>
<param>
+ <key>const</key>
+ <value>0</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
@@ -482,12 +671,8 @@
<value>True</value>
</param>
<param>
- <key>freq</key>
- <value>1000000</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(424, 208)</value>
+ <value>(488, 108)</value>
</param>
<param>
<key>_rotation</key>
@@ -495,7 +680,7 @@
</param>
<param>
<key>id</key>
- <value>analog_sig_source_x_0</value>
+ <value>analog_const_source_x_0</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -506,28 +691,12 @@
<value>0</value>
</param>
<param>
- <key>offset</key>
- <value>0</value>
- </param>
- <param>
<key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>waveform</key>
- <value>analog.GR_COS_WAVE</value>
+ <value>float</value>
</param>
</block>
<block>
- <key>analog_sig_source_x</key>
- <param>
- <key>amp</key>
- <value>source_ampl * 0.5</value>
- </param>
+ <key>blocks_add_xx</key>
<param>
<key>alias</key>
<value></value>
@@ -545,12 +714,8 @@
<value>True</value>
</param>
<param>
- <key>freq</key>
- <value>900000</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(424, 96)</value>
+ <value>(680, 249)</value>
</param>
<param>
<key>_rotation</key>
@@ -558,31 +723,27 @@
</param>
<param>
<key>id</key>
- <value>analog_sig_source_x_0_0</value>
+ <value>blocks_add_xx_0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>maxoutbuf</key>
<value>0</value>
</param>
<param>
- <key>offset</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>num_inputs</key>
+ <value>2</value>
</param>
<param>
- <key>waveform</key>
- <value>analog.GR_COS_WAVE</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
</block>
<block>
@@ -605,7 +766,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(632, 209)</value>
+ <value>(680, 329)</value>
</param>
<param>
<key>_rotation</key>
@@ -613,7 +774,7 @@
</param>
<param>
<key>id</key>
- <value>blocks_add_xx_0</value>
+ <value>blocks_add_xx_1</value>
</param>
<param>
<key>type</key>
@@ -656,7 +817,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(912, 337)</value>
+ <value>(960, 553)</value>
</param>
<param>
<key>_rotation</key>
@@ -680,6 +841,49 @@
</param>
</block>
<block>
+ <key>blocks_complex_to_mag</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(488, 65)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_complex_to_mag_0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
<key>blocks_complex_to_mag_squared</key>
<param>
<key>alias</key>
@@ -699,7 +903,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(736, 225)</value>
+ <value>(784, 433)</value>
</param>
<param>
<key>_rotation</key>
@@ -742,7 +946,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(736, 417)</value>
+ <value>(784, 633)</value>
</param>
<param>
<key>_rotation</key>
@@ -766,6 +970,104 @@
</param>
</block>
<block>
+ <key>blocks_file_source</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>file</key>
+ <value>/home/andreas/dab/ODR-StaticPrecorrection/np_twotone</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(208, 53)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_file_source_0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_float_to_complex</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(784, 73)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_float_to_complex_0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
<key>blocks_message_burst_source</key>
<param>
<key>alias</key>
@@ -832,7 +1134,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1112, 318)</value>
+ <value>(1160, 534)</value>
</param>
<param>
<key>_rotation</key>
@@ -887,7 +1189,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(912, 206)</value>
+ <value>(960, 414)</value>
</param>
<param>
<key>_rotation</key>
@@ -942,7 +1244,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1112, 398)</value>
+ <value>(1160, 614)</value>
</param>
<param>
<key>_rotation</key>
@@ -997,7 +1299,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(736, 321)</value>
+ <value>(784, 537)</value>
</param>
<param>
<key>_rotation</key>
@@ -1021,6 +1323,261 @@
</param>
</block>
<block>
+ <key>blocks_multiply_const_vxx</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>const</key>
+ <value>pow3</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(512, 252)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_const_vxx_0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_multiply_const_vxx</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>const</key>
+ <value>pow1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 356)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_const_vxx_1</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_multiply_const_vxx</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>const</key>
+ <value>pow2</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 308)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_const_vxx_2</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_multiply_xx</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1008, 81)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_xx_0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_multiply_xx</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1160, 73)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_xx_0_0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
<key>blocks_null_sink</key>
<param>
<key>alias</key>
@@ -1044,7 +1601,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1320, 225)</value>
+ <value>(1368, 433)</value>
</param>
<param>
<key>_rotation</key>
@@ -1091,7 +1648,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1496, 337)</value>
+ <value>(1544, 553)</value>
</param>
<param>
<key>_rotation</key>
@@ -1138,7 +1695,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1496, 417)</value>
+ <value>(1544, 633)</value>
</param>
<param>
<key>_rotation</key>
@@ -1232,7 +1789,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1272, 325)</value>
+ <value>(1320, 541)</value>
</param>
<param>
<key>_rotation</key>
@@ -1287,7 +1844,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1072, 213)</value>
+ <value>(1120, 421)</value>
</param>
<param>
<key>_rotation</key>
@@ -1342,7 +1899,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1272, 405)</value>
+ <value>(1320, 621)</value>
</param>
<param>
<key>_rotation</key>
@@ -1417,7 +1974,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(928, 558)</value>
+ <value>(976, 774)</value>
</param>
<param>
<key>gui_hint</key>
@@ -1661,6 +2218,365 @@
</param>
</block>
<block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>ctrlpanel</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1072, 310)</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>grid</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_0</value>
+ </param>
+ <param>
+ <key>legend</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>style9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>ylabel</key>
+ <value>Amplitude</value>
+ </param>
+ <param>
+ <key>yunit</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-1</value>
+ </param>
+ </block>
+ <block>
<key>rational_resampler_xxx</key>
<param>
<key>alias</key>
@@ -1688,7 +2604,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(704, 551)</value>
+ <value>(752, 767)</value>
</param>
<param>
<key>_rotation</key>
@@ -2434,7 +3350,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(744, 111)</value>
+ <value>(792, 319)</value>
</param>
<param>
<key>_rotation</key>
@@ -3509,7 +4425,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(424, 334)</value>
+ <value>(504, 694)</value>
</param>
<param>
<key>_rotation</key>
@@ -3661,31 +4577,37 @@
</param>
</block>
<connection>
- <source_block_id>analog_sig_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_0</sink_block_id>
+ <source_block_id>analog_const_source_x_0</source_block_id>
+ <sink_block_id>blocks_float_to_complex_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>analog_sig_source_x_0_0</source_block_id>
- <sink_block_id>blocks_add_xx_0</sink_block_id>
+ <source_block_id>blocks_add_xx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx_0</source_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
<sink_block_id>blocks_complex_to_mag_squared_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx_0</source_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
<sink_block_id>blocks_multiply_conjugate_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx_0</source_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_add_xx_1</source_block_id>
<sink_block_id>uhd_usrp_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
@@ -3697,6 +4619,12 @@
<sink_key>0</sink_key>
</connection>
<connection>
+ <source_block_id>blocks_complex_to_mag_0</source_block_id>
+ <sink_block_id>blocks_float_to_complex_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
<source_block_id>blocks_complex_to_mag_squared_0</source_block_id>
<sink_block_id>blocks_moving_average_xx_0_0</sink_block_id>
<source_key>0</source_key>
@@ -3709,6 +4637,36 @@
<sink_key>0</sink_key>
</connection>
<connection>
+ <source_block_id>blocks_file_source_0</source_block_id>
+ <sink_block_id>blocks_complex_to_mag_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_file_source_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_file_source_0</source_block_id>
+ <sink_block_id>blocks_multiply_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_float_to_complex_0</source_block_id>
+ <sink_block_id>blocks_multiply_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_float_to_complex_0</source_block_id>
+ <sink_block_id>blocks_multiply_xx_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
<source_block_id>blocks_message_burst_source_0</source_block_id>
<sink_block_id>blocks_null_sink_0_2</sink_block_id>
<source_key>0</source_key>
@@ -3739,6 +4697,42 @@
<sink_key>0</sink_key>
</connection>
<connection>
+ <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_multiply_const_vxx_1</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_multiply_const_vxx_2</source_block_id>
+ <sink_block_id>blocks_add_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_multiply_xx_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_2</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_multiply_xx_0</source_block_id>
+ <sink_block_id>blocks_multiply_xx_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_multiply_xx_0_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
<source_block_id>fir_filter_xxx_0</source_block_id>
<sink_block_id>blocks_null_sink_0_0</sink_block_id>
<source_key>0</source_key>