滑动相关的原理以及用滤波器实现滑动相关(匹配滤波器捕获DMF)
目录
- 滑动相关
- 匹配滤波器捕获(DMF)
滑动相关
滑动相关属于一种时域捕获方法,其具体原理是是通过本地序列与接收信号在固定窗长内滑动累加得到相关结果。
一般滑动相关算法可以用于对自相关性非常好的伪码进行同步判决。
我们首先生成一组自相关性很好的初始序列 x ( n ) x(n) x(n)
x ( n ) = e j π n 2 N , n = 1 ∼ N x(n) = e^{\frac{j\pi n^2}{N}},n=1\sim N x(n)=eNjπn2,n=1∼N
假设该信号经过信噪比为0dB的信道,得到接收信号 y ( n ) = x ( n ) + w ( n ) y(n) = x(n) + w(n) y(n)=x(n)+w(n)
二者做互相关,得到结果
R x y ( m ) = E { x n + m y n ∗ } = E { x n y n − m ∗ } R_{xy}(m) = E\{ x_{n+m}y_{n}^* \}=E\{ x_{n}y_{n-m}^* \} Rxy(m)=E{xn+myn∗}=E{xnyn−m∗}
在此附上互相关的自实现代码(与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) = sum(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('滑动相关结果')
滑动相关的原理以及用滤波器实现滑动相关(匹配滤波器捕获DMF)相关推荐
- html验证码的原理,滑动验证码的原理并利用 Vue 实现滑动验证码
做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动.点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文章大致说明下这些验证码的原理以及带大家实现一个滑动验证码. 我之 ...
- Hystrix 1.5 滑动窗口实现原理总结
文章目录 总览 BucketedCounterStream 总览 事件流的写入 共享的事件流 事件流聚合为桶 BucketedRollingCounterStream HealthCountsStre ...
- Sentinel 滑动窗口实现原理 侵删
要实现限流.熔断等功能,首先要解决的问题是如何实时采集服务(资源)调用信息.例如将某一个接口设置的限流阔值 1W/tps,那首先如何判断当前的 TPS 是多少?Alibaba Sentinel 采用滑 ...
- Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)
Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理.倒排索.建立查找树.处理Hash冲突.Hash查找) 目录 一.SimHash算法 1.SimHash算法五个步骤 2. ...
- 高级架构师_Docker_第2章_ Docker核心原理_ 第1节_Docker相关的虚拟化技术
高级架构师_Docker_第2章_ Docker核心原理_ 第1节_Docker相关的虚拟化技术 文章目录 高级架构师_Docker_第2章_ Docker核心原理_ 第1节_Docker相关的虚拟化 ...
- 360搜索下拉词框跟相关搜索算法原理是什么?如何做360下拉推广?
一.360相关搜索跟下拉词算法分析 首先我们来分析一下360下拉词产生的算法是怎么样的? 通常来说,一个下拉词的产生跟这个词语的热度是相关的,简单的说就是一个词语的关注度(资讯.搜索等等)热度越高,那 ...
- 抖音只能上下滑动吗_抖音只能上下滑动吗_实现仿抖音视频滑动的两个方案
0.效果图 1.先来看一下需求 1. 项目中的视频播放,要求实现抖音那种竖直方向一次滑动一页的效果.滑动要流畅不卡顿,并且手动触摸滑动超过1/2的时候松开可以滑动下一页,没有超过1/2返回原页. 2. ...
- DCSS是利用微型计算机,关于计算机相关毕业论文致谢,关于大学计算机基础试题相关论文范文集...
关于计算机相关毕业论文致谢,关于大学计算机基础试题相关论文范文集 本文关于计算机及操作系统及计算机网络方面的免费优秀学术论文范文,关于计算机相关论文范文集,与大学计算机基础试题相关电大毕业论文范文,对 ...
- 与计算机图形学相关的研究论文,计算机图形学相关论文范文数据库,与计算机图形学的相关技术与相关专科毕业论文范文...
计算机图形学相关论文范文数据库,与计算机图形学的相关技术与相关专科毕业论文范文 关于计算机图形学及计算机及计算机动画方面的免费优秀学术论文范文,计算机图形学相关本科毕业论文,关于计算机图形学的相关技术 ...
最新文章
- yolo如何降低loss_从未看过如此通俗易懂的YOLO系列
- 转:mybatis - 分页功能
- Graphviz:利用可视化工具Graphviz将dot数据进行图像可视化或者图像保存(两大方法)之详细攻略
- 【JAVASCRIPT】无刷新评论
- 关于gitgithub的操作
- oracle sql 查询优化器,基于ORACLE成本优化器的SQL查询优化分析与应用
- 逼自己学python后,我成了同事眼中的大神
- (转)SpringMVC学习(十)——SpringMVC与前台的json数据交互
- 在ASP.NET的母版页中使用图片和超链接,HTML标记和ASP.NET标记的不同
- Address already in use: JVM_Bind:8080类似问题解决方法
- 处女座的砝码-数学推论
- vue 获取汉字的全拼、简拼、首拼
- 思科(Cisco)交换机路由器命令大全
- hp 服务器 修复,Hp服务器 raid 磁盘故障数据库数据恢复过程
- 用 FragmentTabHost 实现底部菜单
- 蒙特卡洛(Monte Carlo)方法的理解
- 微软认知服务应用秘籍 – 支持跨平台客户端的视觉服务中间层
- 使用C#压缩/解压缩7-zip文件
- 实验3-11 求一元二次方程的根
- 百度百科计算机科学与技术,徐明伟(清华大学计算机科学与技术系教授)_百度百科...