From 586fda19e912cc270cfa5b2bfc37003d7de3ae1d Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Mon, 18 Apr 2011 12:51:51 -0400 Subject: [PATCH 1/4] minor updates --- uhd/uhd_tx_psk_channels.grc | 1198 +++++++++++++++++------------------ 1 file changed, 599 insertions(+), 599 deletions(-) diff --git a/uhd/uhd_tx_psk_channels.grc b/uhd/uhd_tx_psk_channels.grc index f3556d4..7ae707c 100644 --- a/uhd/uhd_tx_psk_channels.grc +++ b/uhd/uhd_tx_psk_channels.grc @@ -1,6 +1,6 @@ - Fri Apr 15 17:27:37 2011 + Mon Apr 18 12:42:57 2011 options @@ -57,333 +57,361 @@ - uhd_usrp_sink + variable_qtgui_range id - uhd_usrp_sink_0 + gain _enabled True - type - complex - - - dev_addr - addr=192.168.10.2 + label + Tx Gain - ref_clk - + value + 0 - sync - + start + 0 - clock_rate - 0.0 + stop + 25 - num_mboards + step 1 - sd_spec0 - + widget + slider - sd_spec1 - + orient + Qt.Horizontal - sd_spec2 - + min_len + 200 - sd_spec3 + gui_hint - nchan - 1 + _coordinate + (1425, 30) - samp_rate - quad_rate*nchans + _rotation + 0 + + + variable_qtgui_range - center_freq0 - uhd.tune_request(freq, -100e3) + id + freq - gain0 - gain + _enabled + True - ant0 - TX/RX + label + Carrier Frequency - bw0 - 0 + value + 440.023e6 - center_freq1 - 0 + start + 400e6 - gain1 - 0 + stop + 500e6 - ant1 - + step + 1e6 - bw1 - 0 + widget + counter_slider - center_freq2 - 0 + orient + Qt.Horizontal - gain2 - 0 + min_len + 200 - ant2 + gui_hint - bw2 - 0 + _coordinate + (1277, 30) - center_freq3 + _rotation 0 + + + gr_vector_source_x - gain3 - 0 + id + gr_vector_source_x_0 - ant3 - + _enabled + True - bw3 - 0 + type + byte - center_freq4 - 0 + vector + scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - gain4 - 0 + repeat + True - ant4 - + vlen + 1 - bw4 - 0 + _coordinate + (246, 33) - center_freq5 - 0 + _rotation + 180 + + + gr_multiply_const_vxx - gain5 - 0 + id + gr_multiply_const_vxx_0 - ant5 - + _enabled + True - bw5 - 0 + type + complex - center_freq6 - 0 + const + out_amp - gain6 - 0 + vlen + 1 - ant6 - + _coordinate + (1143, 197) - bw6 + _rotation 0 + + + blks2_dxpsk_mod - center_freq7 - 0 + id + blks2_dxpsk_mod_0 - gain7 - 0 + _enabled + True - ant7 - + type + dbpsk - bw7 - 0 + samples_per_symbol + sps - center_freq8 - 0 + excess_bw + 0.35 - gain8 - 0 + gray_code + True - ant8 - + verbose + False - bw8 - 0 + log + False - center_freq9 - 0 + _coordinate + (280, 107) - gain9 + _rotation 0 + + + gr_multiply_const_vxx - ant9 - + id + gr_multiply_const_vxx_0_0 - bw9 - 0 + _enabled + True - center_freq10 - 0 + type + complex - gain10 - 0 + const + sig_amp0 - ant10 - + vlen + 1 - bw10 - 0 + _coordinate + (497, 131) - center_freq11 + _rotation 0 + + + gr_multiply_const_vxx - gain11 - 0 + id + gr_multiply_const_vxx_0_1 - ant11 - + _enabled + True - bw11 - 0 + type + complex - center_freq12 - 0 + const + sig_amp1 - gain12 - 0 + vlen + 1 - ant12 - + _coordinate + (497, 231) - bw12 + _rotation 0 + + + gr_vector_source_x - center_freq13 - 0 + id + gr_vector_source_x_0_0 - gain13 - 0 + _enabled + True - ant13 - + type + byte - bw13 - 0 + vector + scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - center_freq14 - 0 + repeat + True - gain14 - 0 + vlen + 1 - ant14 - + _coordinate + (246, 313) - bw14 - 0 + _rotation + 180 + + + gr_vector_source_x - center_freq15 - 0 + id + gr_vector_source_x_0_0_0 - gain15 - 0 + _enabled + True - ant15 - + type + byte - bw15 - 0 + vector + scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() + + + repeat + True + + + vlen + 1 _coordinate - (1353, 165) + (245, 489) _rotation - 0 + 180 - qtgui_sink_x + gr_vector_source_x id - qtgui_sink_x_0 + gr_vector_source_x_0_0_1 _enabled @@ -391,51 +419,116 @@ type - complex + byte - name - QT GUI Plot + vector + scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - fftsize - 1024 + repeat + True - wintype - firdes.WIN_BLACKMAN_hARRIS + vlen + 1 - fc - 0 + _coordinate + (245, 663) - bw - quad_rate*nchans + _rotation + 180 + + + gr_pfb_synthesis_filterbank_ccf - plotfreq + id + gr_pfb_synthesis_filterbank_ccf_0 + + + _enabled True - plotwaterfall + numchans + nchans + + + connections + 4 + + + taps + taps + + + _coordinate + (852, 184) + + + _rotation + 0 + + + + gr_multiply_const_vxx + + id + gr_multiply_const_vxx_0_1_0 + + + _enabled True - plottime + type + complex + + + const + sig_amp2 + + + vlen + 1 + + + _coordinate + (496, 407) + + + _rotation + 0 + + + + gr_multiply_const_vxx + + id + gr_multiply_const_vxx_0_1_1 + + + _enabled True - plotconst - True + type + complex + + + const + sig_amp3 - gui_hint - + vlen + 1 _coordinate - (1353, 283) + (496, 581) _rotation @@ -446,7 +539,7 @@ variable_qtgui_range id - gain + sig_amp0 _enabled @@ -454,11 +547,11 @@ label - Tx Gain + value - 0 + 1 start @@ -466,15 +559,15 @@ stop - 25 + 1 step - 1 + 0.01 widget - slider + counter orient @@ -490,7 +583,7 @@ _coordinate - (1425, 30) + (460, 7) _rotation @@ -501,7 +594,7 @@ variable_qtgui_range id - freq + sig_amp1 _enabled @@ -509,27 +602,27 @@ label - Carrier Frequency + value - 440.023e6 + 1 start - 400e6 + 0 stop - 500e6 + 1 step - 1e6 + 0.01 widget - counter_slider + counter orient @@ -545,7 +638,7 @@ _coordinate - (1277, 30) + (568, 6) _rotation @@ -553,65 +646,54 @@ - gr_vector_source_x + variable_qtgui_range id - gr_vector_source_x_0 + sig_amp2 _enabled True - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True + label + - vlen + value 1 - _coordinate - (246, 33) + start + 0 - _rotation - 180 + stop + 1 - - - gr_multiply_const_vxx - id - gr_multiply_const_vxx_0 + step + 0.01 - _enabled - True + widget + counter - type - complex + orient + Qt.Horizontal - const - out_amp + min_len + 200 - vlen - 1 + gui_hint + _coordinate - (1143, 197) + (677, 6) _rotation @@ -619,42 +701,54 @@ - blks2_dxpsk_mod + variable_qtgui_range id - blks2_dxpsk_mod_0 + sig_amp3 _enabled True - type - dbpsk + label + - samples_per_symbol - sps + value + 1 - excess_bw - 0.35 + start + 0 - gray_code - True + stop + 1 - verbose - False + step + 0.01 - log - False + widget + counter + + + orient + Qt.Horizontal + + + min_len + 200 + + + gui_hint + _coordinate - (280, 107) + (785, 5) _rotation @@ -662,61 +756,54 @@ - gr_multiply_const_vxx + variable_qtgui_range id - gr_multiply_const_vxx_0_0 + out_amp _enabled True - type - complex - - - const - sig_amp0 + label + Output Amplitude - vlen - 1 + value + 0.1 - _coordinate - (497, 131) + start + 0 - _rotation - 0 + stop + 1 - - - gr_multiply_const_vxx - id - gr_multiply_const_vxx_0_1 + step + 0.01 - _enabled - True + widget + counter - type - complex + orient + Qt.Horizontal - const - sig_amp1 + min_len + 200 - vlen - 1 + gui_hint + _coordinate - (497, 231) + (1133, 249) _rotation @@ -724,115 +811,79 @@ - gr_vector_source_x + import id - gr_vector_source_x_0_0 + import_scipy _enabled True - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 + import + import scipy _coordinate - (246, 313) + (14, 113) _rotation - 180 + 0 - gr_vector_source_x + variable id - gr_vector_source_x_0_0_0 + samp_rate _enabled True - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 + value + 25000 _coordinate - (245, 489) + (14, 165) _rotation - 180 + 0 - gr_vector_source_x + variable id - gr_vector_source_x_0_0_1 + nchans _enabled True - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 + value + 10 _coordinate - (245, 663) + (12, 296) _rotation - 180 + 0 - blks2_dxpsk_mod + uhd_usrp_sink id - blks2_dxpsk_mod_0_0_1 + uhd_usrp_sink_0 _enabled @@ -840,343 +891,311 @@ type - dqpsk - - - samples_per_symbol - sps + complex - excess_bw - 0.35 + dev_addr + addr=192.168.10.2 - gray_code - True + ref_clk + - verbose - False + sync + - log - False + clock_rate + 0.0 - _coordinate - (280, 557) + num_mboards + 1 - _rotation - 0 + sd_spec0 + - - - gr_pfb_synthesis_filterbank_ccf - id - gr_pfb_synthesis_filterbank_ccf_0 + sd_spec1 + - _enabled - True + sd_spec2 + - numchans - nchans + sd_spec3 + - connections - 4 + nchan + 1 - taps - taps + samp_rate + quad_rate*nchans - _coordinate - (852, 184) + center_freq0 + uhd.tune_request(freq, -100e3) - _rotation - 0 + gain0 + gain - - - blks2_dxpsk_mod - id - blks2_dxpsk_mod_0_0 + ant0 + TX/RX - _enabled - True + bw0 + 0 - type - dqpsk + center_freq1 + 0 - samples_per_symbol - sps + gain1 + 0 - excess_bw - 0.35 + ant1 + - gray_code - True + bw1 + 0 - verbose - False + center_freq2 + 0 - log - False + gain2 + 0 - _coordinate - (281, 207) + ant2 + - _rotation + bw2 0 - - - blks2_dxpsk_mod - - id - blks2_dxpsk_mod_0_0_0 - - _enabled - True + center_freq3 + 0 - type - d8psk + gain3 + 0 - samples_per_symbol - sps + ant3 + - excess_bw - 0.35 + bw3 + 0 - gray_code - True + center_freq4 + 0 - verbose - False + gain4 + 0 - log - False + ant4 + - _coordinate - (280, 383) + bw4 + 0 - _rotation + center_freq5 0 - - - variable - id - taps + gain5 + 0 - _enabled - True + ant5 + - value - firdes.low_pass_2(nchans, quad_rate*nchans, quad_rate/2.0, 10000, 100) + bw5 + 0 - _coordinate - (979, 97) + center_freq6 + 0 - _rotation + gain6 0 - - - gr_multiply_const_vxx - id - gr_multiply_const_vxx_0_1_0 + ant6 + - _enabled - True + bw6 + 0 - type - complex + center_freq7 + 0 - const - sig_amp2 + gain7 + 0 - vlen - 1 + ant7 + - _coordinate - (496, 407) + bw7 + 0 - _rotation + center_freq8 0 - - - gr_multiply_const_vxx - id - gr_multiply_const_vxx_0_1_1 + gain8 + 0 - _enabled - True + ant8 + - type - complex + bw8 + 0 - const - sig_amp3 + center_freq9 + 0 - vlen - 1 + gain9 + 0 - _coordinate - (496, 581) + ant9 + - _rotation + bw9 0 - - - variable_qtgui_range - id - sig_amp0 + center_freq10 + 0 - _enabled - True + gain10 + 0 - label + ant10 - value - 1 + bw10 + 0 - start + center_freq11 0 - stop - 1 + gain11 + 0 - step - 0.01 + ant11 + - widget - counter + bw11 + 0 - orient - Qt.Horizontal + center_freq12 + 0 - min_len - 200 + gain12 + 0 - gui_hint + ant12 - _coordinate - (460, 7) - - - _rotation + bw12 0 - - - variable_qtgui_range - id - sig_amp1 + center_freq13 + 0 - _enabled - True + gain13 + 0 - label + ant13 - value - 1 + bw13 + 0 - start + center_freq14 0 - stop - 1 + gain14 + 0 - step - 0.01 + ant14 + - widget - counter + bw14 + 0 - orient - Qt.Horizontal + center_freq15 + 0 - min_len - 200 + gain15 + 0 - gui_hint + ant15 + + bw15 + 0 + _coordinate - (568, 6) + (1353, 165) _rotation @@ -1184,54 +1203,45 @@ - variable_qtgui_range + variable id - sig_amp2 + quad_rate _enabled True - - label - - value - 1 - - - start - 0 - - - stop - 1 + samp_rate*sps - step - 0.01 + _coordinate + (12, 233) - widget - counter + _rotation + 0 + + + variable - orient - Qt.Horizontal + id + taps - min_len - 200 + _enabled + True - gui_hint - + value + firdes.low_pass_2(nchans, quad_rate*nchans, quad_rate/2.0, 10000, 100) _coordinate - (677, 6) + (900, 121) _rotation @@ -1239,46 +1249,54 @@ - variable_qtgui_range + qtgui_sink_x id - sig_amp3 + qtgui_sink_x_0 _enabled True - label - + type + complex - value - 1 + name + QT GUI Plot - start + fftsize + 1024 + + + wintype + firdes.WIN_BLACKMAN_hARRIS + + + fc 0 - stop - 1 + bw + quad_rate*nchans - step - 0.01 + plotfreq + True - widget - counter + plotwaterfall + True - orient - Qt.Horizontal + plottime + True - min_len - 200 + plotconst + True gui_hint @@ -1286,7 +1304,7 @@ _coordinate - (785, 5) + (1353, 283) _rotation @@ -1294,54 +1312,42 @@ - variable_qtgui_range + blks2_dxpsk_mod id - out_amp + blks2_dxpsk_mod_0_0 _enabled True - label - Output Amplitude - - - value - 0.1 - - - start - 0 - - - stop - 1 + type + dqpsk - step - 0.01 + samples_per_symbol + sps - widget - counter + excess_bw + 0.35 - orient - Qt.Horizontal + gray_code + True - min_len - 200 + verbose + False - gui_hint - + log + False _coordinate - (1133, 249) + (281, 207) _rotation @@ -1349,45 +1355,42 @@ - import + blks2_dxpsk_mod id - import_scipy + blks2_dxpsk_mod_0_0_0 _enabled True - import - import scipy + type + d8psk - _coordinate - (14, 113) + samples_per_symbol + sps - _rotation - 0 + excess_bw + 0.35 - - - variable - id - samp_rate + gray_code + True - _enabled - True + verbose + False - value - 25000 + log + False _coordinate - (14, 165) + (280, 383) _rotation @@ -1395,45 +1398,42 @@ - variable + blks2_dxpsk_mod id - quad_rate + blks2_dxpsk_mod_0_0_1 _enabled True - value - 50000 + type + dqpsk - _coordinate - (12, 233) + samples_per_symbol + sps - _rotation - 0 + excess_bw + 0.35 - - - variable - id - nchans + gray_code + True - _enabled - True + verbose + False - value - 10 + log + False _coordinate - (12, 296) + (280, 557) _rotation @@ -1452,7 +1452,7 @@ value - 2 + 1 _coordinate From 597e560e969af6faa334f64d2d3ad88c38236489 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Mon, 18 Apr 2011 12:59:14 -0400 Subject: [PATCH 2/4] Adding a BPSK transmitter that just transmits random symbols. --- digital/bpsk_tx.grc | 444 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 444 insertions(+) create mode 100644 digital/bpsk_tx.grc diff --git a/digital/bpsk_tx.grc b/digital/bpsk_tx.grc new file mode 100644 index 0000000..c025209 --- /dev/null +++ b/digital/bpsk_tx.grc @@ -0,0 +1,444 @@ + + + Mon Apr 18 12:56:12 2011 + + options + + id + bpsk_tx + + + _enabled + True + + + title + BPSK - Transmitter + + + author + Tom Rondeau + + + description + Transmit BPSK signals to samples + + + window_size + 1280, 1024 + + + generate_options + hb + + + category + MyDigital + + + run_options + prompt + + + run + True + + + realtime_scheduling + + + + _coordinate + (10, 10) + + + _rotation + 0 + + + + parameter + + id + sps + + + _enabled + True + + + label + Samples per Symbol + + + value + 2 + + + type + intx + + + short_id + + + + _coordinate + (196, 12) + + + _rotation + 0 + + + + parameter + + id + excess_bw + + + _enabled + True + + + label + Excess Bandwidth + + + value + 0.35 + + + type + eng_float + + + short_id + + + + _coordinate + (196, 112) + + + _rotation + 0 + + + + variable + + id + arity + + + _enabled + True + + + value + 2 + + + _coordinate + (16, 192) + + + _rotation + 0 + + + + import + + id + import_scipy + + + _enabled + True + + + import + import scipy + + + _coordinate + (15, 138) + + + _rotation + 0 + + + + import + + id + import_psk + + + _enabled + True + + + import + from gnuradio.blks2 import psk + + + _coordinate + (105, 138) + + + _rotation + 0 + + + + variable + + id + const_map + + + _enabled + True + + + value + psk.constellation[arity] + + + _coordinate + (374, 16) + + + _rotation + 0 + + + + variable + + id + nfilts + + + _enabled + True + + + value + 32 + + + _coordinate + (94, 194) + + + _rotation + 0 + + + + variable + + id + ntaps + + + _enabled + True + + + value + 11*nfilts*sps + + + _coordinate + (14, 259) + + + _rotation + 0 + + + + gr_vector_source_x + + id + gr_vector_source_x_0 + + + _enabled + True + + + type + int + + + vector + scipy.array(scipy.random.randint(0,2,10000), dtype=scipy.uint8).tolist() + + + repeat + True + + + vlen + 1 + + + _coordinate + (296, 304) + + + _rotation + 0 + + + + pad_sink + + id + pad_sink_0 + + + _enabled + True + + + label + out + + + type + complex + + + vlen + 1 + + + _coordinate + (1017, 312) + + + _rotation + 0 + + + + blks2_pfb_arb_resampler_ccf + + id + blks2_pfb_arb_resampler_ccf_0 + + + _enabled + True + + + rate + sps + + + taps + taps + + + size + nfilts + + + _coordinate + (783, 296) + + + _rotation + 0 + + + + variable + + id + taps + + + _enabled + True + + + value + firdes.root_raised_cosine(nfilts, nfilts, 1.0, excess_bw, ntaps) + + + _coordinate + (372, 84) + + + _rotation + 0 + + + + gr_chunks_to_symbols_xx + + id + gr_chunks_to_symbols_xx_0 + + + _enabled + True + + + in_type + int + + + out_type + complex + + + symbol_table + const_map + + + dimension + 1 + + + num_ports + 1 + + + _coordinate + (539, 304) + + + _rotation + 0 + + + + gr_chunks_to_symbols_xx_0 + blks2_pfb_arb_resampler_ccf_0 + 0 + 0 + + + gr_vector_source_x_0 + gr_chunks_to_symbols_xx_0 + 0 + 0 + + + blks2_pfb_arb_resampler_ccf_0 + pad_sink_0 + 0 + 0 + + From ed81472b81dbd7e9e7d3db9355a1acae51763bd8 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Mon, 18 Apr 2011 13:00:13 -0400 Subject: [PATCH 3/4] updating psk channelized transmitter to use new bpsk_tx hier_block. --- uhd/uhd_tx_psk_channels.grc | 322 ++++++++++++------------------------ 1 file changed, 104 insertions(+), 218 deletions(-) diff --git a/uhd/uhd_tx_psk_channels.grc b/uhd/uhd_tx_psk_channels.grc index 7ae707c..094295c 100644 --- a/uhd/uhd_tx_psk_channels.grc +++ b/uhd/uhd_tx_psk_channels.grc @@ -1,6 +1,6 @@ - Mon Apr 18 12:42:57 2011 + Mon Apr 18 12:59:03 2011 options @@ -166,41 +166,6 @@ 0 - - gr_vector_source_x - - id - gr_vector_source_x_0 - - - _enabled - True - - - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 - - - _coordinate - (246, 33) - - - _rotation - 180 - - gr_multiply_const_vxx @@ -232,80 +197,6 @@ 0 - - blks2_dxpsk_mod - - id - blks2_dxpsk_mod_0 - - - _enabled - True - - - type - dbpsk - - - samples_per_symbol - sps - - - excess_bw - 0.35 - - - gray_code - True - - - verbose - False - - - log - False - - - _coordinate - (280, 107) - - - _rotation - 0 - - - - gr_multiply_const_vxx - - id - gr_multiply_const_vxx_0_0 - - - _enabled - True - - - type - complex - - - const - sig_amp0 - - - vlen - 1 - - - _coordinate - (497, 131) - - - _rotation - 0 - - gr_multiply_const_vxx @@ -372,41 +263,6 @@ 180 - - gr_vector_source_x - - id - gr_vector_source_x_0_0_0 - - - _enabled - True - - - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 - - - _coordinate - (245, 489) - - - _rotation - 180 - - gr_vector_source_x @@ -473,37 +329,6 @@ 0 - - gr_multiply_const_vxx - - id - gr_multiply_const_vxx_0_1_0 - - - _enabled - True - - - type - complex - - - const - sig_amp2 - - - vlen - 1 - - - _coordinate - (496, 407) - - - _rotation - 0 - - gr_multiply_const_vxx @@ -1355,10 +1180,10 @@ - blks2_dxpsk_mod + gr_multiply_const_vxx id - blks2_dxpsk_mod_0_0_0 + gr_multiply_const_vxx_0_0 _enabled @@ -1366,31 +1191,42 @@ type - d8psk + complex - samples_per_symbol - sps + const + sig_amp0 - excess_bw - 0.35 + vlen + 1 - gray_code - True + _coordinate + (497, 131) - verbose - False + _rotation + 0 + + + variable - log - False + id + sps + + + _enabled + True + + + value + 2 _coordinate - (280, 383) + (14, 359) _rotation @@ -1441,22 +1277,84 @@ - variable + bpsk_tx id - sps + bpsk_tx_0 _enabled True - value + sps 1 + + excess_bw + 0.35 + _coordinate - (14, 359) + (248, 123) + + + _rotation + 0 + + + + gr_multiply_const_vxx + + id + gr_multiply_const_vxx_0_1_0 + + + _enabled + True + + + type + complex + + + const + sig_amp2 + + + vlen + 1 + + + _coordinate + (496, 407) + + + _rotation + 0 + + + + bpsk_tx + + id + bpsk_tx_0_0 + + + _enabled + True + + + sps + 1 + + + excess_bw + 0.35 + + + _coordinate + (255, 399) _rotation @@ -1481,24 +1379,12 @@ 0 0 - - gr_vector_source_x_0 - blks2_dxpsk_mod_0 - 0 - 0 - gr_multiply_const_vxx_0_0 gr_pfb_synthesis_filterbank_ccf_0 0 0 - - blks2_dxpsk_mod_0 - gr_multiply_const_vxx_0_0 - 0 - 0 - gr_multiply_const_vxx_0_1 gr_pfb_synthesis_filterbank_ccf_0 @@ -1517,18 +1403,6 @@ 0 0 - - gr_vector_source_x_0_0_0 - blks2_dxpsk_mod_0_0_0 - 0 - 0 - - - blks2_dxpsk_mod_0_0_0 - gr_multiply_const_vxx_0_1_0 - 0 - 0 - gr_vector_source_x_0_0_1 blks2_dxpsk_mod_0_0_1 @@ -1553,4 +1427,16 @@ 0 3 + + bpsk_tx_0 + gr_multiply_const_vxx_0_0 + 0 + 0 + + + bpsk_tx_0_0 + gr_multiply_const_vxx_0_1_0 + 0 + 0 + From 717a01f7b9ed08e6758933f9f066f270bf014434 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Mon, 18 Apr 2011 13:09:00 -0400 Subject: [PATCH 4/4] adding qpsk transmitter block and using it in PSK channelizer. --- digital/qpsk_tx.grc | 444 ++++++++++++++++++++++++++++++++++++ uhd/uhd_tx_psk_channels.grc | 314 ++++++++----------------- 2 files changed, 544 insertions(+), 214 deletions(-) create mode 100644 digital/qpsk_tx.grc diff --git a/digital/qpsk_tx.grc b/digital/qpsk_tx.grc new file mode 100644 index 0000000..d1f69ed --- /dev/null +++ b/digital/qpsk_tx.grc @@ -0,0 +1,444 @@ + + + Mon Apr 18 13:04:21 2011 + + options + + id + qpsk_tx + + + _enabled + True + + + title + QPSK - Transmitter + + + author + Tom Rondeau + + + description + Transmit QPSK signals to samples + + + window_size + 1280, 1024 + + + generate_options + hb + + + category + MyDigital + + + run_options + prompt + + + run + True + + + realtime_scheduling + + + + _coordinate + (10, 10) + + + _rotation + 0 + + + + parameter + + id + sps + + + _enabled + True + + + label + Samples per Symbol + + + value + 2 + + + type + intx + + + short_id + + + + _coordinate + (196, 12) + + + _rotation + 0 + + + + parameter + + id + excess_bw + + + _enabled + True + + + label + Excess Bandwidth + + + value + 0.35 + + + type + eng_float + + + short_id + + + + _coordinate + (196, 112) + + + _rotation + 0 + + + + import + + id + import_scipy + + + _enabled + True + + + import + import scipy + + + _coordinate + (15, 138) + + + _rotation + 0 + + + + import + + id + import_psk + + + _enabled + True + + + import + from gnuradio.blks2 import psk + + + _coordinate + (105, 138) + + + _rotation + 0 + + + + variable + + id + const_map + + + _enabled + True + + + value + psk.constellation[arity] + + + _coordinate + (374, 16) + + + _rotation + 0 + + + + variable + + id + nfilts + + + _enabled + True + + + value + 32 + + + _coordinate + (94, 194) + + + _rotation + 0 + + + + variable + + id + ntaps + + + _enabled + True + + + value + 11*nfilts*sps + + + _coordinate + (14, 259) + + + _rotation + 0 + + + + pad_sink + + id + pad_sink_0 + + + _enabled + True + + + label + out + + + type + complex + + + vlen + 1 + + + _coordinate + (1017, 312) + + + _rotation + 0 + + + + blks2_pfb_arb_resampler_ccf + + id + blks2_pfb_arb_resampler_ccf_0 + + + _enabled + True + + + rate + sps + + + taps + taps + + + size + nfilts + + + _coordinate + (783, 296) + + + _rotation + 0 + + + + variable + + id + taps + + + _enabled + True + + + value + firdes.root_raised_cosine(nfilts, nfilts, 1.0, excess_bw, ntaps) + + + _coordinate + (372, 84) + + + _rotation + 0 + + + + gr_chunks_to_symbols_xx + + id + gr_chunks_to_symbols_xx_0 + + + _enabled + True + + + in_type + int + + + out_type + complex + + + symbol_table + const_map + + + dimension + 1 + + + num_ports + 1 + + + _coordinate + (539, 304) + + + _rotation + 0 + + + + variable + + id + arity + + + _enabled + True + + + value + 4 + + + _coordinate + (16, 192) + + + _rotation + 0 + + + + gr_vector_source_x + + id + gr_vector_source_x_0 + + + _enabled + True + + + type + int + + + vector + scipy.array(scipy.random.randint(0,4,10000), dtype=scipy.uint8).tolist() + + + repeat + True + + + vlen + 1 + + + _coordinate + (296, 304) + + + _rotation + 0 + + + + gr_chunks_to_symbols_xx_0 + blks2_pfb_arb_resampler_ccf_0 + 0 + 0 + + + gr_vector_source_x_0 + gr_chunks_to_symbols_xx_0 + 0 + 0 + + + blks2_pfb_arb_resampler_ccf_0 + pad_sink_0 + 0 + 0 + + diff --git a/uhd/uhd_tx_psk_channels.grc b/uhd/uhd_tx_psk_channels.grc index 094295c..7b085b3 100644 --- a/uhd/uhd_tx_psk_channels.grc +++ b/uhd/uhd_tx_psk_channels.grc @@ -1,6 +1,6 @@ - Mon Apr 18 12:59:03 2011 + Mon Apr 18 13:07:53 2011 options @@ -197,107 +197,6 @@ 0 - - gr_multiply_const_vxx - - id - gr_multiply_const_vxx_0_1 - - - _enabled - True - - - type - complex - - - const - sig_amp1 - - - vlen - 1 - - - _coordinate - (497, 231) - - - _rotation - 0 - - - - gr_vector_source_x - - id - gr_vector_source_x_0_0 - - - _enabled - True - - - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 - - - _coordinate - (246, 313) - - - _rotation - 180 - - - - gr_vector_source_x - - id - gr_vector_source_x_0_0_1 - - - _enabled - True - - - type - byte - - - vector - scipy.array(scipy.random.randint(0,256,10000), dtype=scipy.uint8).tolist() - - - repeat - True - - - vlen - 1 - - - _coordinate - (245, 663) - - - _rotation - 180 - - gr_pfb_synthesis_filterbank_ccf @@ -329,37 +228,6 @@ 0 - - gr_multiply_const_vxx - - id - gr_multiply_const_vxx_0_1_1 - - - _enabled - True - - - type - complex - - - const - sig_amp3 - - - vlen - 1 - - - _coordinate - (496, 581) - - - _rotation - 0 - - variable_qtgui_range @@ -1137,42 +1005,26 @@ - blks2_dxpsk_mod + qpsk_tx id - blks2_dxpsk_mod_0_0 + qpsk_tx_3 _enabled True - type - dqpsk - - - samples_per_symbol + sps sps excess_bw 0.35 - - gray_code - True - - - verbose - False - - - log - False - _coordinate - (281, 207) + (245, 332) _rotation @@ -1183,7 +1035,7 @@ gr_multiply_const_vxx id - gr_multiply_const_vxx_0_0 + gr_multiply_const_vxx_0_1_0 _enabled @@ -1195,7 +1047,7 @@ const - sig_amp0 + sig_amp2 vlen @@ -1203,7 +1055,7 @@ _coordinate - (497, 131) + (497, 268) _rotation @@ -1211,22 +1063,26 @@ - variable + bpsk_tx id - sps + bpsk_tx_2 _enabled True - value - 2 + sps + sps + + + excess_bw + 0.35 _coordinate - (14, 359) + (244, 260) _rotation @@ -1234,10 +1090,10 @@ - blks2_dxpsk_mod + gr_multiply_const_vxx id - blks2_dxpsk_mod_0_0_1 + gr_multiply_const_vxx_0_1 _enabled @@ -1245,31 +1101,46 @@ type - dqpsk + complex - samples_per_symbol - sps + const + sig_amp1 - excess_bw - 0.35 + vlen + 1 + + + _coordinate + (496, 199) - gray_code + _rotation + 0 + + + + bpsk_tx + + id + bpsk_tx_0 + + + _enabled True - verbose - False + sps + sps - log - False + excess_bw + 0.35 _coordinate - (280, 557) + (245, 122) _rotation @@ -1277,26 +1148,30 @@ - bpsk_tx + gr_multiply_const_vxx id - bpsk_tx_0 + gr_multiply_const_vxx_0_0 _enabled True - sps - 1 + type + complex - excess_bw - 0.35 + const + sig_amp0 + + + vlen + 1 _coordinate - (248, 123) + (494, 130) _rotation @@ -1307,7 +1182,7 @@ gr_multiply_const_vxx id - gr_multiply_const_vxx_0_1_0 + gr_multiply_const_vxx_0_1_1 _enabled @@ -1319,7 +1194,7 @@ const - sig_amp2 + sig_amp3 vlen @@ -1327,7 +1202,7 @@ _coordinate - (496, 407) + (497, 340) _rotation @@ -1335,10 +1210,33 @@ - bpsk_tx + variable id - bpsk_tx_0_0 + sps + + + _enabled + True + + + value + 2 + + + _coordinate + (14, 359) + + + _rotation + 0 + + + + qpsk_tx + + id + qpsk_tx_1 _enabled @@ -1346,7 +1244,7 @@ sps - 1 + sps excess_bw @@ -1354,7 +1252,7 @@ _coordinate - (255, 399) + (244, 191) _rotation @@ -1380,40 +1278,34 @@ 0 - gr_multiply_const_vxx_0_0 - gr_pfb_synthesis_filterbank_ccf_0 + qpsk_tx_3 + gr_multiply_const_vxx_0_1_1 0 0 - gr_multiply_const_vxx_0_1 - gr_pfb_synthesis_filterbank_ccf_0 - 0 - 1 - - - gr_vector_source_x_0_0 - blks2_dxpsk_mod_0_0 + bpsk_tx_2 + gr_multiply_const_vxx_0_1_0 0 0 - blks2_dxpsk_mod_0_0 + qpsk_tx_1 gr_multiply_const_vxx_0_1 0 0 - gr_vector_source_x_0_0_1 - blks2_dxpsk_mod_0_0_1 + bpsk_tx_0 + gr_multiply_const_vxx_0_0 0 0 - blks2_dxpsk_mod_0_0_1 - gr_multiply_const_vxx_0_1_1 + gr_multiply_const_vxx_0_1_1 + gr_pfb_synthesis_filterbank_ccf_0 0 - 0 + 3 gr_multiply_const_vxx_0_1_0 @@ -1422,20 +1314,14 @@ 2 - gr_multiply_const_vxx_0_1_1 + gr_multiply_const_vxx_0_1 gr_pfb_synthesis_filterbank_ccf_0 0 - 3 - - - bpsk_tx_0 - gr_multiply_const_vxx_0_0 - 0 - 0 + 1 - bpsk_tx_0_0 - gr_multiply_const_vxx_0_1_0 + gr_multiply_const_vxx_0_0 + gr_pfb_synthesis_filterbank_ccf_0 0 0