Project

General

Profile

Feature #3664

Optimize EDGE burst detection

Added by fixeria 12 months ago. Updated 7 days ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
10/22/2018
Due date:
% Done:

100%

Spec Reference:

Description

In the current code, when EDGE demodulator is enabled, OsmoTRX is trying to detect
each normal burst as EDGE burst first, and fall-backs to GSM if detection is failed.

Transceiver::pullRadioVector():
  ...
  /* Set time and determine correlation type */
  GSM::Time time = radio_burst->getTime();
  CorrType type = expectedCorrType(time, chan);

  /* Enable 8-PSK burst detection if EDGE is enabled */
  if (mEdge && (type == TSC))
    type = EDGE;
  ...

Detection of EDGE bursts only makes sense on PDCH channel combinations,
and (probably, to be clarified) on TCH combinations that can be combined
with PDCH, i.e. dynamic time-slots.


Related issues

Related to OsmoBTS - Bug #4175: osmo-bts-trx: Make sure SETSLOT is sent to TRX on dynamic channels when they are switchedResolved08/26/2019

History

#1 Updated by laforge 12 months ago

On Mon, Oct 22, 2018 at 04:22:31PM +0000, fixeria [REDMINE] wrote:

Detection of EDGE bursts only makes sense on PDCH channel combinations,

ACK.

and (probably, to be clarified) on TCH combinations that can be combined
with PDCH, i.e. dynamic time-slots.

I think the channel combination should be switched/changed when the dyn TS changes?
If not, then that's probably a BTS bug?

#2 Updated by pespin about 2 months ago

May be useful for optimization purposes, here's a perf output of a osmo-trx-uhd with EDGE network enabled (percentatge is absolute percentatge of samples):

-   37.20%     0.00%  RxUpper0       osmo-trx-uhd               [.] RxUpperLoopAdapter                                                                                                                                      
   - 37.20% RxUpperLoopAdapter                                                                                                                                                                                              
      - 37.19% Transceiver::driveReceiveFIFO                                                                                                                                                                                
         - 37.11% Transceiver::pullRadioVector                                                                                                                                                                              
            - 35.69% detectAnyBurst                                                                                                                                                                                         
               - 17.67% detectEdgeBurst                                                                                                                                                                                     
                  - detectGeneralBurst                                                                                                                                                                                      
                     - 10.00% detectBurst                                                                                                                                                                                   
                        - 9.10% downsampleBurst                                                                                                                                                                             
                           - 5.93% Resampler::rotate                                                                                                                                                                        
                              - 4.84% convolve_real                                                                                                                                                                         
                                   4.16% sse_conv_real16                                                                                                                                                                    
                           - 1.23% signalVector::signalVector                                                                                                                                                               
                              - Vector<Complex<float> >::Vector                                                                                                                                                             
                                 - Vector<Complex<float> >::resize                                                                                                                                                          
                                      0.84% Complex<float>::Complex                                                                                                                                                         
                             1.19% Vector<Complex<float> >::copyToSegment                                                                                                                                                   
                          0.58% convolve                                                                                                                                                                                    
                     + 7.38% maxAmplitude                                                                                                                                                                                   
               - 16.24% analyzeTrafficBurst                                                                                                                                                                                 
                  - detectGeneralBurst                                                                                                                                                                                      
                     - 9.19% detectBurst                                                                                                                                                                                    
                        - 8.44% downsampleBurst                                                                                                                                                                             
                           - 5.46% Resampler::rotate                                                                                                                                                                        
                              - 4.58% convolve_real                                                                                                                                                                         
                                   3.93% sse_conv_real16                                                                                                                                                                    
                           - 1.24% signalVector::signalVector                                                                                                                                                               
                              - 1.24% Vector<Complex<float> >::Vector                                                                                                                                                       
                                 - Vector<Complex<float> >::resize                                                                                                                                                          
                                      0.90% Complex<float>::Complex                                                                                                                                                         
                             1.17% Vector<Complex<float> >::copyToSegment                                                                                                                                                   
                     - 6.89% maxAmplitude                                                                                                                                                                                   
                          2.64% Vector<Complex<float> >::operator[]                                                                                                                                                         
                          1.50% Vector<Complex<float> >::size                                                                                                                                                               
                          0.57% Complex<float>::real                                                                                                                                                                        
               - 1.78% detectRACHBurst                                                                                                                                                                                      
                  - detectGeneralBurst                                                                                                                                                                                      
                     - 0.97% detectBurst                                                                                                                                                                                    
                          0.75% downsampleBurst                                                                                                                                                                             
                       0.75% maxAmplitude

#3 Updated by pespin about 2 months ago

  • Status changed from New to Feedback
  • Assignee set to fixeria

Related commit I wrote from what I understood was needed in this ticket:
https://gerrit.osmocom.org/c/osmo-trx/+/15291 Transceiver: Enable EDGE detection only on PDCH timeslots

Assigning to fixeria for review.

#4 Updated by pespin about 2 months ago

  • Related to Bug #4175: osmo-bts-trx: Make sure SETSLOT is sent to TRX on dynamic channels when they are switched added

#5 Updated by fixeria 7 days ago

  • Status changed from Feedback to Resolved
  • % Done changed from 0 to 100

Patch has been merged and confirmed to work, closing. Thanks, pespin!

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)