滑动相关的原理以及用滤波器实现滑动相关(匹配滤波器捕获DMF)

news/2024/6/4 19:02:35/文章来源:https://blog.csdn.net/ddatalent/article/details/129061319

目录

    • 滑动相关
    • 匹配滤波器捕获(DMF)

滑动相关

滑动相关属于一种时域捕获方法,其具体原理是是通过本地序列与接收信号在固定窗长内滑动累加得到相关结果。
一般滑动相关算法可以用于对自相关性非常好的伪码进行同步判决。
我们首先生成一组自相关性很好的初始序列x(n)x(n)x(n)
x(n)=ejπn2N,n=1∼Nx(n) = e^{\frac{j\pi n^2}{N}},n=1\sim Nx(n)=eNn2,n=1N
假设该信号经过信噪比为0dB的信道,得到接收信号y(n)=x(n)+w(n)y(n) = x(n) + w(n)y(n)=x(n)+w(n)
二者做互相关,得到结果
Rxy(m)=E{xn+myn∗}=E{xnyn−m∗}R_{xy}(m) = E\{ x_{n+m}y_{n}^* \}=E\{ x_{n}y_{n-m}^* \}Rxy(m)=E{xn+myn}=E{xnynm}
在此附上互相关的自实现代码(与matlab自带的xcorr实现功能相同):

function [c,lags] = section_xcorr(x,y)
M = length(x);
N = length(y);
y = [zeros(M-1,1);y;zeros(M-1,1)];c = zeros(M+N-1,1);
for i = 1:M+N-1axis_x = conj(x);axis_y = y(i:i+M-1);     c(i) = mean(axis_x.*axis_y);
endlags = 1:length(c);lags = lags - N;c = flip(c);
end

相关结果如下:
在这里插入图片描述

根据该相关峰进行判决,即可完成同步,找到接收序列中信号的帧头位置。

匹配滤波器捕获(DMF)

滑动相关求和累加过程与FIR滤波器相似,,因此诞生了匹配滤波器捕获(DMF)。把本地伪码当做匹配滤波器系数,数据输入滤波器,得到的滤波结果和互相关的结果大致相同。

(在硬件实现层面,例如fpga的实现。调用FIR滤波的IP core远比实现滑动相关求和累加简单得多,因此在同步算法的硬件实现层面,通常采用DMF的算法。不过如果序列过长,可以先下采样,然后对部分序列进行捕获)

滑动相关和卷积的不同在于,卷积需要对其中一个输入进行翻转,因此我们需要把本地序列做共轭翻转后再当作滤波器系数。利用fdatool工具设计滤波器
在这里插入图片描述
利用该滤波器,对接收数据进行滤波处理,得到滤波后的结果。
在这里插入图片描述
比较互相关的结果和匹配滤波的结果
在这里插入图片描述
发现二者都出现了幅度相同的峰值结果,但是出现的位置和输出结果都完全不同。这是什么原因呢?

我们将接收数据复制一份,即重复接收两次发射序列,将长度为2N的接收数据同时经过匹配滤波器和互相关。得到如下结果
在这里插入图片描述
可以看出,在两个相关峰中间的输出,滑动相关和匹配滤波的输出结果是一样的。其他地方的结果不一样主要是因为滑动相关会在数据不足的地方自动补0,而filter函数自带截尾设置,导致数据不足的地方二者输出结果不同。

总体来说,匹配滤波和滑动相关可以实现的功能是相同的。匹配滤波的优点在于捕获时间提升N倍,而缺点在于存在多普勒时捕获带宽较小,相关峰随频率衰减,漏检错检概率较大。

最后附上本仿真的主要代码:

clc;
clear;
close all;
%% 原始信号
length_seq = 1024;
seq = gen_chu_seq(length_seq); %原始数据
seq_noise = awgn([seq seq],0);
%% 设置滤波器系数
h_num = flip(conj(seq)); %用该数据设置滤波器系数
h = matched_filter;      %生成滤波器
%% 匹配滤波器效果
filter_outpiut = filter(h,[seq_noise ]);figure();
subplot(2,1,1)
plot(abs(filter_outpiut));
hold on
plot(1024:2048,abs(filter_outpiut(1024:2048)));
axis([0,4500,0,1200])
title('匹配滤波器结果')%% 滑动相关结果
[xcorr_output,lags] = xcorr([seq_noise ],seq);
subplot(2,1,2)
plot(abs(xcorr_output));
hold on
plot(2048:3072,abs(xcorr_output(2048:3072)));
axis([0,4500,0,1200])
title('滑动相关结果')

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

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

相关文章

上海亚商投顾:沪指午后放量跳水两市上涨个股不足500只

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪指数早间震荡走高,沪指盘中收复3300点,午后集体跳水,创业板指一度跌超2%。ChatGP…

openwrt开发板与ubuntu nfs挂载

1.ubuntu需要安装nfs服务 sudo apt-get install nfs-common nfs-kernel-server2.修改 /etc/exports文件: /home/test *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) 前面是挂载的目录,后边是相应权限 rw:读写 insecure&am…

WMS系统在生产管理中能带来哪些好处?

springbootVue开发的WMS仓库管理系统源码有演示! 一个成熟的WMS的使用,能给仓库管理企业和部门带来明显的好处,包括但是不限于如下: 1、减少了企业大量无效的纸张进行记录学生作业,实现无纸化管理; 2、可以更好地准备…

面试篇——计算机网络面试核心问题汇总

前言 前言:总结前后端岗位面试中计算机网络部分常见的面试题。 文章目录前言一、OSI七层模型1、物理层2、数据链路层3、网络层4、传输层5、会话层6、表示层7、应用层8、网络数据处理的整个流程二、TCP/IP 四层模型三、TCP的三次握手1、TCP简介2、三次握手1&#xff…

深入了解移动端适配的方案

一、remflexiblepostcss-pxtorem amfe-flexible 是配置可伸缩布局方案,主要是将 1rem 设为 viewWidth/10* postcss-pxtorem是postcss的插件,用于将像素单元生成rem单位。安装 amfe-flexible和ostcss-pxtorem npm i amfe-flexible postcss-pxtorem --sav…

Python学习-----函数3.0(嵌套函数、闭包、装饰器)

目录 1.函数嵌套 2.闭包 3.装饰器 这一节,我会详细Python中讲解函数的进阶内容,包括嵌套函数、闭包和装饰器。一起来学习吧!!! 1.函数嵌套 概念:函数里面再定义一个函数 作用:当我们在一个多…

《系统架构设计》-02-架构师的视图和视角

文章目录1. 架构师的视图1.1 上下文视图1.1.1 概念1.1.2 示例1.2 功能视图1.2.1概述1.2.2 示例1.3 数据视图1.3.1 概念1.3.2 数据视图对数据的处理1.3.3 数据架构建模1.3.4 示例1.4 开发视图1.4.1 示例1.5 部署视图1.5.1 概念3.5.2 示例2. 架构师视角2.1 安全性视角2.1.1 安全性…

Spring IoC 与容器的初始化

Spring IoC 与容器的初始化 IoC 解决了到底解决了什么? 控制翻转 Inversion of Control 控制-对象的创建者 翻转-角色的转变 凡是在高级的编程语言中面对程序的设计总会提到的一点就是,低耦合、高内聚。那么对于低耦合与高内聚应该怎么去理解这两点呢&…

pandas基本操作

df.head()/tail() 查看头/尾5条数据;df.info 查看表格简明概要;df.dtypes 查看字段数据类型;df.index 查看表格索引;df.columns 查看表格列名;df.values 以array形式返回指定数据的取值;list(dt.groupby(&q…

2W字正则表达式基础知识总结,这一篇就够了!!(含前端常用案例,建议收藏)

正则表达式 (Regular Expression,简称 RE 或 regexp ) 是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")正则表达式使用单个字符串来描述、匹配一系列匹…

win10电脑性能优化设置

win10电脑性能优化设置 目录win10电脑性能优化设置1.桌面图标显示2.wini2.1 “系统”2.1.1专注助手 关2.1.2 电源和睡眠 设置为从不2.1.3 存储 开2.2 网络和Internet2.3 个性化2.4 应用2.5 账户2.6 游戏2.7 隐私墨迹书写和键入个性化:关活动历史记录:全部…

ASE12N65SE-ASEMI高压MOS管ASE12N65SE

编辑-Z ASE12N65SE在ITO-220AB封装里的静态漏极源导通电阻(RDS(ON))为0.68Ω,是一款N沟道高压MOS管。ASE12N65SE的最大脉冲正向电流ISM为48A,零栅极电压漏极电流(IDSS)为10uA,其工作时耐温度范围为-55~150摄氏度。ASE…

实体店店铺管理软件怎么挑?看了排名就知道!

很多实体店店主在选择店铺管理软件时,不知道怎么选择,其实这个不难。一般根据市场上的排名也选择就ok了,因为一款被大家都认证过好用的软件,怎么都比盲选的或者名不见经传的软件好。选择一款适合的实体店店铺管理软件可以省很多事。而截止现在管理软件排…

HummerRisk V0.9.1:操作审计增加百度云,增加主机检测规则及多处优化

HummerRisk V0.9.0发布:增加RBAC 资源拓扑图,首页新增检查的统计数据,云检测、漏洞、主机等模块增加规则,对象存储增加京东云,操作审计增加金山云,镜像仓库新增设置别名。 感谢社区中小伙伴们的反馈&#…

在华为MateBook Ego的arm windows 11上安装hyper-V虚拟机

入手一台华为matebook Ego的笔记本,由于想要测试一些arm的驱动功能,经常会把系统搞蓝屏,于是想安装一个虚拟机,于是试了vmware ,visual-box,由于本机是arm架构上面两个软件都无法进行正常安装,可能是由于有…

Zynq非VDMA方案实现视频3帧缓存输出,无需SDK配置,提供工程源码和技术支持

目录1、前言2、VDMA的不便之处3、FDMA取代VDMA实现视频缓存输出4、Vivado工程详解5、上板调试验证并演示6、福利:工程代码的获取1、前言 对于Zynq和Microblaze的用户而言,要想实现图像缓存输出,多半要使用Xilinx推荐的VDMA方案,该…

win11/10+opencv3.x/4.x配置 VS2019方法(简单使用,亲测)

首先下载 opencv,去官网下载百度》输入opencv,点击opencv|home,进入官网。点击 “Library”---->Release点击 对应版本下的 window版本,点击 --安装--extract---》设置路径。这个就是把库文件扩展到指定的路径下,扩…

如何赋能智能运维,迈出数字化黑匣子第一步?

在当下大数据时代,诸多行业专家为企业智能运维绘出美好蓝图。在该蓝图中,互联网、云计算、大数据分析联合发力,企业在能“攻”能“守”中快速、可持续发展。何为“攻”?对支撑企业产品研发、生产、管理、营销等各业务链条的IT基础…

从FPGA说起的深度学习(三)

这是新的系列教程,在本教程中,我们将介绍使用 FPGA 实现深度学习的技术,深度学习是近年来人工智能领域的热门话题。在本教程中,旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…

Windows中的CMD不需要死记硬背

日期:2023年2月16日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xf…