DSPRelated.com
Forums

OFDM xor mashup

Started by Syd Rumpo February 4, 2013
Hi

I'm developing a custom OFDM modem.  I use 52 carriers each encoding one 
nibble, so 26 bytes at a time.

In order to avoid large peaks on transmit, I Xor the 26 bytes with 
'randomly selected' 26 bytes before FFT and do the reverse on receive. 
These bytes were simply made using VB to make 26 'random' numbers.  This 
works well, but it's not very scientific.

How would I go about choosing suitable numbers for best performance?  My 
main concern is when the data is all the same - zeros or ones. I'm 
resource limited with regard to processing power.

Cheers
-- 
Syd
On Mon, 04 Feb 2013 23:31:40 +0000, Syd Rumpo wrote:

> Hi > > I'm developing a custom OFDM modem. I use 52 carriers each encoding one > nibble, so 26 bytes at a time. > > In order to avoid large peaks on transmit, I Xor the 26 bytes with > 'randomly selected' 26 bytes before FFT and do the reverse on receive. > These bytes were simply made using VB to make 26 'random' numbers. This > works well, but it's not very scientific. > > How would I go about choosing suitable numbers for best performance? My > main concern is when the data is all the same - zeros or ones. I'm > resource limited with regard to processing power. > > Cheers
Actually, if I'm not mistaken you need to worry any time all of the nibbles are the same pattern (which will give you a honkin' big pulse at the phase encoded by that pattern), and any time the phase of the carriers is offset by a constant amount with frequency (which will give you a honkin' big pulse at some time other than the center of the frame). And if you just XOR by a fixed number, then you have to worry if any of the above conditions happen _after_ the XOR, instead of before. For truly random data you haven't changed your chances of success, but for most real data all zeros or all ones is probably most likely. There. I've almost exhausted my knowledge of OFDM. Just one more thing to add: I've seen the peak/average ratio problem discussed before on this group, and if I recall correctly there isn't a tidy solution to it. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
"Syd Rumpo" <usenet@nononono.co.uk> wrote in message 
news:kepgbt$utk$1@dont-email.me...
> Hi > > I'm developing a custom OFDM modem. I use 52 carriers each encoding one > nibble, so 26 bytes at a time. > > In order to avoid large peaks on transmit, I Xor the 26 bytes with > 'randomly selected' 26 bytes before FFT and do the reverse on receive. > These bytes were simply made using VB to make 26 'random' numbers. This > works well, but it's not very scientific. > > How would I go about choosing suitable numbers for best performance? My > main concern is when the data is all the same - zeros or ones. I'm > resource limited with regard to processing power.
There is approximately bazillion of methods for OFDM PAPR reduction; here are the simplest ones: At every frame, try several pseudorandom xoring sequences from different seeds, as long as computation permits. Select the one that makes for best PAPR. Transmit randseed along with the data. This is not very scientific but it works. Leave some subcarriers unoccupied. Generate the signal. Then use those redundant subcarriers to generate anti-signal to attenuate the worst peaks in the signal. If you could allow for ~20% redundancy, significant improvement is possible. There are scientific methods for OFDM optimal coding for PAPR, although those methods are hardly practical. Vladimir Vassilevsky DSP and Mixed Signal Consultant www.abvolt.com
On Mon, 04 Feb 2013 18:03:04 -0600, Vladimir Vassilevsky wrote:

> "Syd Rumpo" <usenet@nononono.co.uk> wrote in message > news:kepgbt$utk$1@dont-email.me... >> Hi >> >> I'm developing a custom OFDM modem. I use 52 carriers each encoding >> one nibble, so 26 bytes at a time. >> >> In order to avoid large peaks on transmit, I Xor the 26 bytes with >> 'randomly selected' 26 bytes before FFT and do the reverse on receive. >> These bytes were simply made using VB to make 26 'random' numbers. >> This works well, but it's not very scientific. >> >> How would I go about choosing suitable numbers for best performance? >> My main concern is when the data is all the same - zeros or ones. I'm >> resource limited with regard to processing power. > > There is approximately bazillion of methods for OFDM PAPR reduction; > here are the simplest ones: > > At every frame, try several pseudorandom xoring sequences from different > seeds, as long as computation permits. Select the one that makes for > best PAPR. Transmit randseed along with the data. This is not very > scientific but it works. > > Leave some subcarriers unoccupied. Generate the signal. Then use those > redundant subcarriers to generate anti-signal to attenuate the worst > peaks in the signal. If you could allow for ~20% redundancy, significant > improvement is possible. > > There are scientific methods for OFDM optimal coding for PAPR, although > those methods are hardly practical.
Well, so much for my recollection of reducing PAPR in OFDM. Thanks for posting this. My Inner Egghead wants to combine the PAPR reduction with error correcting codes, basically making all of the allowable code words ones that also result in the lowest PAPR. I gather that doing so in any computationally tractable way is not a slam-dunk, or someone would be doing it already. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
On Mon, 04 Feb 2013 23:31:40 +0000, Syd Rumpo <usenet@nononono.co.uk>
wrote:

>Hi > >I'm developing a custom OFDM modem. I use 52 carriers each encoding one >nibble, so 26 bytes at a time. > >In order to avoid large peaks on transmit, I Xor the 26 bytes with >'randomly selected' 26 bytes before FFT and do the reverse on receive. >These bytes were simply made using VB to make 26 'random' numbers. This >works well, but it's not very scientific. > >How would I go about choosing suitable numbers for best performance? My >main concern is when the data is all the same - zeros or ones. I'm >resource limited with regard to processing power. > >Cheers >-- >Syd
Syd, You're more or less on the right track. Randomization has very good bang for the buck for PAPR reduction in OFDM. Usually a linear-feedback "scrambler" is used for randomization rather than a LUT of precomputed values, but either can be made to work if one is careful. This process is also sometimes referred to as "whitening", as it serves to flatten out the spectrum of the transmitted signal. http://www.lfsrscrambler.com/ http://en.wikipedia.org/wiki/Scrambler On the Wiki site there are links at the bottom of the page to some commonly used scramblers. If you want to use a LUT instead of an LFSR system, the system needs to have enough entropy (i.e., be random enough) to not create repetitive patterns that will detrimentally affect the output characteristics. This can be done with relatively small LUTs if some other mechanism is used to randomize the access to the LUT, which really just creates another randomization problem. If the output width of the LUT aligns with the partitions of the subcarrier data, e.g., they're both nybbles, this can make it harder to get effective randomization. One of the advantages of the LFSR is that the lengths are often odd, so there is not correlation between the LFSR output and any type of framing boundary. Hope that helps a bit or two. Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Syd Rumpo wrote:
> Hi > > I'm developing a custom OFDM modem. I use 52 carriers each encoding one > nibble, so 26 bytes at a time. > > In order to avoid large peaks on transmit, I Xor the 26 bytes with > 'randomly selected' 26 bytes before FFT and do the reverse on receive. > These bytes were simply made using VB to make 26 'random' numbers. This > works well, but it's not very scientific. > > How would I go about choosing suitable numbers for best performance? My > main concern is when the data is all the same - zeros or ones. I'm > resource limited with regard to processing power. > > Cheers
http://www.tijst.net/issues/2002/no3/2002_v7_no3_8.pdf -- Les Cargill
On Mon, 04 Feb 2013 18:09:38 -0600, Tim Wescott <tim@seemywebsite.com>
wrote:

>On Mon, 04 Feb 2013 18:03:04 -0600, Vladimir Vassilevsky wrote: > >> "Syd Rumpo" <usenet@nononono.co.uk> wrote in message >> news:kepgbt$utk$1@dont-email.me... >>> Hi >>> >>> I'm developing a custom OFDM modem. I use 52 carriers each encoding >>> one nibble, so 26 bytes at a time. >>> >>> In order to avoid large peaks on transmit, I Xor the 26 bytes with >>> 'randomly selected' 26 bytes before FFT and do the reverse on receive. >>> These bytes were simply made using VB to make 26 'random' numbers. >>> This works well, but it's not very scientific. >>> >>> How would I go about choosing suitable numbers for best performance? >>> My main concern is when the data is all the same - zeros or ones. I'm >>> resource limited with regard to processing power. >> >> There is approximately bazillion of methods for OFDM PAPR reduction; >> here are the simplest ones: >> >> At every frame, try several pseudorandom xoring sequences from different >> seeds, as long as computation permits. Select the one that makes for >> best PAPR. Transmit randseed along with the data. This is not very >> scientific but it works. >> >> Leave some subcarriers unoccupied. Generate the signal. Then use those >> redundant subcarriers to generate anti-signal to attenuate the worst >> peaks in the signal. If you could allow for ~20% redundancy, significant >> improvement is possible. >> >> There are scientific methods for OFDM optimal coding for PAPR, although >> those methods are hardly practical. > >Well, so much for my recollection of reducing PAPR in OFDM. Thanks for >posting this.
>My Inner Egghead wants to combine the PAPR reduction with error >correcting codes, basically making all of the allowable code words ones >that also result in the lowest PAPR. I gather that doing so in any >computationally tractable way is not a slam-dunk, or someone would be >doing it already.
That idea was heavily researched about ten years ago, and you're right, not much came of it. Most of the PAPR techniques have tradeoffs that make them system dependent. What was suggested above doesn't fit into most systems, so they're almost never used in my experience. Since the worst PAPR cases for OFDM are fairly pathological, e.g., all of the subcarriers have the exact same phase, scrambling is usually the first line of defense since it takes care of most of the worst-offending cases, the complexity is low, and it's a common thing to have in a comm system, anyway. There are some other fairly simple things that can be done that are system dependent, and many systems these days take care of a lot of related issues with the PA and the control for the PA. Depending on the system constraints, like complexity and latency tradeoffs, some techniques may be more desirable than others. For systems where PAPR creates big problems, the common path is to just not use OFDM. e.g., LTE uses SC-FDMA, which sort-of turns OFDM back into single-carrier, specifically to avoid the PAPR problems.
>-- >My liberal friends think I'm a conservative kook. >My conservative friends think I'm a liberal kook. >Why am I not happy that they have found common ground? > >Tim Wescott, Communications, Control, Circuits & Software >http://www.wescottdesign.com
Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Thank you all for your help and suggestions, it's been most useful.

Cheers
-- 
Syd