I've never used GMSK Modulator - and the parameters you're using are for GLFSR are for type float.
Enclosed is an example. I set the Throttle to Bypass since it runs better for some reason. Play with samples per symbol and the delay slider. And I used the default configuration values for GMFSK Mod/Demod. -- Cinaed On 06/20/2017 01:59 PM, Estrada Lupianez, Jenniffer Marie wrote: > > Hi, > > 1. There appears to be an issue with the GMSK modulation blocks within > GNU Radio. See the attached screen shots, where I've removed the the > USRP completely from the flow graph, and am running it entirely within > GNU Radio on a x64 host, comparing the two GMSK modulation blocks (GMSK > Mod and GMSK Modulator) available in GNU Radio. > > 2. Also, I am looking at the GLFSR block in GNU Radio, and I am > wondering what the correct input for the GLFSR block parameters should > be for what seems like a very odd configuration, since I want only 13 > bits of a 16 bit stream comprised of 0xA5A5. All three fields, Degree, > Mask, and Seed are type INT. I am looking to use a single length 13 LFSR > polynomial, and have an initial seed of 0xA5A5 (How the 16 bits are > handled to get the 13 bits of interest, depends on what software we are > using, like MATLAB vs System Generator, and the GNU Radio implementation > has to match). > > > What I have currently: > > Type: Byte > > Degree: 13 (int between 0 and 32 according to source code on-line, 13 > seems like the correct input, but is causing some confusion for me with > the Seed value) > > > and while I am fairly certain of those, the following parameters are > what I am uncertain of: > > > > Mask (int format) > > Seed (int format) > > > Am I correct in thinking the Mask parameter is 0x0000100D, in > correlation to the the polynomial degree that I want (13)? I found this > at http://wiki.spench.net/wiki/GNU_Radio_Notes. > <http://wiki.spench.net/wiki/GNU_Radio_Notes> If I understand the GNU > Radio Doxygen documentation and (Balint Seeber's) notes on the website, > then leaving the Mask as 0 will have GNU Radio pick the correct one for > me based on the polynomial degree I enter. > > > If that is the case, then the only thing that is really catching me is > the Seed being a type int, when I am using Type: Byte. Is the input to > this parameter then the 8 bits within the byte? If so, how would I go > about creating the 13 degree polynomial with that configuration? I > was trying to see if the Packet Encoder block or the vector Source block > would be useful for this, but I am not sure it really is what I need for > this. I have a 16 bit hexadecimal value (0xA5A5) that I am to use only > 13 bits out of, but it must be consistent with the formats in System > Generator and MATLAB explained below: > > > Current Method: > A single length-13 LFSR polynomial is used. The feedback polynomial can > be defined in the following formats, all equivalent: > > SystemGenerator/Xilinx: > 0x1901 > > Matlab: > [13, 12, 11, 8, 0] > > Koopman (users.ece.cmu.edu/~koopman/lfsr/): > 0x1013 > > In the Matlab format, the first array entry defines the obligatory > shift-register head, while the last entry likewise defines the tail. In > both the sysgen/xilinx and Koopman formats, the shift-reg head is > implied. However, the resulting binary sequence, without the head bit, > and in hex, is reversed. In other words, SystemGenerator/Xilinx has the > implied head on the left, and Koopman has it on the right. Thus, the > format difference can cause confusion. > > The Koopman method is useful, because his website tabulates millions of > different feedback-polynomials for max-length PRN sequences of differing > lengths. > > M-Code Polynomial (Koopman Format) Reg Init > 0x1601 0x100D 0xA5A5 > > > So, this is the GLFSR configuration that I currently have: > > > [pastedImage.png] > > > If context is needed, I am trying to implement a pre-coded GMSK signal > transmission of a 13 degree LSFR source with the 0xA5A5 seed, of which I > can control how many times the output of the LFSR is generated (I notice > that the repeat option in the LFSR source is only able to be set as > "yes" or "no", but I assume I can tweak that within the python generated > code to override somehow??), using an Ettus E310 SDR. The general layout > of the blocks in the final flow graph could be something like: > > > GLFSR source --> Differential Encoder --> GMSK modulator --> USRP Sink > > > As seen in the precoded_gmsk.grc flowgraph and generated python code > attached. > > > Any assistance is appreciated. > > > Thank you, > > > Jenn > > > > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
<?xml version='1.0' encoding='utf-8'?> <?grc format='1' created='3.7.11'?> <flow_graph> <timestamp>Sat Apr 15 20:19:56 2017</timestamp> <block> <key>options</key> <param> <key>author</key> <value></value> </param> <param> <key>window_size</key> <value></value> </param> <param> <key>category</key> <value>Custom</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>description</key> <value>This is working</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(8, 8)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>generate_options</key> <value>qt_gui</value> </param> <param> <key>hier_block_src_path</key> <value>.:</value> </param> <param> <key>id</key> <value>top_block</value> </param> <param> <key>max_nouts</key> <value>0</value> </param> <param> <key>qt_qss_theme</key> <value></value> </param> <param> <key>realtime_scheduling</key> <value></value> </param> <param> <key>run_command</key> <value>{python} -u {filename}</value> </param> <param> <key>run_options</key> <value>prompt</value> </param> <param> <key>run</key> <value>True</value> </param> <param> <key>thread_safe_setters</key> <value></value> </param> <param> <key>title</key> <value>Simple Mod/Demod</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>(112, 232)</value> </param> <param> <key>gui_hint</key> <value></value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>delay</value> </param> <param> <key>label</key> <value>Delay</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>1</value> </param> <param> <key>stop</key> <value>200</value> </param> <param> <key>rangeType</key> <value>int</value> </param> <param> <key>widget</key> <value>counter_slider</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(8, 160)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>samp_rate</value> </param> <param> <key>value</key> <value> 32768</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(24, 228)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>sps</value> </param> <param> <key>value</key> <value>16</value> </param> </block> <block> <key>blocks_char_to_float</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>(832, 292)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_char_to_float_0_0_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>scale</key> <value>1</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_char_to_float</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>(824, 340)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_char_to_float_0_0_0_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>scale</key> <value>1</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_delay</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>delay</key> <value>delay</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(704, 340)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_delay_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>num_ports</key> <value>1</value> </param> <param> <key>type</key> <value>byte</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_float_to_char</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>(272, 116)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_float_to_char_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>scale</key> <value>1</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_throttle</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>2</value> </param> <param> <key>_coordinate</key> <value>(440, 116)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_throttle_0</value> </param> <param> <key>ignoretag</key> <value>True</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>samples_per_second</key> <value>samp_rate</value> </param> <param> <key>type</key> <value>byte</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_unpack_k_bits_bb</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>(680, 292)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_unpack_k_bits_bb_0</value> </param> <param> <key>k</key> <value>1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>blocks_unpack_k_bits_bb</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>(572, 208)</value> </param> <param> <key>_rotation</key> <value>270</value> </param> <param> <key>id</key> <value>blocks_unpack_k_bits_bb_0_0_0_0</value> </param> <param> <key>k</key> <value>8</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>digital_glfsr_source_x</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>degree</key> <value>13</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(112, 96)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>digital_glfsr_source_x_0</value> </param> <param> <key>mask</key> <value>0x0000100D</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>repeat</key> <value>True</value> </param> <param> <key>seed</key> <value>0xA5A5</value> </param> <param> <key>type</key> <value>float</value> </param> </block> <block> <key>digital_gmsk_demod</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>freq_error</key> <value>0.0</value> </param> <param> <key>_coordinate</key> <value>(888, 88)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>gain_mu</key> <value>10e-3</value> </param> <param> <key>id</key> <value>digital_gmsk_demod_0</value> </param> <param> <key>log</key> <value>False</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>mu</key> <value>0.35</value> </param> <param> <key>omega_relative_limit</key> <value>.00005</value> </param> <param> <key>samples_per_symbol</key> <value>sps</value> </param> <param> <key>verbose</key> <value>False</value> </param> </block> <block> <key>digital_gmsk_mod</key> <param> <key>bt</key> <value>0.35</value> </param> <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>(656, 108)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>digital_gmsk_mod_0</value> </param> <param> <key>log</key> <value>False</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>samples_per_symbol</key> <value>sps</value> </param> <param> <key>verbose</key> <value>True</value> </param> </block> <block> <key>qtgui_sink_x</key> <param> <key>bw</key> <value>samp_rate</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>fc</key> <value>0</value> </param> <param> <key>freqchangevar</key> <value>None</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>fftsize</key> <value>1024</value> </param> <param> <key>_coordinate</key> <value>(632, 16)</value> </param> <param> <key>gui_hint</key> <value></value> </param> <param> <key>_rotation</key> <value>180</value> </param> <param> <key>id</key> <value>qtgui_sink_x_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>name</key> <value>""</value> </param> <param> <key>plotconst</key> <value>False</value> </param> <param> <key>plotfreq</key> <value>True</value> </param> <param> <key>plottime</key> <value>True</value> </param> <param> <key>plotwaterfall</key> <value>True</value> </param> <param> <key>showports</key> <value>True</value> </param> <param> <key>showrf</key> <value>False</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>rate</key> <value>10</value> </param> <param> <key>wintype</key> <value>firdes.WIN_BLACKMAN_hARRIS</value> </param> </block> <block> <key>qtgui_time_sink_x</key> <param> <key>autoscale</key> <value>False</value> </param> <param> <key>axislabels</key> <value>True</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>(992, 300)</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>GMSK Demod</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>"green"</value> </param> <param> <key>label2</key> <value>Random Source</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>2</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>float</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>2</value> </param> <param> <key>ymin</key> <value>-1</value> </param> </block> <connection> <source_block_id>blocks_char_to_float_0_0_0</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_char_to_float_0_0_0_0</source_block_id> <sink_block_id>qtgui_time_sink_x_0</sink_block_id> <source_key>0</source_key> <sink_key>1</sink_key> </connection> <connection> <source_block_id>blocks_delay_0</source_block_id> <sink_block_id>blocks_char_to_float_0_0_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_float_to_char_0</source_block_id> <sink_block_id>blocks_throttle_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_throttle_0</source_block_id> <sink_block_id>blocks_unpack_k_bits_bb_0_0_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_throttle_0</source_block_id> <sink_block_id>digital_gmsk_mod_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id> <sink_block_id>blocks_char_to_float_0_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_unpack_k_bits_bb_0_0_0_0</source_block_id> <sink_block_id>blocks_delay_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_glfsr_source_x_0</source_block_id> <sink_block_id>blocks_float_to_char_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_gmsk_demod_0</source_block_id> <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_gmsk_mod_0</source_block_id> <sink_block_id>digital_gmsk_demod_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_gmsk_mod_0</source_block_id> <sink_block_id>qtgui_sink_x_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> </flow_graph>
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio