-
2021-04-22 00:43:02
1. 首先说说自相关和互相关的概念。
这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度,自相关函数是描述随机信号x(t)在任意两个不同时刻t1,t2的取值之间的相关程度。
自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度;互相关函数给出了在频域内两个信号是否相关的一个
判断指标,把两测点之间信号的互谱与各自的自谱联系了起来。它能用来确定输出信号有多大程度来自输入信号,对修正测量中接入噪声源而产生
的误差非常有效.
事实上,在图象处理中,自相关和互相关函数的定义如下:设原函数是f(t),则自相关函数定义为R(u)=f(t)*f(-t),其中*表示卷积;设
两个函数分别是f(t)和g(t),则互相关函数定义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。
那么,如何在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');便可。
2. 实现过程:
在Matalb中,求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的,即R(u)=ifft(fft(f)×fft(g)),其中×表示乘法,注:此
公式仅表示形式计算,并非实际计算所用的公式。当然也可以直接采用卷积进行计算,但是结果会与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*dt,z,'r');
即在xcorr中不使用scaling。
3. 其他相关问题:
1) 相关程度与相关函数的取值有什么联系?
相关系数只是一个比率,不是等单位量度,无什么单位名称,也不是相关的百分数,一般取小数点后两位来表示。相关系数的正负号只表
示相关的方向,绝对值表示相关的程度。因为不是等单位的度量,因而不能说相关系数0.7是0.35两倍,只能说相关系数为0.7的二列变量相关程度
比相关系数为0.35的二列变量相关程度更为密切和更高。也不能说相关系数从0.70到0.80与相关系数从0.30到0.40增加的程度一样大。
对于相关系数的大小所表示的意义目前在统计学界尚不一致,但通常按下是这样认为的:
相关系数 相关程度
0.00-±0.30 微相关
±0.30-±0.50 实相关
±0.50-±0.80 显著相关
±0.80-±1.00 高度相关
更多相关内容 -
随机信号的自相关函数和互相关函数Matlab_互相关自相关_互相关_matlab_互相关函数_自相关
2021-09-10 17:39:26自相关函数及互相关函数编程 -
通信原理MATLAB自/互相关函数的用途及部分实现
2020-09-30 00:03:14通信原理MATLAB相关函数的用途及部分实现MATLAB自相关函数介绍MATLAB功能代码实现总结 MATLAB自相关函数介绍 Matlab提供了计算互相关和自相关的函数xcorr函数 1.使用方法 c = xcorr(x,y) c = xcorr(x) c = xcorr(x,y...通信原理MATLAB相关函数的用途及部分实现
MATLAB自相关函数介绍
Matlab提供了计算互相关和自相关的函数xcorr函数
1.使用方法c = xcorr(x,y)
c = xcorr(x)
c = xcorr(x,y,‘option’)
c = xcorr(x,‘option’)
c = xcorr(x,y,maxlags)
c = xcorr(x,maxlags)
c =
xcorr(x,y,maxlags,‘option’)
c =
xcorr(x,maxlags,‘option’)
[c,lags] = xcorr(…)
其中option为:
"biased"为有偏的互相关函数估计;
"unbiased"为无偏的互相关函数估计;
"coeff"为0延时的正规化序列的自相关计算;
"none"为原始的互相关计算
2.特别的:
c=
xcorr(x,‘option’)特指以上某个选项的自相关估计。
c = xcorr(x,y,maxlags)
返回一个延迟范围在[-maxlags,maxlags]的互相关函数序列,输出c的程度为2maxlags+1.
c = xcorr(x,maxlags)
返回一个延迟范围在[-maxlags,maxlags]的自相关函数序列,输出c的程度为2maxlags+1.
c = xcorr(x,y,maxlags,‘option’)
同时指定maxlags和option的互相关计算.
c = xcorr(x,maxlags,‘option’)
同时指定maxlags和option的自相关计算.
此部分转自
https://blog.csdn.net/lvsehaiyang1993/article/details/82913443?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.add_param_isCfMATLAB功能代码实现
t=0:0.1:100;
noise=rand(1,1001);
input=sin(pit);
output=sin(pit)+oise;%添加大噪声
plot(output);
可以看到噪声信号已经淹没了输入信号
[x y]=xcorr(input,output,‘coeff’);%计算互相关性,存至数组
plot(y,x);%绘制互相关运算结果
这里得到了输出信号和输入信号的自相关函数,方便起见,假设此系统输入输出相等
[X Y]=xcorr(input,input,‘coeff’);%计算输入信号自相关函数
plot(Y,X);%绘制自相关运算结果
可以看到这个是标准的自相关函数求解结果
[a b]=xcorr(input,noise,‘coeff’);%计算输入与噪声互相关的结果
plot(b,a);%绘制互相关运算结果
可以看到经过一个互相关器运算,得到的增益是很小的,系统可以判断出两个信号相关性很差试着继续加大噪声增益
output=sin(pit)+4noise;%添加大噪声
plot(output);
[x y]=xcorr(input,output,‘coeff’);%计算互相关性,存至数组
plot(y,x);%绘制互相关运算结果
可以看见随着噪声比例的增加,输出经过互相关器之后的运算结果有了明显的衰减总结
通过相关运算可以很好的甄别有用信号,或者是延时信号,如果发现互相关结果出现明显衰减(本例均采用归一化手段了),就要注意对有用信号提供一定增益了,因为噪声以白噪声居多,频率含量丰富,有用信号也许就难以通过相关或者FFT手段提取了。
作者功力有限,字句、原理描述难免出现纰漏,若各位看官发现还请予以指正!
-
随机信号的自相关函数和互相关函数Matlab
2012-02-13 10:55:40随机信号的自相关函数和互相关函数Matlab -
【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
2022-03-03 08:20:00一、相关函数应用场景、 1、生成高斯白噪声、 2、信噪比 SNR、 3、根据信噪比 SNR 求信号幅度、 4、产生单载波信号及最终信号、 5、求自相关函数及功率、 6、matlab 完整代码、
一、相关函数应用场景
求下面信号的 " 自相关函数 " :
x ( n ) = sin ( 2 π f n ) + N ( n ) x(n) = \sin(2\pi fn) + N(n) x(n)=sin(2πfn)+N(n)
其中 N ( n ) N(n) N(n) 为 高斯白噪声 ;
高斯白噪声 符合 正态分布 特性 , 其 均值为 0 0 0 , 方差为 1 1 1 , 其功率谱密度是白的 , 在所有的频率上 , 其功率都相同 ;
在上一篇博客 【数字信号处理】相关函数应用 ( 相关函数应用场景 | 噪声中检测信号原理 ) 中 , 使用了公式推导的方法求相关函数 , 本篇博客使用 matlab 求相关函数 ;
下面开始使用 matlab 计算 x ( n ) = sin ( 2 π f n ) + N ( n ) x(n) = \sin(2\pi fn) + N(n) x(n)=sin(2πfn)+N(n) 的相关函数 ;
1、生成高斯白噪声
生成 高斯白噪声 序列 , 均值 0 , 方差 1 ;
randn(1,200);
上述代码 生成的 高斯白噪声 序列 是一个 有 200 个元素的行向量 ,
如果是
randn(2, 200)
代码 , 则生成的是一个 2 × 200 2 \times 200 2×200 的矩阵 ;
2、信噪比 SNR
SNR 是信噪比 , P s P_s Ps 是信号功率 , P N P_N PN 是噪声功率 , 其关系是 :
S N R = 10 log 10 P s P N SNR = 10 \log_{10}\cfrac{P_s}{P_N} SNR=10log10PNPs
在 matlab 中 , 设置信噪比为 7 7 7 ;
% 设置 信噪比 SNR = 7;
3、根据信噪比 SNR 求信号幅度
信号 A sin ω n A \sin \omega n Asinωn , 其功率是 P s = A 2 2 P_s = \cfrac{A^2}{2} Ps=2A2 , 噪声功率 是 P N = 1 P_N=1 PN=1 , 将其带入到信噪比公式中 :
S N R = 10 log 10 P s P N = 10 log 10 A 2 2 1 = 10 log 10 A 2 2 SNR = 10 \log_{10}\cfrac{P_s}{P_N} = 10 \log_{10}\cfrac{\cfrac{A^2}{2}}{1} = 10 \log_{10}\cfrac{A^2}{2} SNR=10log10PNPs=10log1012A2=10log102A2
根据信噪比 计算 幅度 A A A :
S N R 10 = l o g 10 A 2 2 \cfrac{SNR}{10} = log_{10}\cfrac{A^2}{2} 10SNR=log102A2
A 2 2 = 1 0 S N R 10 \cfrac{A^2}{2} = 10^{\cfrac{SNR}{10}} 2A2=1010SNR
A 2 = 2 × 1 0 S N R 10 A^2 = 2 \times 10^{\cfrac{SNR}{10}} A2=2×1010SNR
A = 2 × 1 0 S N R 10 A = \sqrt{2 \times 10^{\cfrac{SNR}{10}}} A=2×1010SNR
写成 matlab 代码为 :
% 根据 信噪比 计算信号幅度 SignalAmplitude = sqrt( 2 * 10^(SNR/10) );
4、产生单载波信号及最终信号
根据 A sin ω n A \sin \omega n Asinωn 公式 , 产生 200 个信号 , 其中 A A A 之前已经求出 ;
% 根据 Asinωn 产生 200 个信号 x1 = A * sin( pi * 0.165 * (0:199) );
然后将 信号 与 高斯白噪声叠加 :
% 信号 + 高斯白噪声 x = x1 + xn;
5、求自相关函数及功率
求自相关函数 , 使用 xcorr 函数 ;
% 求 x 的 自相关函数 , 长度为2N-1 y = xcorr(x, x);
求信号功率 :
% 功率 : 自相关函数 幅度 求平均 % 自相关函数 就是 200 个功率之和 y = y / 200;
6、matlab 完整代码
matlab 完整代码 :
% 清除之前的变量或内存 clear; % 生成 高斯白噪声 序列 , 均值 0 , 方差 1 % 生成的 高斯白噪声 序列 是一个 有 200 个元素的行向量 xn = randn(1,200); % 设置 信噪比 SNR = 7; % 根据 信噪比 计算信号幅度 A = sqrt( 2 * 10^(SNR/10) ); % 根据 Asinωn 产生 200 个信号 x1 = A * sin( pi * 0.165 * (0:199) ); % 信号 + 高斯白噪声 x = x1 + xn; % 求 x 的 自相关函数 , 长度为2N-1 y = xcorr(x, x); % 功率 : 自相关函数 幅度 求平均 % 自相关函数 就是 200 个功率之和 y = y / 200; %建立幕布 figure; %绘制 "输出序列" 图像 , 点用上三角表示 plot(y); % 打开网格 grid on;
执行结果 :
-
Matlab怎么用互相关函数,在时间轴上进行时延估计?
2021-04-19 05:52:05v 各位大神怎样修改才可以互相关算法求出a3数据中的延迟时间呀 谢谢 2017-9-11 08:32 上传 2017-9-13 18:24 上传 过零点程序所得 2017-9-13 18:27 上传 互相关程序所得 2017-9-11 08:34 上传 点击文件名下载附件 ...本帖最后由 听樱花飘落 于 2017-9-13 18:27 编辑
最近在做一个数值试验,要根据两个波估计他们时延时间?以前没有做过搞得也不是很清楚,各位大侠多多帮忙,先谢谢啦!
最近在做一个数值试验,要根据两个波估计他们时延时间?以前没有做过搞得也不是很清楚,各位大侠多多帮忙,先谢谢啦!
clear all
load E:\data8\a3.txt
a=a3;
t=a(:,1);
y1=a(:,2);
y2=a(:,3);
figure(1)
subplot(2,1,1);
plot(y1);
subplot(2,1,2);
plot(y2);
y3=wden(y1,'minimaxi','s','mln',5,'sym5')*100;
y4=wden(y2,'minimaxi','s','mln',5,'sym5')*100;
figure(2)
subplot(2,1,1);
plot(y3);
subplot(2,1,2);
plot(y4);
m=mean(y3(1:200));
n=mean(y4(1:200));
y5=y3-m;
y6=y4-n;
figure(3)
subplot(2,1,1);
plot(y5);
subplot(2,1,2);
plot(y6);
n=length(y5);
s=(1:n);
t=(1:.05:n);
z1=spline(s,y5,t);
z2=spline(s,y6,t);
Z1=abs(z1);
Z2=abs(z2);
%设定峰值的最小高度、波峰最小间距,寻找波峰;
MinPeak1=max(Z1)/50;
[Pesk1,p1]=findpeaks(Z1,'MinPeakHeight',MinPeak1,'nPeaks',2,'minpeakdistance',500);
MinPeak2=max(Z2)/50;
[Peak2,p2]=findpeaks(Z2,'MinPeakHeight',MinPeak2,'nPeaks',2,'minpeakdistance',500);
%在两最小峰值间寻找过零点;
[min1,r]=min(Z1(p1(1):p1(2)));
[min2,s]=min(Z2(p2(1):p2(2)));
h=p1(1)+r;
l=p2(1)+s;
figure(4)
subplot(2,1,1);
plot(z1)
hold all
plot(h,0,'.r');
subplot(2,1,2);
plot(z2)
hold all
plot(l,0,'.r');
dt=(l-h)*((t(2)-t(1))/20);
t(2)-t(1)
v=0.091/dt;
v
各位大神怎样修改才可以互相关算法求出a3数据中的延迟时间呀 谢谢
2017-9-11 08:32 上传
2017-9-13 18:24 上传
过零点程序所得
2017-9-13 18:27 上传
互相关程序所得
2017-9-11 08:34 上传
点击文件名下载附件
348.12 KB, 下载次数: 23
数据
2017-9-12 19:41 上传
点击文件名下载附件
287.88 KB, 下载次数: 20
下午测的简单数据
-
时域互相关函数:xcorrTD将两个离散时间信号作为输入,并计算互相关和延迟-matlab开发
2021-06-01 01:42:52xcorrTD 的结果已针对 MatLAB 的 xcorr 函数进行了验证。 有关频域中的互相关,请参阅 xcorrFD。 语法:[lags,ck,cc,td] = xcorrTD(x,y) 输入: x = 输入信号 1(必须是 Nx1 或 1xN 向量) y = 输入信号 2(必须是 ... -
matlab时延估计算法的互相关函数
2013-04-11 16:30:58基于matlab的时延估计算法的互相关函数仿真源代码 -
自相关函数和互相关函数的利用MATLAB计算和作图
2021-05-07 06:01:35《自相关函数和互相关函数的利用MATLAB计算和作图》由会员分享,可在线阅读,更多相关《自相关函数和互相关函数的利用MATLAB计算和作图(5页珍藏版)》请在人人文库网上搜索。1、互相关函数,自相关函数计算和作图1.自... -
matlab自相关代码-SignalProcessing:一组用于信号处理和频率分析的MATLAB示例
2021-05-23 15:02:30:包括自动和互相关函数的估计,自相关函数的应用和Levinson算法 Frequency_Estimation.mlx :包括周期图,用于估计嘈杂信号中的频率。 还给出了用于高分辨率频率估计的MUSIC算法的实现。 每个文件可以独立运行。 -
Gold 序列的自相关和互相关函数:绘制 Gold 序列的 ACF 和 CCF-matlab开发
2021-06-01 16:50:42此 m 文件查找并绘制生成的长度为 31 的 Gold 代码的自相关和互相关函数(ACF 和 CCF)。互相关是三个值。 -
基于零均值归一化互相关函数的MATLAB代码实现
2019-03-15 15:18:33零均值归一化互相关函数是用于对参考子区和目标子区进行相关性测量,当值为1时,相关性最好,下面是零均值归一化互相关函数的公式: 话不多说,上代码,下面是MATLAB代码实现:该脚本操作很简单,将代码复制到... -
m序列的自相关以及互相关函数仿真结果
2021-06-08 20:06:54能够产生良好的m序列的自相关以及互相关结果图,适合初学者 -
快速零均值归一化互相关函数算法及MATLAB代码实现
2019-03-21 17:08:27零均值归一化互相关函数相对于别的一些相关函数,精度虽然没有多大提升,但是它具有较强的抗干扰性和鲁棒性。所以,在数字图像相关法(DIC)的图像匹配过程中,一般都是使用零均值归一化互相关函数,下面是其公式: ... -
关于matlab的相关性函数
2021-06-29 20:24:201、xcorr——互相关函数 r = xcorr(x,y) r = xcorr(x) [r,lags] = xcorr(___)%r是输出数据,lags是移位量(滑动偏移值) 可以通过该函数对两个有时延的信号进行对齐处理, 其原理在于将被选指标相对于基准指标... -
基于互相关的亚像素图像配准算法的matlab仿真+含代码操作演示视频
2022-05-18 03:28:04基于互相关的亚像素图像配准算法的matlab仿真+含代码操作演示视频 运行注意事项:使用matlab2021a或者更高版本测试,运行里面的Runme.m文件,不要直接运行子函数文件。运行时注意matlab左侧的当前文件夹窗口必须是... -
Matlab_xcorr_互相关函数的讨论
2021-04-21 02:30:34假设两个平稳信号 $\textbf{x}$ 和 $\textbf{y}$ ,如果 $x\left(t+\tau\right)= y\left(t\right)$ ,则可通过互相关求 $\...XCORR 实现首先,通过实现 xcorr 函数介绍互相关计算流程:clcclearclose% 实现 xcorr 函... -
互相关程序_crosscorrelation_互相关_互相关运算_傅里叶_
2021-10-04 06:17:53互相关运算函数,输出为输入信号之间的互相关函数,傅里叶频域分析 -
Matlab工具箱,用于通过互相关环境地震噪声和测量时移来估计格林函数_MATLAB_代码_相关文件_下载
2022-07-12 19:53:33该工具箱包含两个主要功能,一个用于...大多数函数是用 MATLAB 编写的,但也有一些是用 SAC 和 Linux shell 编写的。数据样本与代码一起分发,以演示代码的工作原理。 更多详情、使用方法,请下载后阅读README.md文件 -
matlab自相关代码-3D_ATAC_PALM:用于3D-ATAC-PALM聚类分析的matlab代码
2021-05-23 14:57:19matlab自相关代码3D_ATAC_PALM 用于3D-ATAC-PALM聚类分析的matlab代码 ...两通道ATAC定位信号(PA-JF549)和BRD4(PA-JF646)的互相关函数c(r)计算 用于3D集群标识和参数计算(半径,数字等)的DBScan程序 -
matlab自相关函数autocorr_随机过程的自相关函数与功率谱(转载)
2020-11-23 18:04:08随机过程的自相关函数与功率谱1. 自相关函数 要说自相关函数,这里得先从统计里的相关函数定义讲起。在统计里,两个随机变量X,Y的相关函数定义如下: 也就是两个随机变量协方差除以标准差之积。如果X是一个时间的... -
matlab自相关函数
2021-04-22 08:50:22自相关函数和互相关函数的利用MATLAB计算和作图_电子/电路_工程科技_专业资料。互相关函数,自相关函数计算和作图 1.自相关和互相关的概念。 ? ? 互相关函数是......不同时刻的取值之间的相关程度, 即互相关函数是... -
广义互相关用于计算两段信号相位差
2021-05-11 16:49:07该代码为matlab代码,主要是利用广义互相关的方法计算两段信号的相位差 -
matlab仿真两阵元信号时延估计-基本互相关和广义互相关
2021-12-30 17:01:05采用matlab编写代码,进行线阵中两个阵元间时延差估计,分别进行了基本互相关和广义互相关的估计,代码详细讲解见我个人主页博文。 -
自相关函数与互相关函数
2021-01-16 23:49:311 概念 相关函数是描述信号X(s),Y(t)(这两个信号可以是随机的,也可以是确定的)在任意两个不同时刻s、t... 相关函数分为自相关和互相关。 自相关函数是描述随机信号 x(t) 在任意不同时刻 t1,t2 的取值之间的相... -
matlab求系统函数特征根代码-SR_toolkit:超分辨率成像分析
2021-06-04 11:58:40matlab求系统函数特征根代码SR_工具包 用于超分辨率荧光图像分析的集成 ImageJ 和 Python 工作流程。 添加一名作者 版本:3.6 发行日期:2021 年 6 月 2 日 概括 该工作流软件用于定位拟合/基准漂移校正/渲染超... -
Matlab高斯白噪声通过互相关函数求功率谱密度
2020-12-02 15:30:21用matlab中求自(互)相关的xcorr函数,参考帮助文档 [r,lags]=xcorr(z,'biased'); 其中z是上述高斯白噪声,r是自相关函数,lags是时间偏移量(索引),尤其注意’biased’参数,这是调试了半天才发现的问题。 帮助... -
matlab单位脉冲响应代码-Digital-Signal-Processing-Codes:这是一个存储库,我在其中添加了用Matlab编写
2021-06-17 08:13:44两个信号的互相关序列并交叉检查您的结果 问题 4 信号的自相关序列并交叉检查您的结果 问题 5 信号的离散傅立叶变换 (DFT) 并交叉检查您的结果 问题 6 信号的逆 DFT (IDFT) 并交叉检查您的结果 问题 7 对输入序列... -
matlab自相关代码-SpiSeMe:一个软件包,提供用于替代事件(又称尖峰)序列生成的C++,Matlab和Python函数,...
2021-05-23 15:09:41另外,该软件包还提供用于评估事件序列的自相关的功能,用于评估事件序列之间的互相关的功能以及用于测试两个事件序列的事件间间隔分布的兼容性的功能。 有关算法的摘要,请参见用户手册( /docs/