aboutsummaryrefslogtreecommitdiffstats
path: root/flowgraphs/qam_sim.grc
diff options
context:
space:
mode:
Diffstat (limited to 'flowgraphs/qam_sim.grc')
-rw-r--r--flowgraphs/qam_sim.grc231
1 files changed, 178 insertions, 53 deletions
diff --git a/flowgraphs/qam_sim.grc b/flowgraphs/qam_sim.grc
index 02b174c..f1f9cc9 100644
--- a/flowgraphs/qam_sim.grc
+++ b/flowgraphs/qam_sim.grc
@@ -8,7 +8,7 @@ options:
description: ''
gen_cmake: 'On'
gen_linking: dynamic
- generate_options: no_gui
+ generate_options: qt_gui
hier_block_src_path: '.:'
id: qam_sim
max_nouts: '0'
@@ -32,19 +32,78 @@ options:
state: enabled
blocks:
-- name: access_code_symbols
+- name: access_code
id: variable
parameters:
comment: ''
- value: '[(-0.31622776601683794-0.31622776601683794j), (-0.31622776601683794+0.31622776601683794j),
- (-0.9486832980505138-0.9486832980505138j), (-0.9486832980505138-0.31622776601683794j)]'
+ value: np.exp(1j * (np.pi * 13 * np.arange(20) ** 20 / 20))
states:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [792, 1092.0]
+ coordinate: [32, 348.0]
rotation: 0
state: true
+- name: access_code_sps
+ id: variable
+ parameters:
+ comment: ''
+ value: np.asarray(np.matmul(np.matrix(access_code).T, np.matrix(np.ones(sps)))).ravel()
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [424, 196.0]
+ rotation: 0
+ state: disabled
+- name: access_code_sps
+ id: variable
+ parameters:
+ comment: ''
+ value: '[(1+0j), (1+0j), (1+0j), (1+0j), (-0.4539904997395467+0.8910065241883679j),
+ (-0.4539904997395467+0.8910065241883679j), (-0.4539904997395467+0.8910065241883679j),
+ (-0.4539904997395467+0.8910065241883679j), (0.30901699445433095+0.9510565162693603j),
+ (0.30901699445433095+0.9510565162693603j), (0.30901699445433095+0.9510565162693603j),
+ (0.30901699445433095+0.9510565162693603j), (-0.45399010831290065+0.8910067236300974j),
+ (-0.45399010831290065+0.8910067236300974j), (-0.45399010831290065+0.8910067236300974j),
+ (-0.45399010831290065+0.8910067236300974j), (0.30910023286329796+0.9510294664435246j),
+ (0.30910023286329796+0.9510294664435246j), (0.30910023286329796+0.9510294664435246j),
+ (0.30910023286329796+0.9510294664435246j), (0.6958765427916561+0.7181614283657487j),
+ (0.6958765427916561+0.7181614283657487j), (0.6958765427916561+0.7181614283657487j),
+ (0.6958765427916561+0.7181614283657487j), (0.6995785030650676+0.7145557487343022j),
+ (0.6995785030650676+0.7145557487343022j), (0.6995785030650676+0.7145557487343022j),
+ (0.6995785030650676+0.7145557487343022j), (-0.8755764602527171+0.4830795609952073j),
+ (-0.8755764602527171+0.4830795609952073j), (-0.8755764602527171+0.4830795609952073j),
+ (-0.8755764602527171+0.4830795609952073j), (-0.8320971948858552-0.5546298389584634j),
+ (-0.8320971948858552-0.5546298389584634j), (-0.8320971948858552-0.5546298389584634j),
+ (-0.8320971948858552-0.5546298389584634j), (0.13124680853227685+0.9913497239874998j),
+ (0.13124680853227685+0.9913497239874998j), (0.13124680853227685+0.9913497239874998j),
+ (0.13124680853227685+0.9913497239874998j), (0.9219105024602736-0.38740292390926256j),
+ (0.9219105024602736-0.38740292390926256j), (0.9219105024602736-0.38740292390926256j),
+ (0.9219105024602736-0.38740292390926256j), (0.9881969645782696-0.15318863925988194j),
+ (0.9881969645782696-0.15318863925988194j), (0.9881969645782696-0.15318863925988194j),
+ (0.9881969645782696-0.15318863925988194j), (-0.5511352729247617-0.8344159100461522j),
+ (-0.5511352729247617-0.8344159100461522j), (-0.5511352729247617-0.8344159100461522j),
+ (-0.5511352729247617-0.8344159100461522j), (-0.24665339430031927+0.9691037628036181j),
+ (-0.24665339430031927+0.9691037628036181j), (-0.24665339430031927+0.9691037628036181j),
+ (-0.24665339430031927+0.9691037628036181j), (-0.44951814008601154-0.8932712027898431j),
+ (-0.44951814008601154-0.8932712027898431j), (-0.44951814008601154-0.8932712027898431j),
+ (-0.44951814008601154-0.8932712027898431j), (-0.23300791854304934-0.9724748376673998j),
+ (-0.23300791854304934-0.9724748376673998j), (-0.23300791854304934-0.9724748376673998j),
+ (-0.23300791854304934-0.9724748376673998j), (1+0j), (1+0j), (1+0j), (1+0j),
+ (0.8559628469680924+0.5170373338650489j), (0.8559628469680924+0.5170373338650489j),
+ (0.8559628469680924+0.5170373338650489j), (0.8559628469680924+0.5170373338650489j),
+ (-0.8354473464520049-0.5495704971214372j), (-0.8354473464520049-0.5495704971214372j),
+ (-0.8354473464520049-0.5495704971214372j), (-0.8354473464520049-0.5495704971214372j),
+ (-0.999246638643493+0.03880921488101298j), (-0.999246638643493+0.03880921488101298j),
+ (-0.999246638643493+0.03880921488101298j), (-0.999246638643493+0.03880921488101298j)]'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [256, 196.0]
+ rotation: 0
+ state: disabled
- name: carrier_freq
id: variable
parameters:
@@ -54,7 +113,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [472, 572.0]
+ coordinate: [472, 756.0]
rotation: 0
state: true
- name: excess_bw
@@ -66,7 +125,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [336, 1156.0]
+ coordinate: [336, 1332.0]
rotation: 0
state: true
- name: frame
@@ -80,7 +139,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 612.0]
+ coordinate: [48, 796.0]
rotation: 0
state: disabled
- name: frame_len
@@ -92,7 +151,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [184, 252.0]
+ coordinate: [184, 436.0]
rotation: 0
state: true
- name: nfilts
@@ -104,7 +163,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [256, 1156.0]
+ coordinate: [256, 1332.0]
rotation: 0
state: true
- name: qam_const
@@ -122,7 +181,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [472, 356.0]
+ coordinate: [472, 532.0]
rotation: 0
state: true
- name: rrc_taps
@@ -134,7 +193,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [432, 1156.0]
+ coordinate: [432, 1332.0]
rotation: 0
state: true
- name: samp_rate
@@ -170,7 +229,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 252.0]
+ coordinate: [48, 436.0]
rotation: 0
state: true
- name: analog_random_source_x_0
@@ -190,7 +249,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 420.0]
+ coordinate: [40, 604.0]
rotation: 0
state: true
- name: blocks_complex_to_mag_0
@@ -206,9 +265,9 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1088, 1080.0]
+ coordinate: [1088, 1272.0]
rotation: 0
- state: disabled
+ state: enabled
- name: blocks_null_source_0
id: blocks_null_source
parameters:
@@ -225,7 +284,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 528.0]
+ coordinate: [48, 712.0]
rotation: 0
state: true
- name: blocks_repack_bits_bb_0
@@ -245,7 +304,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [768, 1300.0]
+ coordinate: [768, 1476.0]
rotation: 0
state: true
- name: blocks_stream_mux_0
@@ -264,9 +323,28 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [272, 416.0]
+ coordinate: [272, 600.0]
rotation: 0
state: true
+- name: blocks_stream_mux_1
+ id: blocks_stream_mux
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ lengths: '[len(access_code)*4, len(testvec)//4*sps]'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_inputs: '2'
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [728, 528.0]
+ rotation: 0
+ state: disabled
- name: blocks_stream_to_vector_0
id: blocks_stream_to_vector
parameters:
@@ -282,7 +360,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [992, 1312.0]
+ coordinate: [1000, 1488.0]
rotation: 0
state: true
- name: blocks_tagged_stream_align_0
@@ -300,7 +378,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [496, 1308.0]
+ coordinate: [496, 1484.0]
rotation: 0
state: true
- name: blocks_throttle_0
@@ -319,7 +397,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [744, 444.0]
+ coordinate: [864, 628.0]
rotation: 0
state: true
- name: blocks_vector_source_x_0
@@ -339,9 +417,29 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 324.0]
+ coordinate: [48, 508.0]
rotation: 0
state: true
+- name: blocks_vector_source_x_1
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: complex
+ vector: access_code_sps
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [256, 300.0]
+ rotation: 0
+ state: disabled
- name: channels_channel_model_0
id: channels_channel_model
parameters:
@@ -360,7 +458,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [312, 716.0]
+ coordinate: [312, 900.0]
rotation: 0
state: enabled
- name: channels_selective_fading_model_0
@@ -373,7 +471,7 @@ blocks:
alias: ''
comment: ''
delays: (0,1.8)
- fDTs: ((4*carrier_freq)/(3*10e8))/samp_rate
+ fDTs: ((2*carrier_freq)/(3*10e8))/samp_rate
mags: (1,0.12)
maxoutbuf: '0'
minoutbuf: '0'
@@ -383,9 +481,9 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [600, 572.0]
+ coordinate: [600, 748.0]
rotation: 0
- state: disabled
+ state: enabled
- name: digital_constellation_decoder_cb_0
id: digital_constellation_decoder_cb
parameters:
@@ -399,7 +497,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [256, 1308.0]
+ coordinate: [256, 1484.0]
rotation: 0
state: true
- name: digital_constellation_modulator_0
@@ -420,7 +518,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [472, 420.0]
+ coordinate: [472, 604.0]
rotation: 0
state: true
- name: digital_corr_est_cc_0
@@ -429,18 +527,18 @@ blocks:
affinity: ''
alias: ''
comment: ''
- mark_delay: len(access_code_symbols) // 2
+ mark_delay: len(access_code) // 2
maxoutbuf: '0'
minoutbuf: '0'
sps: '1'
- symbols: access_code_symbols
+ symbols: access_code
threshold: '0.9'
threshold_method: digital.THRESHOLD_ABSOLUTE
states:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [792, 972.0]
+ coordinate: [792, 1148.0]
rotation: 0
state: true
- name: digital_lms_dd_equalizer_cc_0
@@ -453,13 +551,13 @@ blocks:
maxoutbuf: '0'
minoutbuf: '0'
mu: 5e-3
- num_taps: '2'
+ num_taps: '5'
sps: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [520, 980.0]
+ coordinate: [520, 1156.0]
rotation: 0
state: true
- name: digital_pfb_clock_sync_xxx_0
@@ -482,7 +580,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [248, 1004.0]
+ coordinate: [248, 1180.0]
rotation: 0
state: true
- name: fadingui_ber_0
@@ -498,7 +596,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1184, 1300.0]
+ coordinate: [1200, 1468.0]
rotation: 0
state: true
- name: fadingui_datasource_0
@@ -515,7 +613,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [208, 612.0]
+ coordinate: [208, 788.0]
rotation: 0
state: disabled
- name: fadingui_multipath_fading_0
@@ -533,9 +631,9 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [648, 740.0]
+ coordinate: [648, 924.0]
rotation: 0
- state: enabled
+ state: disabled
- name: fadingui_netsink_0
id: fadingui_netsink
parameters:
@@ -549,7 +647,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [984, 620.0]
+ coordinate: [984, 796.0]
rotation: 0
state: enabled
- name: fadingui_netsink_1
@@ -565,7 +663,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [800, 916.0]
+ coordinate: [800, 1100.0]
rotation: 0
state: enabled
- name: fadingui_netsink_3
@@ -581,7 +679,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1280, 916.0]
+ coordinate: [1280, 1100.0]
rotation: 0
state: enabled
- name: fadingui_netsink_4
@@ -597,7 +695,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [528, 916.0]
+ coordinate: [528, 1100.0]
rotation: 0
state: enabled
- name: fadingui_phasecorrection_0
@@ -613,7 +711,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1032, 988.0]
+ coordinate: [1032, 1164.0]
rotation: 0
state: enabled
- name: import_0
@@ -718,9 +816,9 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1304, 800.0]
+ coordinate: [1304, 984.0]
rotation: 0
- state: disabled
+ state: enabled
- name: qtgui_time_sink_x_0
id: qtgui_time_sink_x
parameters:
@@ -815,7 +913,30 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1272, 1060.0]
+ coordinate: [1320, 1252.0]
+ rotation: 0
+ state: enabled
+- name: root_raised_cosine_filter_0
+ id: root_raised_cosine_filter
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha: excess_bw
+ comment: ''
+ decim: '1'
+ gain: '10'
+ interp: '1'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ ntaps: int(samp_rate)
+ samp_rate: samp_rate
+ sym_rate: 1 / sps
+ type: fir_filter_ccf
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [472, 380.0]
rotation: 0
state: disabled
- name: virtual_sink_0
@@ -828,7 +949,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [952, 444.0]
+ coordinate: [1048, 628.0]
rotation: 0
state: true
- name: virtual_sink_1
@@ -841,7 +962,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1000, 756.0]
+ coordinate: [1000, 940.0]
rotation: 0
state: true
- name: virtual_sink_2
@@ -854,7 +975,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [1336, 988.0]
+ coordinate: [1336, 1164.0]
rotation: 0
state: true
- name: virtual_source_0
@@ -867,7 +988,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 1308.0]
+ coordinate: [48, 1484.0]
rotation: 0
state: true
- name: virtual_source_1
@@ -880,7 +1001,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [48, 1052.0]
+ coordinate: [48, 1228.0]
rotation: 0
state: true
- name: virtual_source_2
@@ -893,7 +1014,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
- coordinate: [56, 756.0]
+ coordinate: [56, 940.0]
rotation: 0
state: true
@@ -903,15 +1024,18 @@ connections:
- [blocks_null_source_0, '0', blocks_stream_mux_0, '2']
- [blocks_repack_bits_bb_0, '0', blocks_stream_to_vector_0, '0']
- [blocks_stream_mux_0, '0', digital_constellation_modulator_0, '0']
+- [blocks_stream_mux_1, '0', blocks_throttle_0, '0']
- [blocks_stream_to_vector_0, '0', fadingui_ber_0, '0']
- [blocks_tagged_stream_align_0, '0', blocks_repack_bits_bb_0, '0']
- [blocks_throttle_0, '0', virtual_sink_0, '0']
- [blocks_vector_source_x_0, '0', blocks_stream_mux_0, '0']
+- [blocks_vector_source_x_1, '0', root_raised_cosine_filter_0, '0']
- [channels_channel_model_0, '0', channels_selective_fading_model_0, '0']
- [channels_channel_model_0, '0', fadingui_multipath_fading_0, '0']
- [channels_selective_fading_model_0, '0', fadingui_netsink_0, '0']
- [channels_selective_fading_model_0, '0', virtual_sink_1, '0']
- [digital_constellation_decoder_cb_0, '0', blocks_tagged_stream_align_0, '0']
+- [digital_constellation_modulator_0, '0', blocks_stream_mux_1, '1']
- [digital_constellation_modulator_0, '0', blocks_throttle_0, '0']
- [digital_corr_est_cc_0, '0', fadingui_phasecorrection_0, '0']
- [digital_corr_est_cc_0, '1', blocks_complex_to_mag_0, '0']
@@ -927,6 +1051,7 @@ connections:
- [fadingui_phasecorrection_0, '0', fadingui_netsink_3, '0']
- [fadingui_phasecorrection_0, '0', qtgui_const_sink_x_0, '2']
- [fadingui_phasecorrection_0, '0', virtual_sink_2, '0']
+- [root_raised_cosine_filter_0, '0', blocks_stream_mux_1, '0']
- [virtual_source_0, '0', digital_constellation_decoder_cb_0, '0']
- [virtual_source_1, '0', digital_pfb_clock_sync_xxx_0, '0']
- [virtual_source_2, '0', channels_channel_model_0, '0']