Meaning of some functions
-
24 iunie 2011 20:22
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.
Toate mesajele
-
28 iunie 2011 16:24
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- Marcat ca răspuns de Kun TanOwner 2 iulie 2011 03:00
-
2 iulie 2011 03:00Proprietar
Hi Danial,
Thank you for the answers! That is great!
- Kun