matlab求自相关函数和偏相关函数

2020-11-22 17:43:34 字数 5570 阅读 3580

1楼:匿名用户

自相关函数用xcorr或autocorr 偏相关不太清楚autocorr用法:autocorr(y,,2)

autocorr()函数是时间序列自相关函数y : 一个时间序列数据

: 表示计算这个时间序列数据的自相关函数的延迟.

2: 表示自相关函数在》2的所有延迟的自相关系数看作为0xcorr用法:y=[a b c]xcorr=[ac ab+bc a^2+b^2+c^2 ab+bc ac]y=[1 2 3] 这里a=1 b=2 c=3xcorr(y)=[3 8 14 8 3]

2楼:匿名用户

可以直接使用函数:

自相关函数:autocorr()

偏自相关函数:parcorr()

请高手指点自相关函数和偏自相关函数的区别

3楼:馨茹絮

自相关函数和互相关函数的matlab计算和作图

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

这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号x(t),y(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怎么画时间序列的自相关函数和偏自相关函数图

4楼:匿名用户

matlab怎么画时间序列的自相关函数和偏自相关函数图可以直接使用函数:

自相关函数:autocorr()

偏自相关函数:parcorr()

5楼:隽夫楼寄容

求自相关函数并作图

dt=.1;

t=[0:dt:100];

x=cos(t);

[a,b]=xcorr(x,'unbiased');

plot(b*dt,a)

详情查看xcorr的matlab帮助~~~

matlab中求自相关函数xcorr和autocorr的区别

6楼:匿名用户

matlab中有两个现成的函数可以求自相关:方法1是利用互相关函数xcorr;方法2是自相关函数autocorr。

但是对于向量x,只是进行xcorr(x)和autocorr(x),求的的结果却差别很大。除了xcorr求得的序列是一个中心对称的偶函数序列外,数值的大小也不对应。

看了help,然后自己实验了一下,终于找到了原因。首先,autocorr是对序列减去均值后做的自相关,最后又进行了归一化。而且由于自相关本身是偶函数,而xcorr本身是计算互相关的,所以xcorr最终的结果是2*n-1,而autocorr只是取了以中心点n为起始的后面n个序列。

因此,如果以向量x为例,x长为n。则用autocorr(x,n-1)能得到的n长度结果。用xcorr需要有以下几步:

e = mean(x);

x2 =x-e;

c =xcorr(x2);

d =c./c(n);

f =d(n:2*n-1);

可见,求自相关还是用autocorr更方便一些。另外,这里为了方便,只是采用了默认的调用方式,两个函数的具体参数变化还是要看help详细说明

matlab如何实现自相关函数

7楼:匿名用户

自相关函数是描述随机信号x(t)在任意两个不同时刻t1,t2的取值之间的相关程度.设原函数是f(t),则自相关函数定义为r(u)=f(t)*f(-t),其中*表示卷积.

给个例子:

dt=.1;

t=[0:dt:100];

x=cos(t);

[a,b]=xcorr(x,'unbiased');

plot(b*dt,a)

上面**是求自相关函数并作图,

matlab中查看帮助时,

help xcorr 解释其意思是:

c(m) = e[a(n+m)*conj(b(n))] = e[a(n)*conj(b(n-m))];

但是,在调用xcorr函数求自相关时,有 scaleopt参数

r=xcorr(s,scaleopt)

scaleopt有

'biased' - scales the raw cross-correlation by 1/m.

'unbiased' - scales the raw correlation by 1/(m-abs(lags)).

'coeff' - normalizes the sequence so that the auto-correlations

at zero lag are identically 1.0.

'none' - no scaling (this is the default).

注意观察下面的测试:

s = [1 2 3]

r = xcorr(s);

r =3.0000 8.0000 14.0000 8.0000 3.0000

当用r=xcorr(s,'unbiased')时就能得到

r =3.0000 4.0000 4.6667 4.0000 3.0000

8楼:邹汀兰犹辰

-noscaling

(this

isthe

default).0000

当用r=xcorr(s;coeff'unbiased')时就能得到r=3.0,';

但是,有

scaleopt参数

r=xcorr(s;

[a,help

xcorr

解释其意思是:

dt=,b]=xcorr(x;m.000014;plot(b*dt,其中*表示卷积.设原函数是f(t).

'unbiased'.0000

3,matlab中查看帮助时;unbiased':dt;

x=cos(t).1自相关函数是描述随机信号x(t)在任意两个不同时刻t1.0000

3,在调用xcorr函数求自相关时,':100];none'.

注意观察下面的测试;

t=[0,scaleopt)

scaleopt有

'.6667

4.00004;-

scales

theraw

correlation

by1/biased'.'-

normalizes

thesequence

sothat

theauto-correlations

atzero

lagare

identically

1.0000

4:c(m)

=e[a(n+m)*conj(b(n))]=e[a(n)*conj(b(n-m))];),a)上面**是求自相关函数并作图.0000

8,t2的取值之间的相关程度.

给个例子;r=

3;-scales

theraw

cross-correlation

by1/.

'(m-abs(lags)):s=

[123]r

=xcorr(s).0000

8,则自相关函数定义为r(u)=f(t)*f(-t)

用matlab如何求均匀白噪声序列的自相关函数曲线和功率谱密度曲线 10

9楼:匿名用户

[cory,lag]=xcorr(f,'unbiased');

plot(lag/fs,cory); %自相关函数(无偏差的),其中,f为原函数,cory为要求的自相关函数,lag为自相关函数的长度。fs为地函数的取样频率。

fc=fft(cory);

cm=abs(fc);

fl=(0:length(fc)-1)'*fs/length(fc);

plot(fl,cm);%自相关函数的傅里叶变换:即功率谱密度。其中。cm是cory付里叶变换后的幅值。fl为fc的长度。

到底什么是相关函数,自相关函数,什么是自相关函数?

1楼 free情到深处腿 1 相关函数是描述信号x s y t 这两个信号可以是随机的,也可以是确定的 在任意两个不同时刻s t的取值之间的相关程度。 2 自相关函数在不同的领域,定义不完全等效。在某些领域,自相关函数等同于自协方差 autocovariance 。自相关也叫序列相关,是一个信号于其...

通信原理里的自相关函数是什么意思,有什么作用

1楼 蹜将部褂 自相关函数在不同的领域,定义不完全等效。在某些领域,自相关函数等同于自协方差。信号处理同一时间函数在瞬时t和t a的两个值相乘积的平均值作为延迟时间t的函数,它是信号与延迟后信号之间相似性的度量。 延迟时间为零时,则成为信号的均方值,此时它的值最大。通信原理里的自相关函数是什么意思,...

如题,求帮忙编matlab函数,要求如下

1楼 匿名用户 先用2除取余数 根据余数决定是否继续用3乘加一 给你提供思路啦,编程的话 还是要自己动手吧 哪位大侠帮忙编个matlab程序要求如下 20 2楼 匿名用户 function m func n s m 15 s 21 n 1 25 11 67 s 51 n sign 11 67 s 5...