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

推荐订阅源

M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
GbyAI
GbyAI
S
SegmentFault 最新的问题
量子位
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
IT之家
IT之家
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
雷峰网
雷峰网

博客园 - 普罗大众

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好脆弱的