LTE PSS主同步信号搜索 MATLAB实现

本期带来PSS相关检测说明和MATLAB实现,本期只讲相关方面的,所以MATLAB实现也是相关的部分,频偏估计方面的待下期开讲。

LTE 4G PSS搜索分为TDD搜索和FDD搜索,但是对于 TDD 和 FDD 而言,PSS同步信号的结构是完全一样的,但在帧中的时域位置有所不同.

对于 FDD 而言,PSS 在子帧 0 和 5 的第一个 slot 的最后一个 OFDM 符号上发送.

对于 TDD 而言,PSS 在子帧 1 和 6 的第三个 OFDM 符号上发送,即TDD的PSS都是在特殊子帧上发送的。

搜素PSS可以获得:

1. 小区NID2

2. 帧头信息

3. 5ms帧定时,由于10ms内的两个PSS同步信号的结构一样

4. UE的频偏

回顾一下PSS的生成公式,是由根u生成的ZC序列,u是由小区NID2得来的,如下图:

在频域上占据62个SC,加上左右各5个子载波的保护带共占据72个SC,正好是6个RB,占据中心带宽为72*15e3 = 1.08MHz,这么做的原因是UE初始搜索并不知道基站的带宽,只知道PSS在中间6个RB上,所以初始采样率不用太高,可以采用30.72M倍数的1.92M采样就行。

PSS搜索

由于LTE PSS在时间域上的分布,使得PSS相关最好使用互相关算法来寻找相关峰,它的原理是本地预先生成已知的三种ZC序列,再与接收到的空口信号做相关,获得定时同步,频偏信息。

假设只有频偏(包括整数倍和小数倍频偏,在这里两者统一为delta f),时延和噪声的情况下,接收到的信号可以表示为:

其中N为FFT的点数,如果是1.92M采样的话,N = 1.92e6/15e3=128点。

接收信号与本地的生成的序列x(n)做相关可以表示为:

当检测到定时头的时候上式可以表示为:

这个式子可以看成是x(n)循环移位theta后做傅里叶变化在delta f处的采样值,因此定时误差受到了噪声和频偏的影响,上式可以表示为代价函数和噪声和本地序列相关的和如下:

W为噪声和本地序列相关结果,J(delta f,theta)为代价函数。

在LTE中,PSS采用ZC序列,所以x(n)为横幅信号。

所以代价函数跟传输时延无关,把序列的幅值默认为1,可以表示为:

进一步可以表示为:

这是一个delta f在[0 1]上单调递减的函数,图如下:

当归一化频偏接近1的时候,即接近15k的时候相关值几乎为0

当频偏超过15k的时候,即存在整数倍频偏的时候存在相位翻转,出现负值,会导致相关值正负抵消的情况,加剧了情况的恶劣。

为了缓解这种情况,一般采用分段相关法,可以分成K段,每段长度为L,N=KL,每段单独做相关,最后所有的分段相关功率累加求和,如下:

这样频偏的影响就被降低了K倍,K的取值跟频偏的大小有关,频偏越大越需要分的块就越多,相关累计的抗噪声能力就会下降,会造成相关值的能量泄露,从而带来的就是帧头位置找的不准确,在小频偏的时候,不考虑噪声的影响,假设幅值为A,其没有分段的幅值近似为:

而分段的幅值:

其相关峰的峰值反而降低了K倍。所以分段K的大小根据实际的应用场景和UE本身的情况制定,一般的情况下,K的取值为2或者4最为合适。

MALTAB实现:

clc,clear,close all;

%

% author 生产队的蠢驴

%

%  coding timing 2024.09.03

%

%

%

rxSig = zeros(1,100000); % 这个是实际的1.92M空口数据,这里用0代替

Nrb = 100;

Nsc = 12;

Nsub = 14;

Ntot = 1200;

Ns = 7;

Nfft = 2048;

Ng = [160 144];

Index_TxCyclicPrefix_1 = [Nfft-Ng(1)+1:Nfft 1:Nfft];

Index_TxCyclicPrefix_2 = [Nfft-Ng(2)+1:Nfft 1:Nfft];

params.cell_search_enable = true;

params.cell_search_buff_len = 11520;

params.cell_search_window_len = 5*1920 + 128+10;

params.pss_combin_num = 2;

params.pss_segNum = 1;

params.pss_chest_left_point = 10;

params.pss_chest_right_point = 118;

params.SubcarrierSpacing = 15e3;

N_subframes = 17;

params.Nfft =  Nfft;

params.Ntot = Ntot;

params.Nrb = Nrb;

params.Nsc = Nsc;

pssThr = 25;

N = 128;

root_set = [25 29 34];

segL = N/params.pss_segNum;

corr_result = zeros(1,3,params.pss_combin_num,params.cell_search_window_len,params.pss_segNum);

%% first corr with local pss signal

for N_ID_2_idx=1:3

    pss_local_ifft128 = pss_gen(root_set(N_ID_2_idx));

    for combin_idx = 1:params.pss_combin_num

        rxSig_temp = rxSig((combin_idx-1)*5*1920+1:combin_idx*6*1920);

        for i_sample = 1:params.cell_search_window_len

            for seg_idx = 1:params.pss_segNum

                rx_temp = rxSig_temp(i_sample+(seg_idx-1)*segL:i_sample-1+seg_idx*segL);

                corr_result(1,N_ID_2_idx,combin_idx,i_sample,seg_idx) = corr_result(1,N_ID_2_idx,combin_idx,i_sample,seg_idx) + rx_temp*pss_local_ifft128((seg_idx-1)*segL+1:seg_idx*segL)';

            end

        end

    end

end

%% cal power

corr_result_abs = zeros(3,3,params.cell_search_window_len);

for N_ID_2_idx=1:3

    for combin_idx = 1:params.pss_combin_num

        for i_sample = 1:params.cell_search_window_len

            corrPower = 0;

            for seg_idx = 1:params.pss_segNum

                corrPower = corrPower + abs(corr_result(1,N_ID_2_idx,combin_idx,i_sample,seg_idx));

            end

            corrPower = corrPower^2;

            corr_result_abs(1,N_ID_2_idx,i_sample) = corr_result_abs(1,N_ID_2_idx,i_sample) + corrPower;

        end

    end

end

代码未完。。。

完整的MATLAB实现请关注微信号订阅号:nb_lte_5g ,老牛nb5g老牛每天带你学通信同步更新

努力只能及格,拼命才能优秀。

想成功,先发疯,不顾一切往前冲。

学通信任道重远,老牛带你走最捷径的路.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/418674.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sheng的学习笔记-AI-半监督聚类

AI目录:sheng的学习笔记-AI目录-CSDN博客 半监督学习:sheng的学习笔记-AI-半监督学习-CSDN博客 聚类:sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 均值算法:sheng的学习笔记-AI-K均值算法_k均值算法怎么算迭代两次后的最大…

图形验证码从设计到实现

验证码的使用场景 图形验证码在我们的日常使用中是非常常见的,比如一些App、小程序、PC网站等。涉及到的业务也比较广泛、例如用户登录流程、注册流程、找回密码。下面我们来大致梳理下上述流程: 登录流程 用户首先在登录界面输入手机号然后通过图形验…

VMware时提示系统尚未修改安装失败

安装VMware安装失败,提示系统尚未修改 有以下解决方案: 1.操作系统不兼容 2.安装文件损坏 3.安装程序错误 4.硬件问题 解决:由于重装系统前,安装过VAware,所以应该操作系统,硬件没有问题。下载一个软件v…

关于Redis集群同步/持久化/淘汰机制的详解

Redis是非常常用的KV数据库, 使用内存以及HashMap进行存储的特点带来了高效的查询. 本文将围绕Redis的常见开发使用场景, 阐述在Redis集群中各个节点是如何进行数据同步, 每个节点如何进行持久化以及在长期使用中如何对数据进行更新和淘汰. 如果对Redis有更多的兴趣, 可以查看我…

Java中方法的使用详解

1.引言 假设有一个美女博主,每次发的照片都特别漂亮 然后该博主的评论区每次都会有很多粉丝的评论: 哇!宝宝好漂亮,求上衣链接!!! 老婆亲亲!这个口红是什么色号呀? 宝…

【go】内存分配模型

内存是怎么分配给对象的? 内存分配优化的地方是? 讲讲golang内存分配模型? ans: 1.按照对象的大小分配:先算出对象的大小如果是tiny对象,就从tiny block中获取地址和偏移量,将对象打包到mcache;如果是16B以…

Python 在Excel中应用和取消多种不同类型的数据筛选

目录 安装Python Excel处理库 Python 在 Excel 中应用文本筛选 Python 在 Excel 中应用数字筛选 Python 在 Excel 中应用字体颜色、单元格颜色或图标集筛选 Python 在 Excel 中应用日期筛选 Python 在 Excel 中应用动态日期筛选 Python 在 Excel 中筛选空单元格或非空单…

【ArcGIS Pro第一期】界面简介

ArcGIS Pro简介 ArcGIS Pro界面简介1.1 打开工程1.2 使用功能区上的工具 参考 ArcGIS Pro 是一种基于功能区的应用程序。 ArcGIS Pro 窗口顶部的功能区有许多命令可供选择,而根据需要打开的各个窗格(可停靠窗口)中则提供了更为高级或专用的功…

快速排序(QuickSort)-归并排序(MergeSort)[java编写]

1. 快速排序 1.1 基本概述 快速排序采用分治思想,即在一个无序的序列中选取一个任意的基准元素pivot,利用pivot 将待排序的序列分成两部分,前面部分元素均小于或等于基准元素,后面部分均大于或等于基准元素,然后采用…

参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。 MVIPIT 2024聚焦机器视觉、图像处理与影像技术,旨在为专家、学者和研究人员提供一个国际平台,分享研究成果,讨论…

算法训练营——day3长度最小子数组

1 长度最小子数组-力扣209(中等) 1.1 题目: 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返…

基于orangePi的智能家居系统

目录 一.接线图 1.orangePi接线 2.继电器接线 二.语音模块的配置 1.pin脚的配置 2.命令词自定义信息 三.测试 1.通过gpio指令测试烟雾检测器是否正确连接 2.编写脚本测试其他模组接线是否正常 四.人脸识别方案 1.首先开通人脸搜索识别服务 2. 点击产品控制台,向人…

2024年四川省安全员B证证考试题库及四川省安全员B证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年四川省安全员B证证考试题库及四川省安全员B证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大…

ARM----时钟

时钟频率可以是由晶振提供的,我们需要高频率,但是外部接高的晶振会不稳定,所有使用PLL(锁相环)来放大频率。接下来就让我们学习用外部晶振提供的频率来配置时钟频率。 一.时钟源的选择 在这里我们选择外部晶振作为时钟…

数据库面试题学习

B树和B树 B树 排好序的 节点内部有多个元素 B树 排好序的 节点内多个元素 叶子节点有指针(双向指针) 非叶子节点冗余了一份在叶子节点 mysql定义B树 InnoDB B树是B树的升级版~ InnoDB b树是怎么产生的 mysql 页 目录 16KB 自增id uuid 一页最多可以存储…

【精选】文件摆渡系统:跨网文件传输的安全与效率之选

文件摆渡系统可以解决哪些问题? 文件摆渡系统(File Shuttle System)主要是应用于不同网络、网段、区域之间的文件数据传输流转场景, 用于解决以下几类问题: 文件传输问题: 大文件传输:系统可…

Windows bat脚本学习九(srec_cat)

一、简介 srec_cat是一个在嵌入式开发中,使用非常频繁的软件,这里做个常用功能的介绍。 二、常用参数 文件类型 在使用srec_cat指令时,在输入文件和输出文件时,要指明文件的类型,如: input.hex -intel …

2024国赛数学建模C题完整论文:农作物的种植策略

农作物种植策略优化的数学建模研究(完整论文,持续更新,大家持续关注,更新见文末名片 ) 摘要 在本文中,建立了基于整数规划、动态规划、马尔科夫决策过程、不确定性建模、多目标优化、相关性分析、蒙特卡洛…

网络层 VII(IP多播、移动IP)【★★★★★★】

一、IP 多播 1. 多播的概念 多播是让源主机一次发送的单个分组可以抵达用一个组地址标识的若干目的主机,即一对多的通信。在互联网上进行的多播,称为 IP 多播(multicast , 以前曾译为组播)。 与单播相比,在一对多的…