Forum: GNU Radio RE: Re: Complex samples format with ASK

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Marco Bottino (Guest)
on 2008-12-03 18:55
(Received via mailing list)
Attachment: usrp_am_mw_rcv_002.py (0 Bytes)
Hello,

thank you very much for answering me.


Selon Paul M. <removed_email_address@domain.invalid>:

> >  4. Find the magnitude (or even power since it saves a sqrt) of the
> before
>
> http://en.wikipedia.org/wiki/Manchester_coding
> A good example of channel filtering and AM demodulation using complex_to_mag
> is usrp_am_mw_rcv.py. That example is setup for AM broadcast, so you'll want
> to widen the channel filter BW out to accomodate the baud rate you're using,
> and, you can eliminate the audio filtering and sink code.

I am trying to understand how to modify usrp_am_mw_rcv.py code:
I have eliminated everything inherent the volume and the audio and I
have
modified the parameters in that way:
16 as usrp_decim
1 as chanfilt_decim

chan_filt_coeffs:
400e3 as passband cutoff
410e3 as stopband cutoff
1.0 as passband ripple
60 as stopband attenuation

Is it correct?
(To be more clear I have attached the .py modified file)
I think I'll still have some troubles with the GUI, but so far this is
the
message error I got:

root@localhost:~/Desktop# ./usrp_am_mw_rcv_002.py -R B -f 13560000
Using RX d'board B: LF Rx
>>> gr_fir_ccf: using SSE

** (python:6937): WARNING **: IPP request failed with status 1030
FYI: No Powermate or Contour Knob found
Traceback (most recent call last):
  File "./usrp_am_mw_rcv_002.py", line 335, in <module>
    app = stdgui2.stdapp (wfm_rx_block, "USRP Broadcast AM MW RX
modified")
  File
"/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/stdgui2.py", line
36, in __init__
    wx.App.__init__ (self, redirect=False)
  File
"/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line
7935, in __init__
    self._BootstrapApp()
  File
"/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line
7509, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File
"/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/stdgui2.py", line
39, in OnInit
    frame = stdframe (self.top_block_maker, self.title, self._nstatus)
  File
"/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/stdgui2.py", line
60, in __init__
    self.panel = stdpanel (self, self, top_block_maker)
  File
"/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/stdgui2.py", line
86, in __init__
    self.top_block.start ()
  File
"/usr/local/lib/python2.5/site-packages/gnuradio/gr/top_block.py", line
45, in start
    self._tb.start()
  File
"/usr/local/lib/python2.5/site-packages/gnuradio/gr/gnuradio_swig_py_runtime.py",
line 1461, in start
    return _gnuradio_swig_py_runtime.gr_top_block_sptr_start(*args)
RuntimeError: complex_to_mag(4): insufficient connected output ports (1
needed,
0 connected)




> coupling with the reader, like this:
>
>
>        ___     ___    ___
>       |   |___|   |__|   |
>  0 ___|                  |___
>
> In either case, you can threshold the data at some value less than the
> average peak to do a crude conversion from envelope to bits. In turn, you
> can examine the bitstream to locate bit transitions. The bit stream can then
> be decoded.

Here I have another question: at the moment I am trying to do that in
Matlab
because of my so much inexperience in programming with Gnuradio. My
problem is
to recognize the length of the bits... Once I have converted the I/Q
samples in
magnitude, do I have to work in time domain or in the samples domain?
(to be
more clear, counting the microseconds or counting the number of the
samples to
identify a bit period?)


> There are better ways, e.g., using matched filters, to identify
> Manchester codes directly from the envelope data, but this should get you
> started.
> Paul M.
>
>
>

Thank you very much,

Marco
C.cc J. (Guest)
on 2008-12-04 06:35
Hello Marco

  (1) You use an opt. filter to get the passband from 400kHz to 410kHz.
      your message is on frequency 4** kHz?

  (2) After I run your code, I got different error (GUI error)
      on
      File "usrp_am_mw_rcv_002.py", line 309, in set_freq
      self.update_status_bar()
      File "usrp_am_mw_rcv_002.py", line 321, in update_status_bar
      msg = "Volume:%r  Setting:%s" % (self.vol, self.state)

      if I remark this two line. give up update_status_bar() then,
      the error is the same as yours.

      I guess, the problem is in
      self.connect (self.u, self.chan_filt, self.am_demod) <-
      Do you try to connect some sink block after self.am_demo
such like scopesink.scope_sink_f


   (3)
      Matlab? I didn't try my USRP on Matlab.
      Q: work in time domain or in the samples domain?
      The code is on time domain, isn't.

   (4)
   In Paul says:
>> There are better ways, e.g., using matched filters, to identify
>> Manchester codes directly from the envelope data, but this should get you
>> started.

   I prefer to use matched filter, but i also got another different
question.
   How do i know, the package start. hmm... I need more and more study!!

CJay

Marco Bottino wrote:
> I am trying to understand how to modify usrp_am_mw_rcv.py code:
> I have eliminated everything inherent the volume and the audio and I
> have
> modified the parameters in that way:
> 16 as usrp_decim
> 1 as chanfilt_decim
>
> chan_filt_coeffs:
> 400e3 as passband cutoff
> 410e3 as stopband cutoff
> 1.0 as passband ripple
> 60 as stopband attenuation
>
> Is it correct?
> (To be more clear I have attached the .py modified file)
> I think I'll still have some troubles with the GUI, but so far this is
> the
> message error I got:
>
> root@localhost:~/Desktop# ./usrp_am_mw_rcv_002.py -R B -f 13560000
> Using RX d'board B: LF Rx
>>>> gr_fir_ccf: using SSE
>
> ...
> "/usr/local/lib/python2.5/site-packages/gnuradio/gr/gnuradio_swig_py_runtime.py",
> line 1461, in start
>     return _gnuradio_swig_py_runtime.gr_top_block_sptr_start(*args)
> RuntimeError: complex_to_mag(4): insufficient connected output ports (1
> needed,
> 0 connected)
>
>
>
>
>> coupling with the reader, like this:
>>
>>
>>        ___     ___    ___
>>       |   |___|   |__|   |
>>  0 ___|                  |___
>>
>> In either case, you can threshold the data at some value less than the
>> average peak to do a crude conversion from envelope to bits. In turn, you
>> can examine the bitstream to locate bit transitions. The bit stream can then
>> be decoded.
>
> Here I have another question: at the moment I am trying to do that in
> Matlab
> because of my so much inexperience in programming with Gnuradio. My
> problem is
> to recognize the length of the bits... Once I have converted the I/Q
> samples in
> magnitude, do I have to work in time domain or in the samples domain?
> (to be
> more clear, counting the microseconds or counting the number of the
> samples to
> identify a bit period?)
>
>
>> There are better ways, e.g., using matched filters, to identify
>> Manchester codes directly from the envelope data, but this should get you
>> started.
>> Paul M.
>>
>>
>>
>
> Thank you very much,
>
> Marco
This topic is locked and can not be replied to.