惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
G
Google Developers Blog
D
Docker
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
I
InfoQ
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
Google DeepMind News
Google DeepMind News

博客园 - 普罗大众

debug的一个问题 phy_simulators之nr_dlsim之4层接收的优化 phy_simulators之nr_dlsim之一个bug phy_simulators之nr_dlsim开始 phy_simulators之nr_pbchsim之PBCH解码 phy_simulators之nr_pbchsim之PBCH-DMRS检测 phy_simulators之nr_pbchsim之仿真的局限 phy_simulators之nr_pbchsim之一些结构 phy_simulators之nr_pbchsim之SSS检测 phy_simulators之nr_pbchsim之信道 phy_simulators之nr_pbchsim之初始同步 phy_simulators之nr_pbchsim之发送端 phy_simulators之dlsim.c debug方法三:printf debug方法二:用vs code debug方法一:直接用gdb命令 phy_simulators的编译生成方法三:CMakePresets.json phy_simulators的编译生成方法二:手动写cmake脚本 phy_simulators的编译生成方法一:build_oai --phy_simulators open air interface的phy_simultors编译过了 AI App的使用感觉 从“图像视频编码”到“通信物理层” MAC pc + Ubuntu + OAI 原来Fourier是法国的,怪不得法国小波分析这么牛 整理心情
phy_simulators之nr_pbchsim之PSS检测
普罗大众 · 2026-03-12 · via 博客园 - 普罗大众

调用nr_search_ssb_common,包括PSS检测

1)调用pss_synchro_nr

const int sync_pos = pss_synchro_nr((const c16_t **)params->rxdata,

                                      fp,

                                      pssTime,

                                      params->search_frame_id,

                                      params->fo_flag,

                                      params->target_nid_cell,

                                      &nid2,

                                      &freq_offset_pss,

                                      &pss_peak,

                                      &pss_avg);

计算出的sync_pos(符号起点)比较重要

2)=> 调用pss_search_time_nr

长度:

if (is == 0)

      length = frame_parms->samples_per_frame + (2 * frame_parms->ofdm_symbol_size); //618496

    else

      length = frame_parms->samples_per_frame; //614400

相关:逐4点平移点乘,Search pss in the received buffer each 4 samples which ensures a memory alignment on 128 bits (32 bits x 4 ) 

for (n = start; n < start + length; n += 4) { //

……

        const c32_t result = dot_product(pssTime[pss_index],

                                         &(rxdata[ar][n + is * frame_parms->samples_per_frame]),

                                         frame_parms->ofdm_symbol_size,

                                         shift);

        const c64_t r64 = {.r = result.r, .i = result.i};

        pss_corr_ue += squaredMod(r64); //相关值的能量

3)=> 调用dot_product

但是这个限制会导致“点乘”并没有真正执行(比如用mac电脑就是arm架构,会跳过):

#if defined(__x86_64__) || defined(__i386__)

  if (__builtin_cpu_supports("avx2")) {

4)注意:

 a) 一个奇怪的问题,随意的写printf,居然会导致Segmentation fault      (core dumped)的错误(程序崩掉),哎,c好脆弱的