Forum: GNU Radio ofdm parameters

Bec2300c991897027988770ce96bb134?d=identicon&s=25 Sara Chérif (Guest)
on 2014-06-21 16:01
(Received via mailing list)
Hello ,

I want to implement ofdm system with these parameters:

FFT length=128

Occupied subcarriers=117.

4 pilots

1 DC

6 zeros subcarriers .

I put  these parameters in ofdm tx & ofdm Rx:

Occupied carriers =(range(-58,-42)+range(-41, -14) + range(-13, -7) +
range(-6, 0) + range(1, 7) + range(7, 14) + range(15, 42)+range(43,60),)

pilots carriers=((-42, -14, 14, 42,),)

pilot symbols =(((-1,1j),(1,-1j),(-1,1j),(-1j,1),),)


But I got this error , I don't understand what is wrong


File
"/usr/local/lib/python2.7/dist-packages/gnuradio/digital/digital_swig.py",
line 4635, in make
    return _digital_swig.ofdm_equalizer_simpledfe_make(*args, **kwargs)
TypeError: in method 'ofdm_equalizer_simpledfe_make', argument 5 of type
'std::vector< std::vector< gr_complex,std::allocator< gr_complex >
>,std::allocator< std::vector< gr_complex,std::allocator< gr_complex > > >
> const &'

Thanks.
D17685d174fee4ca258c75cce7bc2202?d=identicon&s=25 Marcus Müller (Guest)
on 2014-06-21 16:30
(Received via mailing list)
Hello Sara,

It's hard to tell without you offering us the actual line where you call
make, but from looking at your symbols variable I'd say you have a tuple
containing a tuple of tuples of floats,
and what you need would be a
tuple of tuples containing complexes.

Note that (1,1j) is *not* a complex, but 1+1j is.

Greetings,
Marcus
Bec2300c991897027988770ce96bb134?d=identicon&s=25 Sara Chérif (Guest)
on 2014-06-22 17:11
(Received via mailing list)
Thanks Marcus .
I want to append 2 plots on same graph ( the transmitted signal and the
received signal ) . I connected  WX GUI scope sink to the ofdm tx and
another one to the ofdm rx . I put CFO model & channel model between the
tx
& rx . I want to compare between the signals while changing offset and
noise. How can I append them on same graph ? & Is there any other method
to
plot in GNU Radio ?

Thanks in advance .


2014-06-21 17:29 GMT+03:00 Marcus Müller <marcus.mueller@ettus.com>:
D17685d174fee4ca258c75cce7bc2202?d=identicon&s=25 Marcus Müller (Guest)
on 2014-06-22 17:31
(Received via mailing list)
Hi Sara,
when looking into the "Instrumentation" Category in the Companion, you
will notice two subcategories with several different visualization
types.
On many of these, you can set a number of input ports.

Greetings,
Marcus
Bec2300c991897027988770ce96bb134?d=identicon&s=25 Sara Chérif (Guest)
on 2014-06-23 18:33
(Received via mailing list)
Attachment: loopback.png (300 KB)
Attachment: plot.png (100 KB)
I plot the signal before the tx and after the rx on same graph to
compare
between them while increasing noise to know how much noise can affect it
for different types of channel & frequency offset . But when I set noise
to
zero  , I find that the 2 signals are not the same ! why ?! They may be
the
same but they are not synchronized . How to solve this problem ?
(Attached the loopback.grc & the graph)
------------------------------------------------------------------------------------------------------
Second , There is a variable called sync word , I know that it is for
synchronization using schmidl and cox algorithm  & I know that is takes
fft length & occupied carriers & pilot carriers
as it is written in "ofdm_rxrx.py
"if sync_word1 is None:
            self.sync_word1 = _make_sync_word1(fft_len,
occupied_carriers,
pilot_carriers)"

But why I get an error syaying that " sync words must be fft length"
when I
write in sync word 1 & sync word 2 fields in the tx & rx block : (128,
(range(-61,-42)+range(-41, -14) + range(-13, -7) + range(-6, 0) +
range(1,
7) + range(7, 14) + range(15, 42)+range(43,62),) ,  ((-42, -14, 14,
42,),)
) ?
------------------------------------------------------------------------------------------------------------
Third , I tried my parameters in loopback example & I got no error , but
I
want to try tx_ofdm.grc with my parameters & put file sink after each
block
to understand , but I got an error in tx_ofdm.grc . Why I got an error
while the same parameters don't give an error in loopback ?!!
Only I changed these parameters to be mine in tx & rx :
fft len=128 , CP =fft_len/8=16 , packet length=87
 occupied carriers = (range(-61,-42)+range(-41, -14) + range(-13, -7) +
range(-6, 0) + range(1, 7) + range(7, 14) + range(15, 42)+range(43,62),)
pilot carriers :  ((-42, -14, 14, 42,),)
pilot symbols : (((-1+1j),(1-1j),(-1+1j),(-1-1j),),)
sync_word1=None , sync_word2=None

Here is the full output when executing :
Using Volk machine: sse4_2_64_orc
Traceback (most recent call last):
  File "/home/sara/trials/tx_ofdm.py", line 241, in <module>
    tb = tx_ofdm()
  File "/home/sara/trials/tx_ofdm.py", line 100, in __init__
    self.digital_ofdm_carrier_allocator_cvc_0 =
digital.ofdm_carrier_allocator_cvc(fft_len, occupied_carriers,
pilot_carriers, pilot_symbols, (sync_word1, sync_word2), length_tag_key)
  File
"/usr/local/lib/python2.7/dist-packages/gnuradio/digital/digital_swig.py",
line 4312, in make
    return _digital_swig.ofdm_carrier_allocator_cvc_make(*args,
**kwargs)
TypeError: in method 'ofdm_carrier_allocator_cvc_make', argument 5 of
type
'std::vector< std::vector< gr_complex,std::allocator< gr_complex >
>,std::allocator< std::vector< gr_complex,std::allocator< gr_complex > > >
> const &'

Thanks is advance


2014-06-22 18:30 GMT+03:00 Marcus Müller <marcus.mueller@ettus.com>:
D17685d174fee4ca258c75cce7bc2202?d=identicon&s=25 Marcus Müller (Guest)
on 2014-06-23 19:30
(Received via mailing list)
Hi Sara,
On 23.06.2014 18:31, Sara Chrif wrote:
> I plot the signal before the tx and after the rx on same graph to compare
> between them while increasing noise to know how much noise can affect it
> for different types of channel & frequency offset . But when I set noise to
> zero  , I find that the 2 signals are not the same ! why ?! They may be the
> same but they are not synchronized . How to solve this problem ?
> (Attached the loopback.grc & the graph)
If one is delayed longer than the other, use the delay block to
compensate for this.

> (range(-61,-42)+range(-41, -14) + range(-13, -7) + range(-6, 0) + range(1,
> 7) + range(7, 14) + range(15, 42)+range(43,62),) ,  ((-42, -14, 14, 42,),)
> ) ?
Ok, this is a little much python parsing to do it in my head. Have you
verified that len(<your range concatenation>) is actually correct? For
my python interpreter, it's 117, not 128, just like the error said.
> sync_word1=None , sync_word2=None
>   File
> "/usr/local/lib/python2.7/dist-packages/gnuradio/digital/digital_swig.py",
> line 4312, in make
>     return _digital_swig.ofdm_carrier_allocator_cvc_make(*args, **kwargs)
> TypeError: in method 'ofdm_carrier_allocator_cvc_make', argument 5 of type
> 'std::vector< std::vector< gr_complex,std::allocator< gr_complex >
>> ,std::allocator< std::vector< gr_complex,std::allocator< gr_complex > > >
>> const &'
Again, this is a type error which has to do with the content and/or
shape of your parameters. You'll have to figure this one out yourself.

> Thanks is advance
No problem! However, I feel that you tend to ask questions that, with a
little more investigative vigor, you would have answered yourself, so
maybe it would pay to work a little more thoroughly before mailing the
list. That being said, whenever you're stuck, feel absolutely free and
encouraged to ask!

Greetings,
Marcus
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.