Hello everyone

I am trying to achieve frequency hopping in GSM using twinrx with usrp x310. 
Here I am using timed command for tuning a single port across a given frequency 
list. During hopping it stays in each frequency for 4msecs and till the time 
frequency hopping continues, I am able to identify FCCH using phase difference. 
But as soon as the hopping is over and it tunes back to the actual frequency 
containing the broadcast channel, I am not getting phase difference greater 
than 0 and thus not able to demodulate the GSM burst. Can anyone please help 
where I am going wrong below is the snippet of the code, responsible for  
hopping.

Function handling hopping:

              uhd::tune_request_t tune_request(rf_freq);
              tune_request.rf_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
              tune_request.dsp_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
              tune_request.rf_freq = rf_freq;
              tune_request.dsp_freq = dsp_freq;
              uhd_src->set_rx_freq(tune_request, chan_num);
              {
                           If(verbose_lvl==3){
                                         char msg[100]={0x00};
                                         sprintf(msg,"info: DSP freq: changed 
to channel %d: %fMHz offset %fMHz", chan_num, 
uhd_src->get_rx_freq(chan_num)/1e6, dsp_freq);
                                         vipl_printf(msg,error_lvl, __FILE__, 
__LINE__);
                           }
              }
              //uhd_src->clear_command_time();
              usleep(110000); // allow LOs to lock



Module for setting back to original frequency with broadcast:

               uhd_src->clear_command_time();
              uhd::tune_request_t tune_request(rf_freq, 0x00); //considering 
LO-Offset to be zero
              tune_request.rf_freq_policy = uhd::tune_request_t::POLICY_AUTO;
              tune_request.dsp_freq_policy = uhd::tune_request_t::POLICY_AUTO;
              tune_request.rf_freq = rf_freq;
              //tune_request.dsp_freq = -dsp_freq;
              uhd_src->set_rx_freq(tune_request, channel);
              {
                           char msg[100]={0x00};
                           sprintf(msg,"info: freq: set to channel %d: %fMHz 
requested freq %fMHz", channel, uhd_src->get_rx_freq(channel)/1e6, rf_freq/1e6);
                           vipl_printf(msg,error_lvl, __FILE__, __LINE__);
              }
              usleep(110000);

My UHD version is 3.14.0.0
USRP: X310
Daughter board: 2 sets of Twinrx
OS: Debian 10
Interface: 10gig sfp+ ethernet

Thanks!!


Regards
Snehasish Kar

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10

_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to