DSPRelated.com
Forums

OFDM with DAB

Started by Fox October 19, 2007
Hello,

I'm developing a project of a DAB signal generator in C but I have some
doubts about the OFDM modulation. Let's suppose to have a vector of 1536
elements (=number of carriers), they are ordered in such way that the
first element (index 0) is the simbol that has to modulate the carrier
-768 and the last element (index 1535) is the simbol that has to modulate
the carrier 768. The DC has not to be modulated. The problem is now how to
re-order simbols before performing IFFT. The IFFT has to be performed over
2048 points so I have created a new vector in which the first element is 0
(it should correspond to the DC) then we have the second half of the
original vector (that should correspond to positive carries from 1 to
768), then we have padding zeros and finally the first half of the
original vector (that should correspond to negative carries from -768 to
-1). Is it correct? 
If someone is able to help me I will be very grateful...

Fox
>Hello, > >I'm developing a project of a DAB signal generator in C but I have some >doubts about the OFDM modulation. Let's suppose to have a vector of 1536 >elements (=number of carriers), they are ordered in such way that the >first element (index 0) is the simbol that has to modulate the carrier >-768 and the last element (index 1535) is the simbol that has to
modulate
>the carrier 768. The DC has not to be modulated. The problem is now how
to
>re-order simbols before performing IFFT. The IFFT has to be performed
over
>2048 points so I have created a new vector in which the first element is
0
>(it should correspond to the DC) then we have the second half of the >original vector (that should correspond to positive carries from 1 to >768), then we have padding zeros and finally the first half of the >original vector (that should correspond to negative carries from -768 to >-1). Is it correct? >If someone is able to help me I will be very grateful... > >Fox >
no one can help me?
On 2007-10-20 03:58:29 -0600, "Fox" <aldart@libero.it> said:

>> Hello, >> >> I'm developing a project of a DAB signal generator in C but I have some >> doubts about the OFDM modulation. Let's suppose to have a vector of 1536 >> elements (=number of carriers), they are ordered in such way that the >> first element (index 0) is the simbol that has to modulate the carrier >> -768 and the last element (index 1535) is the simbol that has to > modulate >> the carrier 768. The DC has not to be modulated. The problem is now how > to >> re-order simbols before performing IFFT. The IFFT has to be performed > over >> 2048 points so I have created a new vector in which the first element is > 0 >> (it should correspond to the DC) then we have the second half of the >> original vector (that should correspond to positive carries from 1 to >> 768), then we have padding zeros and finally the first half of the >> original vector (that should correspond to negative carries from -768 to >> -1). Is it correct? >> If someone is able to help me I will be very grateful... >> >> Fox >> > > no one can help me?
Depends on your FFT. Let's say the FFT maps DC at index 0, then goes on up from there. Insert a zero at the beginning of the FFT vector (for DC). Map your 768 to index 1, continue up to your 1535. Next comes the implied guard band ("implied" means I figure anything left will be for guard). You've got 1536 elements to map, you "spend" one carrier on DC, so you've got 511 unused carriers that will serve as a guard band. Let's put 255 on the "right side" and 256 on the "left side". You'll wrap around from most positive to most negative at index 1024 of your FFT, so you can just put all the guard band carriers in there together, then you finish up by mapping your index 0-767 into the last part of the FFT vector. In case the above is confusing (highly likely, considering my current state), I'll toss in a picture: | zeros (guard) x 256 | data | DC | data | zeros (guard x 255) | For an FFT implementation that starts at DC=index 0: 0 [your 768-1535] [511 zeros] [ your 0-767] Make sense?
>On 2007-10-20 03:58:29 -0600, "Fox" <aldart@libero.it> said: > >>> Hello, >>> >>> I'm developing a project of a DAB signal generator in C but I have
some
>>> doubts about the OFDM modulation. Let's suppose to have a vector of
1536
>>> elements (=number of carriers), they are ordered in such way that the >>> first element (index 0) is the simbol that has to modulate the
carrier
>>> -768 and the last element (index 1535) is the simbol that has to >> modulate >>> the carrier 768. The DC has not to be modulated. The problem is now
how
>> to >>> re-order simbols before performing IFFT. The IFFT has to be performed >> over >>> 2048 points so I have created a new vector in which the first element
is
>> 0 >>> (it should correspond to the DC) then we have the second half of the >>> original vector (that should correspond to positive carries from 1 to >>> 768), then we have padding zeros and finally the first half of the >>> original vector (that should correspond to negative carries from -768
to
>>> -1). Is it correct? >>> If someone is able to help me I will be very grateful... >>> >>> Fox >>> >> >> no one can help me? > >Depends on your FFT. Let's say the FFT maps DC at index 0, then goes >on up from there. Insert a zero at the beginning of the FFT vector >(for DC). Map your 768 to index 1, continue up to your 1535. Next >comes the implied guard band ("implied" means I figure anything left >will be for guard). You've got 1536 elements to map, you "spend" one >carrier on DC, so you've got 511 unused carriers that will serve as a >guard band. Let's put 255 on the "right side" and 256 on the "left >side". You'll wrap around from most positive to most negative at index >1024 of your FFT, so you can just put all the guard band carriers in >there together, then you finish up by mapping your index 0-767 into the >last part of the FFT vector. > >In case the above is confusing (highly likely, considering my current >state), I'll toss in a picture: > >| zeros (guard) x 256 | data | DC | data | zeros (guard x 255)
|
> >For an FFT implementation that starts at DC=index 0: > >0 [your 768-1535] [511 zeros] [ your 0-767] > >Make sense? > > >
This is just what I have done. Thank you very much for your reply