参考文章:《使用相关性对齐信号》

文章目录

1、读取自己的信号数据:

2、读取两个信号之间的互相关数据

3、根据互相关及其最大值索引对两个信号对齐:

4、大功告成,画图看看



前言

在对数字时域信号进行操作时,有时需要在预处理的过程中,对自己的信号数据进行对齐操作,本文就用python实现该时域对齐操作,方便对时域信号进行下一步处理。


1、读取自己的信号数据:

我这里就用自己的信号数据来做演示:

(首先需要import的库有如下三个)

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

紧接着读取数据(因为我的信号数据有很多,这里读取其中两个信号s1、s2做演示)

data = pd.read_csv(r'C:\Users\xps\Desktop\radar\train_raw_data_las_2.csv')
data0 = data.values
s1 = data0[0]
s2 = data0[5]
s1 = list(s1)
s2 = list(s2)plt.plot(range(len(s1)),s1,'r',label = 'x')
plt.plot(range(len(s2)),s2,'g',label = 'y')
plt.show()

两个信号画图如下,可以看出两个信号是不对齐的

2、读取两个信号之间的互相关数据

此处读取两个信号的互相关使用的是np里面的correlate函数,该函数和数字信号处理里面的卷积操作一样,即求两个信号s1和s2的卷积

具体操作如下:

c21 = np.correlate(s2,s1,mode='full')
t21 = np.argmax(c21)

c21为s1,s2两个信号的互相关

t21为互相关中最大值所在的索引:此处t21=518,可在下图横轴大致看出

c21画出的图如下:

3、根据互相关及其最大值索引对两个信号对齐:

原理大致解释如下:

对s1和s2求卷积时,是先将其中一个信号反转,再平移,计算二者重叠部分的和(具体可见信号课本求卷积的图示法)

互相关最大值处即是两个信号重叠最大的部分,其移动的间距即是我们在下面即将对其中一个信号移位的距离。

下面代码中的index即是s1和s2求得互相关最大值时的卷积移动间距

若index=0,则说明两个信号刚好对齐

若index>0,则说明s1信号领先s2信号index个距离

若index<0,则说明s2信号领先s1信号index个距离

此处咱们以s1信号为基准,让s2和s1对齐,对齐操作只需要对s2进行切片整合操作即可,如下代码所示

len_s = len(s1)
index = t21-len_s
if index > 0 :tt1 = s2[index:]tt2 = s2[0:index]s2_0 = tt1 + tt2
else:index = len_s + indextt1 = s2[0:index]tt2 = s2[index:]s2_0 = tt2 + tt1

4、大功告成,画图看看

plt.subplot(211)
plt.plot(range(len(s1)),s1,'r',label='x')
plt.plot(range(len(s2)),s2,'g',label='y')plt.subplot(212)
plt.plot(range(len(s1)),s1,'r',label='x')
plt.plot(range(len(s2_0)),s2_0,'g',label='y')
plt.show()

从下图可以看出,两个信号已经对齐,可以进行其他信号处理操作

互相关法对时序信号时域对齐(python实现)相关推荐

  1. 时序信号的时域、频域、时-频域特征提取

    文章目录 时域特征提取 频域特征提取 时-频域特征提取 参考资料 在面对工业中的传感器采集到的高维的信号,如振动信号,通常需要对数据进行统计特征提取,以进行降维.对于这类时序信号,常用的有时域.频域和 ...

  2. 计算机中时序信号的作用是什么,时序信号

    时序信号是一个用来确定时段执行哪些微操作的标志.它规定这个微操作在什么时候发出去.时序信号是横轴为时间的信号,即时域内的信号,观察信号时域的特征.每一条计算机指令都可以再分为更细的操作,我们称之为微操 ...

  3. matlab方波假频现象分析,基于MATLAB 的信号时域采样及频率混叠现象分析

    龙源期刊网 http://www.doczj.com/doc/7d04774eae45b307e87101f69e3143323968f58a.html 基于MATLAB 的信号时域采样及频率混叠现象 ...

  4. n步自举法:时序差分方法与蒙特卡洛方法的结合

    前言: 之前讨论了(1步)时序差分方法(CSDN链接)与蒙特卡洛方法(CSDN链接).刚刚学习完 Sutton 的<强化学习(第二版)>的第七章:n步自举法.它是时序差分方法与蒙特卡洛方法 ...

  5. matlab时域计算频率,基于MATLAB 的信号时域采样及频率混叠现象分析

    摘要:频率混叠是数字信号处理中特有的现象,发生频率混叠后,信号会分析出错误的结果.而采样过程中,由于频率不够高,采样出的点不仅代表了信号中低频信号的样本值,也代表了高频信号的样本值.信号重构时,高频信 ...

  6. matlab中拟合函数中的gian值,如何在Matlab中优化基本周期图法对随机信号进行的功率谱估计...

    首都师范大学学报(自然科学版)第27卷 第5期2006年10月 Journal of Capital N ormal University (Natural Science Edition ) V o ...

  7. 《数字语音处理》- 1. 基于MATLAB的语音信号时域特征分析

    声明 本文仅在CSDN发布,其他均为盗版.请支持正版! 正版链接: https://blog.csdn.net/meenr/article/details/117629753 基于MATLAB的语音信 ...

  8. matlab时域信号如何分析方法,信号时域采样频谱分析(matlab)

    <信号时域采样频谱分析(matlab)>由会员分享,可在线阅读,更多相关<信号时域采样频谱分析(matlab)(12页珍藏版)>请在读根文库上搜索. 1.基于matlab的时域 ...

  9. 计算机时序电路的作用,时序电路用来产生各种时序信号,以保证整个计算机协调地工作。 - 试题答案网问答...

    相关题目与解析 时序信号是控制计算机各个部件协调工作的关键,时序信号发生器产生的三级时序不包括() 计算机中时序产生器的作用是().A.保证和实际时间一致B.产生时序脉冲C.计算程序运行时间D.加快运 ...

最新文章

  1. sql,EXISTS用法
  2. 处理字符串_7_判断字符串是字符串数字型
  3. 1042 字符统计 (20 分)(c语言)
  4. 不可思议!这篇全篇脏话的文章竟然发表了
  5. 前端学习(3085):vue+element今日头条管理-封装数据接口
  6. Python之日志处理(logging模块)详解
  7. 通过驱动向Excle中写入数据
  8. 社交之后又是资讯,支付宝要用内容吸引流量
  9. Sublime Text3 + Golang搭建开发环境
  10. urtlebot3启动键盘控制后 /cmd_vel 会持续输出数据,在键盘不给信号时 /cmd_vel 续输,导致此功能与导航同时启动,会导致小车自动行走时一顿一顿的
  11. 详解Linux防火墙iptables禁IP与解封IP常用命令
  12. SQLServer2008客户端软件
  13. 如何区分是前端BUG还是后端BUG
  14. U盘安装ESXI 6.7,并使用U盘启动服务器
  15. 游轮旅游是三亚旅游的未来
  16. 根轨迹 matlab 怎么画一半儿,现有 1020 个西瓜,第一天卖一半多两个,以后每天都卖剩下的一半多两个,编程计算几天后能把所有西瓜都卖完? 请编程实现_学小易找答案...
  17. Pytorch系列之——nn网络层
  18. win7 安装openssh_win7系统安装OpenSSH的操作方法
  19. 终于来了,200道阿里面试题!
  20. Exynos4412-itop4412 uboot移植

热门文章

  1. 莘松路隧道几百米的路程要走一个多小时!
  2. 【Docker】搭建MySQL主从复制,详细的图文展示
  3. java净水器公司CRM系统
  4. CarSim 2016安装破解教程
  5. 【名词从句】主语从句的转化练习题
  6. 数据结构—线性表的顺序存储
  7. AES-256算法C语言实现
  8. 人只能活一次,千万别活得太累!
  9. MySQL 视图变量
  10. MySQL查询与视图实验总结_MySQL 视图 总结