none
Meaning of some functions RRS feed

  • Question

  • Hi!! I try to modify SORA code in 802.11a. When I see SORA code, I don't understand some function.

    1) CopyGI(info->cSymbol, info->cSymbol + 128) in Ofdmsymbol.h

    - When I compare with NSDI09 paper (Sora: High Performance Software Radio Using General Purpose Multi-core Processors), this is equivalent to GI addition. However, I don't understand how this function works as GI addition.  Moreover, what is value of sizeof(vcs)?

    2) Window(Info->cSymbol, pcLast) in Ofdmsymbol.h

    - I have no idea on the meaning of this function

    3) UpsampleAndCopyNT(info, pcOutput, info->cSymbol, COMPLEX_PER_OFDM_SYMBOL) in Ofdmsymbol.h

    - I have no idea on the meaning of this function.

    4) DigitalAGC<128 / vcs::size>(__pcTemp, pRxContextA->digitalAGC) in Arx_fd.c

    - I have no idea on the meaning of this function.

    5) When I compare receiving part in NSDI09 paper (Figure1), I don't find Decimation function and Remove GI function in SORA code. How these two functions realized in SORA code?

    Thanks. 

    Friday, June 24, 2011 8:22 PM

Answers

  • 1) CopyGI(info->cSymbol, info->cSymbol + 128) in Ofdmsymbol.h

    - When I compare with NSDI09 paper (Sora: High Performance Software Radio Using General Purpose Multi-core Processors), this is equivalent to GI addition. However, I don't understand how this function works as GI addition.  Moreover, what is value of sizeof(vcs)?

    CopyGI: just copy the last few samples to the front of an OFDM symbol (:) you know why.).

    sizeof(vcs) is 128 bytes, and a vcs contains 4 complex16 samples.

    2) Window(Info->cSymbol, pcLast) in Ofdmsymbol.h

    - I have no idea on the meaning of this function

    windowing (Hamming window, Hanning window, bla bla bla....). Ref the window function in the 802.11a standard.

    3) UpsampleAndCopyNT(info, pcOutput, info->cSymbol, COMPLEX_PER_OFDM_SYMBOL) in Ofdmsymbol.h

    - I have no idea on the meaning of this function.

    This is an optional function.

    Upsample: If the sampling rate of your SORA is 44MHz, then you should use this function to upsample the baseband samples from 40MHz to 44MHz, so that SORA can communicate to a commercial card. If you are working on SORA to SORA communication, you can omit this function.

    CopyNT: convert the raw samples from complex16 to complex8 (8-bit raw IQ samples) and make sure all samples are written to transmission buffer.

    4) DigitalAGC<128 / vcs::size>(__pcTemp, pRxContextA->digitalAGC) in Arx_fd.c

    - I have no idea on the meaning of this function.

    Digital AGC: make samples fill the dynamic range of complex16, I think.

    5) When I compare receiving part in NSDI09 paper (Figure1), I don't find Decimation function and Remove GI function in SORA code. How these two functions realized in SORA code?

    Decimation: you can see this function: FetchDMADataTouchDownSampled. It performs the decimation.

    Remove GI: you can find the code like this in arx_fd.c:

            // ignore first 8 complexes

            // we use no. 8 - 72 to do fft, 

            // this has the same alignment for 24 - 84 complex in

            // long preamble

            __pcTemp += SYM_CP_SKIP; 

    Note “__pcTemp += SYM_CP_SKIP; ”  this is equivalent to removing GI.

     

    Hope my answers will help you!


    Danial.F
    • Marked as answer by Kun Tan Saturday, July 2, 2011 3:00 AM
    Tuesday, June 28, 2011 4:24 PM

All replies

  • 1) CopyGI(info->cSymbol, info->cSymbol + 128) in Ofdmsymbol.h

    - When I compare with NSDI09 paper (Sora: High Performance Software Radio Using General Purpose Multi-core Processors), this is equivalent to GI addition. However, I don't understand how this function works as GI addition.  Moreover, what is value of sizeof(vcs)?

    CopyGI: just copy the last few samples to the front of an OFDM symbol (:) you know why.).

    sizeof(vcs) is 128 bytes, and a vcs contains 4 complex16 samples.

    2) Window(Info->cSymbol, pcLast) in Ofdmsymbol.h

    - I have no idea on the meaning of this function

    windowing (Hamming window, Hanning window, bla bla bla....). Ref the window function in the 802.11a standard.

    3) UpsampleAndCopyNT(info, pcOutput, info->cSymbol, COMPLEX_PER_OFDM_SYMBOL) in Ofdmsymbol.h

    - I have no idea on the meaning of this function.

    This is an optional function.

    Upsample: If the sampling rate of your SORA is 44MHz, then you should use this function to upsample the baseband samples from 40MHz to 44MHz, so that SORA can communicate to a commercial card. If you are working on SORA to SORA communication, you can omit this function.

    CopyNT: convert the raw samples from complex16 to complex8 (8-bit raw IQ samples) and make sure all samples are written to transmission buffer.

    4) DigitalAGC<128 / vcs::size>(__pcTemp, pRxContextA->digitalAGC) in Arx_fd.c

    - I have no idea on the meaning of this function.

    Digital AGC: make samples fill the dynamic range of complex16, I think.

    5) When I compare receiving part in NSDI09 paper (Figure1), I don't find Decimation function and Remove GI function in SORA code. How these two functions realized in SORA code?

    Decimation: you can see this function: FetchDMADataTouchDownSampled. It performs the decimation.

    Remove GI: you can find the code like this in arx_fd.c:

            // ignore first 8 complexes

            // we use no. 8 - 72 to do fft, 

            // this has the same alignment for 24 - 84 complex in

            // long preamble

            __pcTemp += SYM_CP_SKIP; 

    Note “__pcTemp += SYM_CP_SKIP; ”  this is equivalent to removing GI.

     

    Hope my answers will help you!


    Danial.F
    • Marked as answer by Kun Tan Saturday, July 2, 2011 3:00 AM
    Tuesday, June 28, 2011 4:24 PM
  • Hi Danial,

     

    Thank you for the answers! That is great!

     

    - Kun

    Saturday, July 2, 2011 3:00 AM