网站首页 > 技术文章 正文
首先有两个sin函数的基础变换
这两个正弦波图像的代码如下
'''
Created on 2023年3月9日
@author: admin
'''
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(19680801)
dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t)) # white noise 1
nse2 = np.random.randn(len(t)) # white noise 2
s1 = np.sin(2 * np.pi * 10 * t) + nse1
s2 = np.sin(2 * np.pi * 10 * t) + nse2
fig, axs = plt.subplots(2, 1)
axs[0].plot(t, s1)
axs[0].set_xlim(0, 2)
axs[0].set_xlabel('Time')
axs[0].set_ylabel('s1 and s2')
axs[0].grid(True)
axs[1].plot(t, s2)
axs[1].set_xlim(0, 2)
fig.tight_layout()
plt.show()
如何要在一个画布中展示两个正弦函数的图像
则代码只需要在上面的基础上作出修改
fig, axs = plt.subplots(2, 1)
axs[0].plot(t, s1, t, s2)
axs[0].set_xlim(0, 2)
axs[0].set_xlabel('Time')
axs[0].set_ylabel('s1 and s2')
axs[0].grid(True)
那么这两个正弦的基础频率是一样的
只是有一定的差值,那么如何计算它们的相干性呢
振动频率相同、相差恒定的叫做相干性。
两个波彼此相互干涉时,因为相位的差异,会造成相长干涉或相消干涉。假若两个正弦波的相位差为常数,则这两个波的频率必定相同,称这两个波“完全相干”。两个“完全不相干”的波,例如白炽灯或太阳所发射出的光波,由于产生的干涉图样不稳定,无法被明显地观察到。在这两种极端之间,存在着“部分相干”的波。
波与波之间的的相干性可以用相干度(degree of coherence)来衡量。干涉可见度(interference visibility)是波与波之间的干涉图样的辐照度对比,相干度可以从干涉可见度计算出来
cxy, f = axs[1].cohere(s1, s2, 256, 1. / dt)
axs[1].set_ylabel('Coherence')
在代码层面只需要一个函数即可cohere详细说明可以看官方文档
相干性的计算公式
那么相干性的应用体现在什么地方呢
首先,我们第一次接触相干性应该是在物理学中波的干涉中的相干波,这里的相干性 (coherence) 指的是,为了产生显著的干涉现象,波所需具备的性质。这个性质就是指两列频率相同,相位差恒定的波,可以产生干涉现象。
信号处理中的狭义定义
在信号处理中,相干性是一种统计数据,可用于验证两个信号或数据之间的关系。它通常用于估算线性系统输入和输出之间的功率传输状况。如果系统函数是线性的,则可以使用它来估计输入和输出之间的因果关系,即因果性。针对某一个频率,其相位差恒定,幅值变化表现一致,说明这两信号中这个频率点的相干性较高。
这段话怎么来理解呢?比如说,以车为载体,人对着车轮子踢了一脚(这是作用力1),坐在车内的人能听到声音(这是声音1),如果计算相干性的话,在声音对应的频率段,其值会非常接近于1,表示两者相干性很高,也就说明,声音的来源是作用力1。
数学定义
用公式来表达两列信号x,y 的相干性计算,如下:
其中Gxy(f ) 为两列信号的互功率谱密度,Gxx(f ) 和Gyy(f ) 则是它们各自的自功率谱密度。
从公式中可以发现,相干性的取值范围是:
一个理想的线性系统,输入与输出的相干性为1,但是在现实世界中,这种线性系统几乎是不存在的,因为任何系统均会存在噪声,所以说,真实的情况是系统的相干性值在[0,1]之间。1为完全相干,0为完全不相干。
另外,想着重说明一点的是,若输入输出信号的相干性在[0,1]之间,那就是系统中混入了噪声,或多或少而已。
举例
通过相干性计算,能准确识别车内噪声的来源。
如上图所示,对静止状态的样品车的车轮进行激励,同时采集悬架处的振动 (X) 与车内驾驶员右耳处的声音 (Y),将这两者进行相干性计算,验证其因果关系。如下左图为悬架上的振动信号频谱,激振器激励出的能量主要集中在10~50Hz,下右图为驾驶员右耳处的声压频谱,在对应频率处产生了较大的激励。
如果把他们放在一起,如上左图,发现激励与响应能对应的很好,再计算两者的相干性,在对应频段 (10~50Hz) 有较高的相干性(图中黑圈)。这就说明,车内的声音,主要就是由车轮经悬架振动传递到车内的,因为车内声音还有部分通过空气传播,所以说相干性是接近于1而不是1。通过这样的过程,就能识别出噪声
猜你喜欢
- 2024-10-14 Python之Matplotlib数据可视化一:简易线形图
- 2024-10-14 圆:circle-sin-cos动画的matplotlib
- 2024-10-14 画直线不简单!python-matplotlib告诉你为什么
- 2024-10-14 用Python下一场流星雨,女生看了都哭了
- 2024-10-14 手把手教你使用Numpy、Matplotlib、Scipy等5个Python库
- 2024-10-14 走进Matplotlib世界(一)(matplotlib.org)
- 2024-10-14 Python 数据分析——matplotlib 坐标变换和注释
- 2024-10-14 利用axe对象绘制地图局部缩放图(下面几种建模对象能通过基本实体工具直接绘制的是)
- 2024-10-14 Python动态绘图的方法(上)(canvas python动态绘图)
- 2024-10-14 走进Matplotlib世界(二)(matplotlib入门)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)