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
OFDM with DAB
Started by ●October 19, 2007
Reply by ●October 20, 20072007-10-20
>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 tomodulate>the carrier 768. The DC has not to be modulated. The problem is now howto>re-order simbols before performing IFFT. The IFFT has to be performedover>2048 points so I have created a new vector in which the first element is0>(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?
Reply by ●October 20, 20072007-10-20
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?
Reply by ●October 22, 20072007-10-22
>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 havesome>>> doubts about the OFDM modulation. Let's suppose to have a vector of1536>>> elements (=number of carriers), they are ordered in such way that the >>> first element (index 0) is the simbol that has to modulate thecarrier>>> -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 nowhow>> 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 elementis>> 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 -768to>>> -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