⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 计算相关.m

📁 计算两个函数的相关函数
💻 M
字号:
%如何求两个信号的互相关函数?
%如何求两个信号的互相关函数?

%sig1(1:200)=cos(w*(1:200)+5);
%sig1(201:501)=cos(w*(201:501)+12);
%sig2(1:404)=cos(w*(1:404)+5);
%sig2(405:501)=cos(w*(405:501)+15);
%如何求两个信号的互相关函数?纵坐标是相关系数,横坐标是数据长度,
%谢谢


%答案
fs=1000;
t=0:1/fs:1;
w=15;
x=cos(w*t+15);
y=sin(w*t+17);
k=length(x);
xk=fft(x,2*k);
yk=fft(y,2*k);
rm=real(ifft(conj(xk).*yk));
rm=[rm(k+2:2*k) rm(1:k)];
m=(-k+1):(k-1);
plot(m,rm);
%主要是不懂纵轴表示什么,最好是表示相关系数,


%楼主用FFT的方法来求相关时要注意,其中数据怎么安排是一个需要了解的问题。从楼主的程序来看求出的是循环相关函数。楼主要求相关系数,其数学表达式应为:
%rm(n)=Rxy(n)/sqrt(Rxx(0)*Ryy(0))
%我用xcorr函数来计算,程序如下:
fs=1000;
t=0:1/fs:1;
w=15;
x=cos(w*t+15);
y=sin(w*t+17);
k=length(x);
Rxy=xcorr(x,y);
Rxx0=sum(x.*x);
Ryy0=sum(y.*y);
rm=Rxy/sqrt(Rxx0*Ryy0);
m=(-k+1):(k-1);
plot(m,rm);
grid;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -