精华内容
下载资源
问答
  • 自相关函数和互相关函数的matlab 计算和作图 1. 首先说说自相关和互相关的概念 这个是信号分析里的概念他们分别表示的是两个时间序列之间和同一个时 间序列在任意两个不同时刻的取值之间的相关程度即互相关函数是...
  • PAGE / NUMPAGES 自相关函数和互相关函数的matlab计算和作图 1. 首先说说自相关和互相关的概念 这个是信号分析里的概念他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度即...
  • ncRubert..14如果您正在寻找一维或二维快速,标准化...虽然这是一个C++库,但代码是使用CMake维护,并且具有python绑定,因此可以方便地访问互相关函数.OpenCV也很适合numpy.如果我想从numpy数组开始计算二维互相关...

    ncRubert..

    14

    如果您正在寻找一维或二维的快速,标准化的互相关,我会推荐openCV库(参见 http://opencv.org/).由该组维护的互相关代码是您将找到的最快,它将被标准化(结果在-1和1之间).

    虽然这是一个C++库,但代码是使用CMake维护的,并且具有python绑定,因此可以方便地访问互相关函数.OpenCV也很适合numpy.如果我想从numpy数组开始计算二维互相关,我可以按如下方式进行.

    import numpy

    import cv

    #Create a random template and place it in a larger image

    templateNp = numpy.random.random( (100,100) )

    image = numpy.random.random( (400,400) )

    image[:100, :100] = templateNp

    #create a numpy array for storing result

    resultNp = numpy.zeros( (301, 301) )

    #convert from numpy format to openCV format

    templateCv = cv.fromarray(numpy.float32(template))

    imageCv = cv.fromarray(numpy.float32(image))

    resultCv = cv.fromarray(numpy.float32(resultNp))

    #perform cross correlation

    cv.MatchTemplate(templateCv, imageCv, resultCv, cv.CV_TM_CCORR_NORMED)

    #convert result back to numpy array

    resultNp = np.asarray(resultCv)

    对于仅1-D互相关,创建形状等于(N,1)的2-D阵列.虽然转换为openCV格式需要一些额外的代码,但scipy的加速速度令人印象深刻.

    仅供参考,如果您不想使用OpenCV,也可以使用scikit-image执行此操作.参见[本例](http://scikit-image.org/docs/0.9.x/auto_examples/plot_template.html). (2认同)

    展开全文
  • 互相关函数的频域计算

    万次阅读 多人点赞 2018-04-07 14:00:31
    互相关函数的频域计算 1.时域计算 x1(n)与x2(n)的互相关定义如下x1(n)与x2(n)的互相关定义如下x_1(n)与x_2(n)的互相关定义如下 R(τ)=E[x1(m)x2(m+τ)]R...

    互相关函数的频域计算

    1.时域计算

    x1(n)x2(n)x1(n)与x2(n)的互相关定义如下

    R(τ)=E[x1(m)x2(m+τ)]R(τ)=E[x1(m)x2(m+τ)]

    离散信号的互相关由下式计算,结果中的R(n)2N1R(n)长度为2∗N−1


    R(n)=m=N|n|1m=0x1(m)x2(m+n)R(n)=∑m=0m=N−|n|−1x1(m)x2(m+n)

    上代码

    x1 = [1,2,3,7,9,8];
    x2 = [4,5,6,5,4,3];
    N =length(x2);
    xc = xcorr(x1,x2,'biased');
    [k,ind] = max(xc);
    an = acos((ind-N)/Fs*340/d)*180/pi
    
    xc12 = zeros(2*N-1,1);
    m = 0;
    for i = -(N-1):N-1
        m = m+1;
        for t = 1:N
            if 0<(i+t)&&(i+t)<=N
                xc12(m) = xc12(m) + x2(t)*x1(t+i);
            end 
        end
    end
    xc12 = xc12/N;

    验证可以看到自己循环计算得到的结果与matlab的xcorr结果相同

    2.频域计算

    由维纳-辛钦定理可知,随机信号的自相关函数和功率谱密度函数服从一对傅里叶变换的关系


    P(ω)=+R(τ)ejωτdτP(ω)=∫−∞+∞R(τ)e−jωτdτ

    R(τ)=12π+P(ω)ejωτdωR(τ)=12π∫−∞+∞P(ω)ejωτdω

    P(ω)P(ω)x1x2x1、x2的互功率谱,这一步是把互相关函数变换到了频域,互相关函数的傅里叶变化就是互谱密度,写成下式


    P(ω)=++x1(t)x2(t+τ)dtejωτdτP(ω)=∫−∞+∞∫−∞+∞x1(t)x2(t+τ)dt*e−jωτdτ

    由交换积分性质和傅里叶变换的移位性质上式可简化成以下形式(参考时域卷积频域相乘推导)


    P(ω)=F1(ω)F2(ω)P(ω)=F1∗(ω)F2(ω)

    这也是互谱密度的频域计算方法,时域互相关可以由上式做傅里叶逆变换得到


    R(τ)=12π+F1(ω)F2(ω)ejωτdωR(τ)=12π∫−∞+∞F1∗(ω)F2(ω)ejωτdω

    matlab中xcorr函数计算相关就是在频域计算的,这里用几行代码验证下

    x1 = [1,2,3,7,9,8,3,7]';
    x2 = [4,5,6,5,4,3,8,2]';
    N = length(x1)+length(x2)-1;
    NFFT = 64;
    range = NFFT/2+1-(N-1)/2:NFFT/2+1+(N-1)/2;
    xcorr(x1,x2)
    ifft(fft(x1,NFFT).*conj(fft(x2,NFFT)));
    r = fftshift(ifft(fft(x1,NFFT).*conj(fft(x2,NFFT))));
    r = r(range)

    关于这个计算,几点需要注意:

    • 互相关函数不是对称的,xcorr(x1,x2) != xcorr(x2,x1),而卷积计算是相等的,因此频域计算要注意看谁取共轭,简单记住哪个信号做参考就哪个信号取共轭,matlab的xcorr是第二个信号做参考
    • 频域相乘恢复到时域时得到的是[0~+lag_max,-lag_max~0],而直接时域计算得到的就是[-lag_max~+lag_max],因此想要与xcorr对应需要将逆变换后的数据后半部分移到前面来(fftshift),matlab 的xcorr函数内部也可以看到这个操作, % Keep only the lags we want and move negative lags before positive
      % lags.
      c = [c1(m2 - mxl + (1:mxl)); c1(1:mxl+1)];
    • fft长度必须大于等于2N-1以避免混叠,长度大于2N12N−1时,取后2N12N−1个值,而频域计算卷积是取前部分的值,参考这里,这里取后部分是指分别取[0:+lag_max]和[-lag_max:0]的后部分,而在处理过程中使用fftshift调换了先后顺序,那么实际就相当于就取中间部分,如上面代码中的range
    展开全文
  • [原创]自相关函数和互相关函数计算和作图整理及一点心得 -... /thread-36108-1-1.htmlbenjaminchitic | 设置 | 切换马甲 | 提醒 | 短消息 | 好友 邀请 | 任务 | 退出积分: 0 , 体能: 11 ...

    [原创]自相关函数和互相关函数计算和作图的整理及一点心得 -... /thread-36108-1-1.html

    benjaminchitic | 设置 | 切换马甲 | 提醒 | 短消息 | 好友 邀请 | 任务 | 退出

    积分: 0 , 体能: 11 点 , 威望: 0 点 , 储备体能: 0 点 , 推广积分: 0 点 , 管理积分: 0 点 , 用户组: 预科生

    首页 论坛 群组 家园 百科 设施 休闲 游戏 排行榜 我的中心

    中国振动联盟进站必读 服务使用协议 近期热点及本站重点推荐版块 新的开始、新的征程—本站诚聘各版版主

    行为准则 | 免责声明 | 禁止行为 振动实验与测试技术 | 故障诊断及健康监测 加入管理队伍,更好地建设振动家园

    等级与权限 | 积分获取 | 意见建议 管理漫谈 | 振动产品展示 | 专业技术区 版主管理及考核 | 版主推荐 | 版主申请

    论坛 Matlab讨论区 [原创] 自相关函数和互相关函数计算和作图的整理及一点心 ... 搜索本版 请输入搜索内容

    关键词搜索: 搜索

    返回列表 1 2 3 4 下一页

    查看: 6215 | 回复: 59 [综合讨论] [原创]自相关函数和互相关函数计算和作图的整理及一点心得 [复制链接]

    eight 发表于 2007-1-5 16:54 | 只看该作者 | 倒序浏览 | 打印 | 阅读权限 10 楼主

    大家好像对这个问题提问得比较多,所以花了一点时间整理如下。

    1. 首先说说自相关和互相关的概念。

    [转版友

    gghhjj]

    这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程

    度,即互相关函数

    展开全文
  • 《自相关函数和互相关函数的利用MATLAB计算和作图》由会员分享,可在线阅读,更多相关《自相关函数和互相关函数的利用MATLAB计算和作图(5页珍藏版)》请在人人文库网上搜索。1、互相关函数,自相关函数计算和作图1.自...

    《自相关函数和互相关函数的利用MATLAB计算和作图》由会员分享,可在线阅读,更多相关《自相关函数和互相关函数的利用MATLAB计算和作图(5页珍藏版)》请在人人文库网上搜索。

    1、互相关函数,自相关函数计算和作图1.自相关和互相关的概念。l 互相关函数是描述随机信号x(t),y(t)在任意两个不同时刻t1,t2间的相关程度。l 自相关函数是描述随机信号x(t)在任意两个不同时刻t1,t2间的相关程度。互相关函数是在频域内两个信号是否相关的一个判断指标,把两测点之间信号的互谱与各自的自谱联系了起来。它能用来确定输出信号有多大程度来自输入信号,对修正测量中接入噪声源而产生的误差非常有效。-事实上,在图象处理中,自相关和互相关函数的定义如下:设原函数是f(t),则自相关函数定义为R(u)=f(t)*f(-t),其中*表示卷积;设两个函数分别是f(t)和g(t),则互相关函数定。

    2、义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。2.利用matlab中实现这两个相关并用图像显示:自相关函数:dt=.1;t=0:dt:100;x=cos(t);a,b=xcorr(x,unbiased);plot(b*dt,a)互相关函数: 把a,b=xcorr(x,unbiased);改为a,b=xcorr(x,y,unbiased);便可。3. 实现过程:在Matalb中,求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的,即R(u)=ifft(fft(f)fft(g),其中表示乘法,注:此公式仅表示形式计算,并非实际计算所用的公。

    3、式。当然也可以直接采用卷积进行计算,但是结果会与xcorr的不同。事实上,两者既然有定理保证,那么结果一定是相同的,只是没有用对公式而已。下面是检验两者结果相同的代码:dt=.1;t=0:dt:100;x=3*sin(t);y=cos(3*t);subplot(3,1,1);plot(t,x);subplot(3,1,2);plot(t,y);a,b=xcorr(x,y);subplot(3,1,3);plot(b*dt,a);yy=cos(3*fliplr(t); % or use: yy=fliplr(y);z=conv(x,yy);pause;subplot(3,1,3);plot(b*。

    4、dt,z,r);即在xcorr中不使用scaling。4. 其他相关问题:1) 相关程度与相关函数的取值有什么联系?相关系数只是一个比率,不是等单位量度,无什么单位名称,也不是相关的百分数,一般取小数点后两位来表示。相关系数的正负号只表示相关的方向,绝对值表示相关的程度。因为不是等单位的度量,因而不能说相关系数0.7是0.35两倍,只能说相关系数为0.7的二列变量相关程度比相关系数为0.35的二列变量相关程度更为密切和更高。也不能说相关系数从0.70到0.80与相关系数从0.30到0.40增加的程度一样大。对于相关系数的大小所表示的意义目前在统计学界尚不一致,但通常按下是这样认为的:相关系数 。

    5、相关程度 0.00-0.30 微相关 0.30-0.50实相关 0.50-0.80显著相关 0.80-1.00高度相关-3) 与matlab中相关函数xcorr()与相关度函数corrcoef()的关系:相关度函数:对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2),其中C表示矩阵f,g的协方差矩阵,假设f和g都是列向量(这两个序列的长度必须一样才能参与运算),则得到的(我们感兴趣的部分)是一个数。以默认的A=corrcoef(。

    6、f,g)为例,输出A是一个二维矩阵(对角元恒为1),我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在-1,1之间,1表示最大的正相关,-1表示绝对值最大的负相关l 相关函数xcorr函数是通过不反折的卷积来衡量这两个信号在不同位置的相似程度假设两个序列的长度分别是m和n,则得到的是一个长度为2*max(m,n)-1的序列,也就是说,当m和n不相等的时候,在执行xcorr的时候会先对短的那个序列进行0扩充,使得m与n相等;l 相关度corrcoef函数是通过协方差矩阵来衡量这两个信号在不同局部的相似程度,计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2),其中。

    7、C表示矩阵f,g的协方差矩阵,假设f和g都是列向量(这两个序列的长度必须一样才能参与运算),则得到的(我们感兴趣的部分)是一个数。以默认的A=corrcoef(f,g)为例,输出A是一个二维矩阵(对角元恒为1),我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在-1,1之间,1表示最大的正相关(例如x=1;2;3, y=5;7;9),-1表示绝对值最大的负相关(例如x=1;2;3, y=12;7;2)。对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。4)互相关函数图。

    8、像的横坐标问题以下例子,主要求两个信号的相位差,按照某篇参考资料的说法,t_max对应的值就应该是它们的相位差,但是这个程序中做出的互相关函数的横坐标不是-40到+40,而是0到1200,请问这个横坐标表示的是什么意思呢?n=99;%设定每周期数据采集点数T=6;%采样周期数t=0:2*pi/(n-1):2*T*pi;%采样数y1=4*sin(t);%信号1y2=8*sin(t+pi/6);%信号2,相位差取pi/6Cc=xcorr(y1,y2);%求互相关函数y_max,t_max=max(Cc)%找出Cc的最大值及对应的t_maxsubplot(311); plot(t,y1); grid;subplot(312); plot(t,y2); grid;subplot(313); plot(Cc); grid。

    展开全文
  • 使用fft计算序列的互相关函数

    千次阅读 2020-06-11 18:15:03
    2. 关于自相关函数和互相关函数的Matlab计算。 3. 关于小m序列和Gold序列的一些基本概念 一、学工的如果不知道如何使用DFT来求线性卷积和这种思想的重要性,他就白学了(小波老师原话) 要求:t[n]=f(n)*g(n),...
  • 这个是信号分析里概念,他们分别表示是两个时间序列之间和同一个时间序列在任意两个不同时刻取值之间相关程度,即互相关函数是描述随机信号x(t),y(t)在任意两个不同时刻t1,t2取值之间相关程度,自相关...
  • MATLAB计算自相关函数和互相关函数

    万次阅读 2014-10-22 15:51:28
    转自要求:t[n]=f(n)*g(n),把g(n)翻转,向右移动n格与f(n)乘积和。 假设f(n)长度为L,g(n)长度为P,则卷积后有效点数为L+P-1,其余为全零。 由傅里叶变换定理:时域卷积等效于频域乘积,即 T(e^jw)=F(e^jw)G(e^...
  • 2. 关于自相关函数和互相关函数的Matlab计算。3. 关于小m序列和Gold序列的一些基本概念一、学工的如果不知道如何使用DFT来求线性卷积和这种思想的重要性,他就白学了(小波老师原话)要求:t[n]=f(n)*g(n),把g(n)翻转...
  • 自相关、互相关函数学习笔记

    千次阅读 2019-07-17 15:56:50
    为什么相关性有效 参考文献 【1】自相关物理意义 【2】自相关和互相关函数计算方法总结及心得体会
  • 零均值归一化互相关函数是用于对参考子区和目标子区进行相关性测量,当值为1时,相关性最好,下面是零均值归一化互相关函数的公式: 话不多说,上代码,下面是MATLAB代码实现:该脚本操作很简单,将代码复制到...
  • 最近再做一个小作业,是关于寻找太平洋Nino3.4区和热带印度洋(TI)海温(SST)最大超前滞后关系,不可避免需要求解互相关函数。其中numpy,scipy,statsmodels均有求解互相关函数,最后选择numpy.correlate。但是我...
  • MATLAB学习笔记——自相关/互相关函数xcorr使用介绍 原文链接:https://blog.csdn.net/lvsehaiyang1993/article/details/82913443 转载请附上原文出处链接 侵删 Matlab提供了计算互相关和自相关函数xcorr函数 ...
  • 通信原理MATLAB相关函数的用途及部分实现MATLAB自相关函数介绍MATLAB功能代码实现总结 MATLAB自相关函数介绍 Matlab提供了计算互相关和自相关的函数xcorr函数 1.使用方法 c = xcorr(x,y) c = xcorr(x) c = xcorr(x,y...
  • 基于耦合DFB激光器网络,计算了时序互相关。可用于混沌动力学、网络同步特性,用于密钥分发、随机数、电力分配等问题研究
  • 假设两个平稳信号 $\bold{x}$ 和 $\bold{y}$ ,如果 $x\left(t+\tao\right)= y\left...首先,通过实现 xcorr 函数介绍互相关计算流程:clcclearclose% 实现 xcorr 函数% 基本设置T = 1; % [s] 总时间长度fs = 5000; ...
  • 最近再做一个小作业,是关于寻找太平洋Nino3.4区和热带印度洋(TI)海温(SST)最大超前滞后关系,不可避免需要求解互相关函数。其中numpy,scipy,statsmodels均有求解互相关函数,最后选择numpy.correlate。但是我...
  • 本程序首先产生了一个信号,然后对其进行延时,之后计算他们之间的互相关函数,找出其中最大点,它下标减去信号长度,即为时延。
  • 零均值归一化互相关函数相对于别一些相关函数,精度虽然没有多大提升,但是它具有较强抗干扰性和鲁棒性。所以,在数字图像相关法(DIC)图像匹配过程中,一般都是使用零均值归一化互相关函数,下面是其公式: ...
  • 参考文章:百度文库文章 但是该文章有很多部分,不知是matlab更新了还是咋地,有错误,踩了很多坑,仅做参考。 产生高斯白噪声方法在“信号处理”专栏中...相当于算出来r除以了样本数,这是离散自相关函数计算步骤
  • 根据式E=∫−∞∞s2(t)dtE=\int_{-\infty }^{\infty }{{{s}^{2}}\left( t \right)}dtE=∫−∞∞​s2(t)dt计算信号能量(作用在单位电阻上电压信号 释放能量)可以将信号分为: 功率信号:能量无限,不能用能量...
  • 这个函数是用于计算两个函数的相关性的,然后输出到长度为4的数组里。 定义如下 void xcorr_kernel_c(const opus_val16 * x, const opus_val16 * y, opus_val32 sum[4], int len) 入参x和y是两个用于计算的函数x...
  • 无论是卷积还是互相关函数,matlab给我们提供自然都是离散信号形式。 1. 卷积函数 conv(x,y) matlab用conv(x,y)函数来表示信号x与y卷积,其中x和y是用来表示两个信号向量。函数返回值也
  • 它包括针对图像中任意像素合并和感兴趣区域的所有自相关或互相关函数的计算,为基于全内反射荧光(TIRF)和基于单平面照明显微镜(SPIM)的FCS测量提供拟合函数,可以计算FCS扩散定律,并包含一个基本的模拟器,可...
  • 包含两个信号之间运算,自相关与互相关运算
  • 杨韬 余文辉 曹申2020-09-30 Wednesday针对2020年第十五届全国大学生智能车竞赛信标组关于声音信标的识别,需要采集声音信号和FM信号,通过声音信号和FM信号互相关进行距离检测和通过两组声音信号互相关进行信标方位...
  • 首先对预先采集的人体行为数据进行预处理,然后从时域和频域提取特征后计算得到自相关函数特征,同时采取互相关函数的步进式方法在自相关函数上进行降噪操作。分别使用C45决策树、K最近邻、支持向量机、朴素贝叶斯...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 254
精华内容 101
关键字:

互相关函数的计算