[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] question about the synchronization symbol used in
From: |
Martin Braun |
Subject: |
Re: [Discuss-gnuradio] question about the synchronization symbol used in ofdm example |
Date: |
Mon, 03 Nov 2014 08:14:22 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
On 11/02/2014 04:44 PM, xianda wrote:
> Hello all:
> Thank you in advance.I have two questions about the symbol
> used in ofdm example.
> 1.The first synchronization symbol is:
>
> n1=00000001.414213538169860[...]
Waah lots of numbers.
If the first half wasn't identical to the second half, this wouldn't
work. Also, it's a mathemetical necessity given every 2nd sub-carrier is
zero that the halfs be equal.
However, they don't have t have the same *sign*. See this line in the
OFDM sync block:
64 gr::filter::fir_filter_ccf::sptr delay_ma(
gr::filter::fir_filter_ccf::make(
1, std::vector<float>(
fft_len/2, use_even_carriers ? 1.0 : -1.0
)
)
);
The reason is basic FFT math (hint: phase shift in one domain equals
what in the other domain?).
Literally all you needed to do was plot the ifft() results and you would
have seen this.
> The first half of the symbol in time domain isn't same to
> the second half of the symbol.It is a fault?
> 2.I read the document fft_vcc_fftw.cc
> gr_complex *dst = d_fft->get_inbuf();
> unsigned int len = (unsigned int)(floor(d_fft_size/2.0));
> // half length of complex array
> memcpy(&dst[0], &in[len], sizeof(gr_complex)*(d_fft_size -
> len));
> memcpy(&dst[d_fft_size - len], &in[0],
> sizeof(gr_complex)*len);
> Before doing the ifft operation,should I first do this?
It is unclear what you mean by "this". My guess is, the answer is no.
M