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

推荐订阅源

Martin Fowler
Martin Fowler
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
L
LangChain Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
D
DataBreaches.Net
P
Proofpoint News Feed
小众软件
小众软件
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
雷峰网
雷峰网
G
Google Developers Blog

博客园 - 普罗大众

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