Skip to main content
Ctrl+K

comnum

  • Getting started
  • Tutorials
  • User guide
  • Gallery of classical results
  • Why the results can be trusted
  • Maturity
    • Comparisons with other libraries
    • Why comnum
    • Benchmarks against other libraries
    • Classical performance
    • API reference
  • GitHub
  • Getting started
  • Tutorials
  • User guide
  • Gallery of classical results
  • Why the results can be trusted
  • Maturity
  • Comparisons with other libraries
  • Why comnum
  • Benchmarks against other libraries
  • Classical performance
  • API reference
  • GitHub

Section Navigation

  • comnum.Rng
  • comnum.db2lin
  • comnum.lin2db
  • comnum.dbm2w
  • comnum.w2dbm
  • comnum.qfunc
  • comnum.bessel_j0
  • comnum.entropy
  • comnum.bits
  • comnum.prbs
  • comnum.o150_sequence
  • comnum.symbols
  • comnum.maxwell_boltzmann
  • comnum.Constellation
  • comnum.gray_code
  • comnum.Dpsk
  • comnum.theory_ber
  • comnum.theory_ser
  • comnum.theory_ser_esn0
  • comnum.theory_ber_gray
  • comnum.theory_ber_rayleigh_mrc
  • comnum.theory_ber_dpsk
  • comnum.theory_differential_phase_tail
  • comnum.theory_phase_pdf
  • comnum.theory_ber_imperfect_csi
  • comnum.theory_ber_dpsk_jakes
  • comnum.theory_mi
  • comnum.theory_gmi
  • comnum.theory_cm_capacity
  • comnum.theory_bicm_capacity
  • comnum.theory_cm_cutoff_rate
  • comnum.theory_bicm_cutoff_rate
  • comnum.Crc
  • comnum.Scrambler
  • comnum.Interleaver
  • comnum.ConvolutionalCode
  • comnum.TurboCode
  • comnum.LdpcCode
  • comnum.PolarCode
  • comnum.ReedSolomonCode
  • comnum.BchCode
  • comnum.NrLdpc
  • comnum.NrPolar
  • comnum.free_distance
  • comnum.pack_symbols
  • comnum.unpack_symbols
  • comnum.Ccdm
  • comnum.theory_shannon_limit_ebn0_db
  • comnum.theory_biawgn_capacity
  • comnum.bpsk_noise_variance
  • comnum.bpsk_llr
  • comnum.theory_normal_approximation
  • comnum.theory_rs_wer
  • comnum.theory_rs_ser
  • comnum.theory_rs_ber
  • comnum.Ofdm
  • comnum.ResourceGrid
  • comnum.ofdm_estimate
  • comnum.ofdm_preamble
  • comnum.schmidl_cox
  • comnum.ofdm_synchronize
  • comnum.ofdm_budget
  • comnum.ofdm_timing_noise
  • comnum.Wiener2d
  • comnum.RobustDesign
  • comnum.LowRank
  • comnum.ls_noise_factor
  • comnum.random_delay_correlation
  • comnum.gain_limited_correction
  • comnum.theory_sdr_gain_limited
  • comnum.theory_sdr_optimum_correction
  • comnum.PaprReduction
  • comnum.papr_db
  • comnum.papr_db_blocks
  • comnum.ccdf
  • comnum.theory_papr_ccdf
  • comnum.clipping_bussgang
  • comnum.Cpm
  • comnum.msk_precode
  • comnum.msk_bits
  • comnum.theory_msk_psd
  • comnum.CeOfdm
  • comnum.ce_ofdm_imp_powers
  • comnum.ce_ofdm_optimum_gain
  • comnum.theory_ce_ofdm_ber_optimum
  • comnum.pm_occupied_bandwidth
  • comnum.Css
  • comnum.theory_css_ser
  • comnum.theory_css_ber
  • comnum.css_cross_correlation
  • comnum.css_max_cross_correlation
  • comnum.css_continuous_spectrum
  • comnum.css_spectral_lines
  • comnum.css_occupied_bandwidth
  • comnum.css_interference_pattern
  • comnum.theory_css_ser_interference
  • comnum.Fbmc
  • comnum.oqam_stagger
  • comnum.oqam_destagger
  • comnum.Ufmc
  • comnum.chebyshev_window
  • comnum.Otfs
  • comnum.mimo_detect
  • comnum.mimo_llr
  • comnum.mimo_estimate
  • comnum.message_passing
  • comnum.amp_state_evolution
  • comnum.amp_thresholds
  • comnum.oamp_state_evolution
  • comnum.MimoTraining
  • comnum.blue_weights
  • comnum.blue_combine
  • comnum.blue_mse
  • comnum.Ostbc
  • comnum.eigenmode
  • comnum.zf_precoder
  • comnum.water_filling_powers
  • comnum.mimo_capacity
  • comnum.theory_ergodic_capacity
  • comnum.theory_outage_probability
  • comnum.theory_outage_capacity
  • comnum.awgn
  • comnum.awgn_ebn0
  • comnum.mimo_channel
  • comnum.mimo_channels
  • comnum.exponential_correlation
  • comnum.TdlChannel
  • comnum.ChannelTaps
  • comnum.power_delay_profile
  • comnum.rms_delay_spread
  • comnum.CdlChannel
  • comnum.cdl_profile
  • comnum.cdl_k_factor_db
  • comnum.path_loss_db
  • comnum.shadow_fading_std_db
  • comnum.los_probability
  • comnum.uma_environment_height
  • comnum.building_penetration_db
  • comnum.delay_doppler_paths
  • comnum.FiberParams
  • comnum.linear_fiber_channel
  • comnum.Ssfm
  • comnum.ManakovPmd
  • comnum.ManakovSsfm
  • comnum.Edfa
  • comnum.raman_profile
  • comnum.gn_model
  • comnum.gn_closed_form
  • comnum.gn_isrs_closed_form
  • comnum.format_moments
  • comnum.wdm_grid
  • comnum.laser
  • comnum.phase_noise
  • comnum.clock_offset
  • comnum.phase_modulator
  • comnum.mzm
  • comnum.iqm
  • comnum.Photodiode
  • comnum.balanced_photodiode
  • comnum.hybrid_2x4
  • comnum.coherent_receiver
  • comnum.OwcRoom
  • comnum.OwcIllumination
  • comnum.OwcImpulseResponse
  • comnum.lambertian_mode
  • comnum.owc_direction
  • comnum.owc_illuminance
  • comnum.PinFetReceiver
  • comnum.Fso
  • comnum.GammaGamma
  • comnum.PointingError
  • comnum.rytov_variance
  • comnum.fog_attenuation_db_per_km
  • comnum.pa_rapp
  • comnum.pa_saleh
  • comnum.pa_memory_polynomial
  • comnum.rapp_predistort
  • comnum.MemoryPolynomialDpd
  • comnum.amplifier_bussgang
  • comnum.envelope_series
  • comnum.distortion_spectrum
  • comnum.adc
  • comnum.dac
  • comnum.theory_quantization_mse
  • comnum.optimal_loading
  • comnum.theory_sqnr_sine_db
  • comnum.enob_from_sinad_db
  • comnum.theory_jitter_snr_db
  • comnum.zero_order_hold_gain
  • comnum.pulse_shape
  • comnum.rrc_spectrum
  • comnum.rrc_taps
  • comnum.rc_taps
  • comnum.fir_filter
  • comnum.convolve
  • comnum.upsample
  • comnum.downsample
  • comnum.decimate
  • comnum.resample_fft
  • comnum.low_pass_fir
  • comnum.butterworth_lowpass
  • comnum.pnorm
  • comnum.anorm
  • comnum.freq_shift
  • comnum.select_channel
  • comnum.resample_rational
  • comnum.moving_average
  • comnum.delay_fft
  • comnum.fourth_power_foe
  • comnum.viterbi_viterbi
  • comnum.bps
  • comnum.ddpll
  • comnum.derotate
  • comnum.unwrap
  • comnum.gardner_ted
  • comnum.gardner_ted_nyquist
  • comnum.lagrange_cubic
  • comnum.gardner_clock_recovery
  • comnum.adaptive_equalizer
  • comnum.cdc
  • comnum.cd_taps_needed
  • comnum.cd_fir_taps
  • comnum.cd_dispersion_factor
  • comnum.cd_savory_taps
  • comnum.cd_ls_taps
  • comnum.cd_ls_error
  • comnum.cumulants
  • comnum.theory_cumulants
  • comnum.classify_modulation
  • comnum.snr_m2m4_db
  • comnum.snr_crb_nmse
  • comnum.cyclic_autocorrelation
  • comnum.estimate_symbol_rate
  • comnum.ber
  • comnum.snr_db
  • comnum.phase_error_std
  • comnum.fast_ber_calc
  • comnum.evm
  • comnum.ber_to_q_db
  • comnum.monte_carlo_gmi
  • comnum.monte_carlo_mi
  • comnum.information_rates
  • comnum.posterior_rates
  • comnum.psd
  • comnum.periodogram
  • comnum.aclr_db
  • comnum.Results
  • comnum.Trace
  • comnum.compare
  • comnum.plot
  • comnum.Dvbs
  • comnum.dvb_packets
  • comnum.Dvbs2
  • comnum.dvbs2_bbframe
  • comnum.dvbs2_bbframe_data
  • comnum.dvbs2_decode_plheader
  • comnum.Dvbt
  • comnum.dvbt_channel_gains
  • comnum.CcsdsRs
  • comnum.CcsdsLdpc
  • comnum.CcsdsTurbo
  • comnum.CcsdsConvolutional
  • comnum.ccsds_randomizer
  • comnum.ccsds_marker
  • comnum.ccsds_cadu
  • comnum.nr_numerology
  • comnum.nr_ofdm_modulate
  • comnum.nr_pss
  • comnum.nr_sss
  • comnum.nr_detect_cell_id
  • comnum.nr_ssb_grid
  • comnum.nr_ssb_indices
  • comnum.nr_pbch_dmrs
  • comnum.nr_pdsch_dmrs
  • comnum.nr_mcs
  • comnum.nr_tbs
  • comnum.nr_constellation
  • comnum.NrTransportBlock
  • comnum.NrHarqProcess
  • comnum.NrPdsch
  • comnum.fm_modulate
  • comnum.fm_discriminator
  • comnum.fm_preemphasis
  • comnum.fm_deemphasis
  • comnum.fm_multiplex
  • comnum.fm_stereo_decode
  • comnum.rds_group_bits
  • comnum.rds_differential_encode
  • comnum.rds_receive
  • comnum.lte_frame
  • comnum.lte_pss
  • comnum.lte_cell_search
  • comnum.lte_decode_mib
  • comnum.zadoff_chu
  • comnum.ais_transmit
  • comnum.ais_receive
  • comnum.ais_decode
  • comnum.ais_position_report
  • comnum.ais_aivdm
  • comnum.ais_messages
  • comnum.ais_front_end_rate
  • comnum.Chain
  • comnum.Block
  • comnum.Native
  • comnum.Var
  • comnum.Frame
  • comnum.LinkBlock
  • comnum.frame_metrics
  • comnum.blocks
  • comnum.sim
  • comnum.run_spec
  • comnum.verify_spec
  • comnum.search_spec
  • comnum.spec_conditions
  • comnum.spec_blocks
  • comnum.spec_schema
  • comnum.spec_check_link
  • comnum.Tolerance
  • comnum.read_sigmf
  • comnum.write_sigmf
  • API reference
  • comnum.lte_cell_search

comnum.lte_cell_search#

comnum.lte_cell_search(x, *, max_cfo_hz=20000.0, cfo_step_hz=1000.0, min_metric=0.3)#

The cell search of LTE in samples at 1.92 MS/s (the six central resource blocks: select_channel() brings a capture there): the PSS of each of the three identities N_ID^(2) is searched over a grid of frequency offsets in the first 10 ms, the offset refined on the cyclic prefixes of the whole capture, then the SSS of every half frame, equalised by the channel of the PSS, gives the group N_ID^(1) and the start of the frames.

Parameters:
  • x (array_like) – at least 10.5 ms of complex samples at 1.92 MS/s.

  • max_cfo_hz (float) – the largest frequency offset searched (Hz).

  • cfo_step_hz (float) – the step of the grid of offsets (Hz).

  • min_metric (float) – the smallest normalised PSS correlation of a cell, in (0, 1].

Returns:

the strongest cell of each N_ID^(2) found, the strongest first, with the keys n_cell_id, cfo_hz (the offset of the cell with respect to the receiver), frame_start (the first sample of the first whole frame), pss_metric and sss_metric (normalised correlations, at most 1).

Return type:

list[dict]

Raises:

ValueError – for fewer than 10.5 ms of samples or invalid settings.

Examples

>>> import comnum, numpy as np
>>> x = np.concatenate([comnum.lte_frame(211, sfn=s)[0] for s in (8, 9)])
>>> cell = comnum.lte_cell_search(x, max_cfo_hz=1e3)[0]
>>> cell["n_cell_id"], cell["frame_start"]
(211, 0)

previous

comnum.lte_pss

next

comnum.lte_decode_mib

On this page
  • lte_cell_search()
Show Source

© Copyright 2022-2026, Vincent Choqueuse.

Created using Sphinx 9.1.1.

Built with the PyData Sphinx Theme 0.24.0.