[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] OFDM SNR
From: |
Martin Braun |
Subject: |
Re: [Discuss-gnuradio] OFDM SNR |
Date: |
Fri, 11 Apr 2014 11:59:46 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
On 04/10/2014 01:33 PM, Piotr Potocki wrote:
> First thanks for helping me out!
>
> 1. I found out that in file 'ofdm_equalizer_simpledfe' there is a part
> concerning mapping samples into correct positions (-1,1).
>
> //
> d_constellation->map_to_points(d_constellation->decision_maker(&sym_eq),
> &sym_est);
>
> I commented out it but still the mapping didn’t stop. And i couldn’t
> find any other code that is doing this mapping.
> So where the mapping is taking place?
Hm, this won't work, I guess. Line 102 does the actual assignment...
> 2. Unfortunately commentating out this part is not only disabling
> equalization but also the phase correction and frequency correction.
> But i figure out that for SNR estimation i don't need phase and freq
> correction. The downside is that when i am trying to estimate SNR i
> don't receive correct data.
You definitely need the coarse freq offset correction. That also means
fiddling with your phase (which shouldn't matter for SNR estimation).
However, that's done in ofdm_frame_equalizer_vcvc.
And yeah, of course you don't get correct data if you don't equalize.
> 3. Thanks for it the scope sink in XY mode works perfect. And one small
> question, how to make constant X,Y coordinate system (set X value from
> -2 to 2 and Y -2 to 2)?
QT or WX? Have a look at the GRC property dialogues.
> And last question is abut transferring data to Matlab. To estimate SNR i
> need to take the complex value and 'take' them to mag^2.
> But i don't know how to read/open this .dat file in Matlab. First i was
> trying to use block 'complex to mag^2' in gnuradio and then write the
> data to a file (constellation3.dat). And then use Matlab simple function:
> fileID_rx=fopen('constellation3.dat');
> snr=fread(fileID_rx,'double');
> But the results are not correct.
Look at read_float_binary.m, also read the FAQ.
- Martin
> Also i don't know how to open complex file in matlab without block
> 'complex to mag^2. The data file from file_sink is really 'wired'
> (constellation3_no_mag2.dat).
>
> Both files are written down with working equalizer, so the symbols are
> only place (-1,1).
> To see constellation3_no_mag2.dat samples simply use gr_plot_iq
> constellation3_no_mag2.dat .
>
>
>
>
>
> My specs of system:
> FFT length = 64
> Sample rate = 2M
> Packet length = 40 ( i tried with different packet length and 40 gave
> the best results)
> Modulation = BPSK
> Carrier frequency = 2.4 Ghz
> Occupied carriers = 52
>
> Best regards,
> Piotr Potocki
>
>
> 2014-03-31 15:35 GMT+02:00 Martin Braun <address@hidden
> <mailto:address@hidden>>:
>
> On 03/31/2014 01:03 PM, Piotr Potocki wrote:
> > 1. I want to estimate SNR using IQ samples. But when I receive IQ
> > samples on the receiver (img iq_samples_eq) they are all "perfect". So
> > my first question is, is there some kind of "hard decision" in OFDM
> > Frame Equalizer? Without OFDM Frame Equalizer (img iq_samples_no_s)
>
> Yes -- the current equalizer discards soft information. That's a clear
> shortcoming, but I simply haven't had the time to implement a proper
> equalizer so far, and if anyone else has, they haven't committed it
> upstream.
>
> You can write your own equalizers by subclassing ofdm_equalizer_base.
> It's pretty simple, if you already have an algorithm in C++.
>
> > 2. The second problem is, that I need to have a white noise not
> coloured
> > noise.
> > And to to that i need to get rid of the equalizer part of the OFDM
> Frame
> > Equalizer. The part of correction frequency shift on the symbols
> need to
> > stay.
> > Do You have some hints how to do that? (Just commented "//" this
> part ?
> > // Do the equalizing
> > d_eq->reset();
> > d_eq->equalize(out, frame_len, d_channel_state);
> > d_eq->get_channel_state(d_channel_state);
>
> That should work. The cleaner way would be to add a 'dummy' equalizer
> that can be dropped in.
> Note that if you leave the equalizer out, you will be able to do nothing
> but SNR estimation. I don't know the details of those algorithms by
> heart, but some might not work either, since symbols will be phase
> rotated.
> Maybe you can intercept the channel state PMT in a custom block, modify
> that to your needs, and use the ofdm_equalizer_static.
>
> > 3. The 3 question is about Constellation Plot in Gnuradio. My
> system is
> > based on BPSK so on Constellation Plot I am expecting only the +1, -1
> > values. The IQ samples are showing me that this is correct +1,-1
> so why
> > on the plot i have the values (-0.7,-0.7),(0.7,0.7) (img Tx_snr_run) ?
> > Why Constellation Plot is shifting my values?
>
> Use the scope sink in XY mode, not the constellation plot. That'll try
> and actually rx.
>
> > 4. Last question is about the MPSK SNR Estimator. I am wondering is
> > there a possibility to apply this block to OFDM?
>
> If you had a flat fading channel, you could use that after the
> serialization. For more usual OFDM channels, probably not, at least not
> out-of-the box. There are several papers that modify these algorithms
> for OFDM, and I don't think we've implemented any of them.
>
> M
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden <mailto:address@hidden>
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Discuss-gnuradio] OFDM SNR,
Martin Braun <=