技术标签: 自相关函数的频率估算matlab
对于做科研工作或工程应用的人来说,拿到一列或数列随机信号观测序列,首先想到的就是看看它们的自相关、互相关函数,自功率谱、互功率谱密度函数估计吧。
这一篇对上一篇中各数据矩阵TW4615_12、TW2672_12、GY2672_12、DY2672_12、MB2672_12数据作一下相关函数估计,并给出其图形。
MATLAB程序如下(注:为了以示区别,本博客各博文中运行的程序(包括源代码及注释)全部采用斜体)。
%先将各矩阵转换为零均值(时间平均)的一维时间序列TW461512_0=TW4615_12';4615天体温
TW461512_0=TW461512_0(:);
TW461512_0=TW461512_0-mean(TW461512_0);
subplot(2,2,1)%绘制子图
plot(TW461512_0)
TW267212_0=TW2672_12';%TW4615_12后半部分2672天体温
TW267212_0=TW267212_0(:);
TW267212_0=TW267212_0-mean(TW267212_0);
GY267212_0=GY2672_12';%高压
GY267212_0=GY267212_0(:);
GY267212_0=GY267212_0-mean(GY267212_0);
subplot(2,2,2)
plot(GY267212_0)
DY267212_0=DY2672_12';%低压
DY267212_0=DY267212_0(:);
DY267212_0=DY267212_0-mean(DY267212_0);
subplot(2,2,3)
plot(DY267212_0)
MB267212_0=MB2672_12';%脉搏
MB267212_0=MB267212_0(:);
MB267212_0=MB267212_0-mean(MB267212_0);
subplot(2,2,4)
plot(MB267212_0)
运行,得:
图3-1 各信号数据时间序列
%计算各信号序列自(互)相关函数并画图.由于序列都已经0均值化,故相关函数等价于协方差函数.
R_TW4615=xcorr(TW461512_0,'unbiased')
plot(R_TW4615)
运行,得:
图3-2 TW461512_0的自相关函数R_TW4615图形
R_TW4615的长度为55380*2-1=110759(采样点单位为两个小时即一个时辰)。数一数图形包络线上面的“锯齿”,中心线左右大略各为12个多,因此一个“锯齿”代表一年应该没什么问题。
由于函数序列比较长,所以看起来黑乎乎的一大块。将函数R_TW4615导入信号处理工具sptool,打开信号观察器窗口Signal Browser,并放大横轴,得图3-2。
图3-3 R_TW4615横轴放大
可以看出,位于两个波峰处的两根标尺,当中的波形数量为10个,两根标尺之间的距离是dx=120。因此此图中一个波形的周期是12,即1天,是没有什么问题的。当然,图3-2、图3-3的波形周期都只是凭肉眼观测。严格地说,要确定一函数序列中的各频率周期,还要依靠一套算法才行。这个以后再讨论。
由于周期函数的相关函数也必定是周期函数,因此R_TW4615的周期成分也应该是TW461512_0的周期成分(不过从逻辑上好像不能这么推论。希望内行的朋友赐教:“反之亦真”的必然性在哪?)。
从TW461512_0的自相关函数图中很容易就看得出的频率成分就这两个。将信号观察器窗口Signal Browser的横轴随意缩放,可以看到R_TW4615的图形常常会出现一些类似“干涉条纹”的现象,如图3-4就是其中的一个。
图3-4 R-TW4615图形中出现的“干涉条纹”现象
很容易看出来,图3-4中两根标尺之间有3个波形,两根标尺之间的距离大约为dx=2712,因此一个波形的周期大约是2712/3=904。这个到底是不是TW461512_0中的一个周期成分呢?我不知道。留待以后慢慢思考。验证。也请内行朋友赐教。这一类的“干涉条纹”图还有很多,无法尽举。我大致数了的,周期成分还有: 516 372.89 354.32 327.6 323.5 319.2 279 262.15 262 258 188.11 186.44 163.71 138.92 131.14 131.08 81.857 77.454 74.182 67.66 65.077 34.604 33.84……
上面的数据只是我随意缩放横轴后,用鼠标拖动标尺所测量到的各“干涉条纹”图中波形的周期,虽然其小数点后面保留了几位数字,但这并不代表精度。
下面贴出血压部分的相关函数图。
R_GY2672=xcorr(GY267212_0,'unbiased');
plot(R_GY2672)
运行,得:
图3-5 GY267212_0的自相关函数R_GY2672图形
仍旧将R_GY2672导入信号处理工具sptool,打开信号观察器窗口Signal Browser,并放大横轴与纵轴,得图3-6
图3-6 R_GY2672横轴纵轴放大
从图中可以看出,两根标尺之间有20个波形,标尺之间的距离是dx=240,因此一个波形的周期是240/20=12,即一天。
R_DY2672=xcorr(DY267212_0,'unbiased');
plot(R_DY2672)
运行,得:
图3-7 DY267212_0的自相关函数R_DY2672图形
上图的放大图就不贴了。 R_GY2672与R_DY2672在信号观察器窗口Signal Browser中,缩放横轴,也都可以看到“干涉条纹”图,只是测起波形周期来没有X_TW4615那么简明,就略去了。
下面贴出脉搏的自相关函数图。
R_MB2672=xcorr(MB267212_0,'unbiased');
plot(R_MB2672)
运行,得:
图3-8 MB267212_0的自相关函数R_MB2672图形
下面是信号观察器窗口Signal Browser中R_MB2672横轴放大后得到的“干涉条纹”图。
图3-9 R_MB2672的干涉条纹图
可以看出其一个波形的周期为dx/18=1848/18=102.6667。其余波形周期暂就不数了。
本来想把自相关、互相关函数图在这一篇中全部贴出的,发现至此内容已经不少了,互相关部分就放到下一篇再贴吧。
转载本文请联系原作者获取授权,同时请注明本文来自柏世平科学网博客。
链接地址:http://blog.sciencenet.cn/blog-825323-636699.html
上一篇:2、观测数据_用于研究的“原材料”
下一篇:4、谈谈我对人体血压的看法
PullScrollView进阶(一)----->图片下拉回弹 实现QQ空间头布局的效果一点点思路
http模块数据结构ngx_module_t数据结构ngx_module_tngx_module_t ngx_core_module = {struct ngx_module_s { ngx_uint_t ctx_index; ngx_uint_t index; char *name; ngx_uint_t spare0; ngx_uint_t
注意:因为anaconda自带了python,这里不需要自己手动去安装python。1、首先本人笔记本是win10系统,本电脑试了很多版本anaconda,但最后试了几个版本,都安装试验不成功,最后选择了下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,找到对应的版本。2、下载好安装包后就开始安装,就直接下一步,大部分全
文章目录一,标题二,标题一,标题二,标题
ECSHOP这款电商程序由于系统开源功能齐全受到了很多站长朋友们的青睐。近期很多站长朋友来联系小编说ECSHOP二次开发后的网站访问速度突然慢了下来,没有以前快了。开始小编以为是由于商城的图片多,访问的时候加载需要一点时间这是正常的,也可能是网站的JS问题导致的。这些都不是什么问题,只需要整体优化下就可以解决了。可是近期小编每天都遇到一些站长朋友来反映说ECshop程序没有以前访问快了,小编这才想...
这是一款jQuery/SVG实现Checkbox商品列表选中特效的插件,选中或者取消选中时复选框的样式会发生变化,这种线条的变化是利用了SVG的路径特性
文章目录环境定义一个用于测试的类没有右值引用和移动构造ubuntu运行结果分析visual studio运行结果分析ubuntu中关闭返回值优化添加移动构造使用const引用接收返回值使用右值引用接收返回值总结本文不是介绍右值引用和移动语义的,在阅读本文前,假设读者已经知道了什么是右值引用和移动语义。右值分为:纯右值和将亡值,本文主要介绍纯右值,并不涉及将亡值。环境在运行测试代码时,使用了如下环境:linux使用的是ubuntu 18,在ubuntu上使用的是g++,版本如下:[email protected]
Managing Audio Focus[管理音频焦点]很多App都可以播放音频,因此在播放前如何获取到音频焦点就显得很重要了,这样可以避免同时出现多个声音,Android使用audio focus来节制音频的播放,仅仅是获取到audio focus的App才能够播放音频。在App开始播放音频之前,它需要经过发出请求[request]->接受请求[receive]-&g...
工作小问题记录问题:页面根据需求需要使用到slider,用户通过对slider的操作使得其他显示动态变化, 但是用户在元素上摁下鼠标后,移动幅度较大,鼠标偏离slider元素,这样导致动态显示部分无变化。之前的写法是在元素上绑定mousedown、mouseup、mouseout$('#slider').mousedown(function () { });$('#slider').mouseup(function () { });$('#...
一.前言动画在jQuery里属于重要的模块,库中很多模块都为它服务,queue队列模块,callbacks模块,缓存模块,下面是我自己看源码做笔记所写下来的,话不多说,一下是我自己所记录的,大部分代码做了笔记 。我将整个动画分为2个部分,今天我来分析下动画变化之前,做了些什么,怎么实现动画的链式,queue队列到底做了什么下次会讲动画真正实现的源码,不过今天的这个部分,我个人觉得比较有
从上图可以看到,当border-color设置为显示白色边框时,我的电子邮件按钮边框同时显示灰色和白色.我已经发布了以下代码:[email protected] border-radius($radius) {border-radius: $radius;-ms-border-radius: $radius;-moz-border-radius: $radius;-o-border-radius: $radiu...
不用设计模式并非不可以,但是用好设计模式能帮助我们更好地解决实际问题,设计模式最重要的是解耦。设计模式天天都在用,但自己却无感知。 我们把设计模式作为一个专题,主要是学习设计模式是如何总结经验的,把经验为自己所用。学设计模式也是锻炼将业务需求转换技术实现的一种非常有效的方式。 本章内容将按照创建型模式(工厂方法模式、抽象工厂模式、单例模式、原型模式、建造者模式)、结构...