discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] The GMSK demodulation


From: zhenhua han
Subject: Re: [Discuss-gnuradio] The GMSK demodulation
Date: Tue, 4 Mar 2014 09:32:33 +0800

Hi guys, 
I'm reading the code of Airprobe and I found this function.

double gsm_receiver_cf::compute_freq_offset(const gr_complex * input, unsigned first_sample, unsigned last_sample)
{
  double phase_sum = 0;
  unsigned ii;

  for (ii = first_sample; ii < last_sample; ii++) {
    double phase_diff = compute_phase_diff(input[ii], input[ii-1]) - (M_PI / 2) / d_OSR;
    phase_sum += phase_diff;
  }

  double phase_offset = phase_sum / (last_sample - first_sample);
  double freq_offset = phase_offset * 1625000.0 / (12.0 * M_PI);
  return freq_offset;
}




It calculates the frequency offset with "freq_offset = phase_offset * 1625000.0 / (12.0 * M_PI);" I guess the (1625000.0/12*pi) equals (1625000/6)/(2pi) and 1625/6 kbit/s is the modulation rate of GSM.

So, what is the principle of this calculation? How to calculate the freq_offset with phase_offset. I tried some derivation but failed. Can anyone help me to find out the derivation ?

Best wishes,
Zhenhua


2014-03-04 9:28 GMT+08:00 zhenhua han <address@hidden>:
Hi Perper,

I took a look at your code, and I found this

//set_frequency(d_freq_offset);  

It seems you have turned off the the frequency offset correction as you said.
Do you know the reason of the introduced instability by this part? 

Best,
Zhenhua

2014-03-04 1:42 GMT+08:00 Perper <address@hidden>:

W dniu 28.02.2014 15:31, zhenhua han pisze:
> Hi,
>
> As I have known, GSM uses GMSK modulation which BT = 0.3 and it
> uses Viterbi algorithm for demodulation. And I took a look at the code
> of GMSK demod code in GNU Radio, it use quadrature_demod but not
> Viterbi as demodulation method. So which one is better in doing
> demodulating GMSK?
>
> Moreover, GSM uses Viterbi algorithm to decode the convolution
> encoding. Would it be possible to use quadrature_demod to demodulate
> GSM signal instead of Viterbi? What about the convolution decoding
> part (maybe by some other method)?
>
> Cheers,
> Zhenhua
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Hello all,

Regarding usage of viterbi algorithm for maximum likelihood sequence
estimation in GSM - you may look at and try gsm-receiver that I once
submitted to airprobe. I've prepared version where I thrown out all of
decoding stuff and left only synchronization, channel estimation and
detection of bits with viterbi algorithm. It's available for download in
here:
https://github.com/Jakotako/gr-gsm

It compiles with newest gnu-radio and it has gnuradio companion xml file
as well. It can be easily connected to different sources in gnuradio
(file, rtl-sdr, usrp) and it has a message sink where burst bits and
gsmtap headers are sent. I've corrected some issues with synchronization
and turned off frequency offset correction that introduced instability
of the receiver. After compiling and installing you can start with examples.

--
Best Regards,
Piotr Krysik

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]