| 查看: 279 | 回复: 0 | ||
[求助]
程序求助
|
|
帮忙看看matlab程序两列随机数据经过互相关计算,为什么不能画出正确的互相关图并得到正确的延迟点数?新虫存粮是12个金币,不好意思,谢谢! clear all; Fs=1468; %采样频率间序列 T=1/Fs; %采样周期 W=20479; %信号长度(20479) t=(0:W-1)*T; %时 A=xlsread('E:\0.xls','sheet1','A1:B2000'); %以矩阵形式读进数据 L=10; %电极间距(可变) x=1:1:2000; N=2000; %采样信号长度 y1=A(:,1); y2=A(:,2); figure(1); subplot(3,1,1), plot(x,y1); %第一组数据画图 title('图1'); subplot(3,1,2), plot(x,y2); %第二组数据画图 title('图2'); %设计低通滤波器 Wp =100/Fs; Ws = 200/Fs; %截止频率100Hz,阻带截止频率200Hz [n,Wn] = buttord(Wp,Ws,1,50); %阻带衰减大于50db,通带纹波小于1db %估算得到Butterworth低通滤波器的最小阶数N(10)和3dB截止频率Wn(0.0774) [a,b]=butter(n,Wn); %设计Butterworth低通滤波器,确定传递函数的分子分母系数 [h,f]=freqz(a,b,'whole',Fs); %求数字低通滤波器的频率响应 f=(0:length(f)-1)'*Fs/length(f); %进行对应的频率转换 subplot(3,1,3), plot(f,abs(h)); %绘制Butterworth低通滤波器的幅频响应图 title('巴氏低通滤波器'); grid; %低通滤波 p1=filter(a,b,y1); %y1经过低通滤波器以后的新数据 p2=filter(a,b,y2); %y2经过低通滤波器以后的新数据 figure(2); subplot(2,1,1), plot(x,p1); %绘制y1经过低通滤波器以后的时域图形 title('除燥数据1'); subplot(2,1,2), plot(x,p2); %绘制y2经过低通滤波器以后的时域图形 title('除燥数据2'); figure(3); plot(x,p1,x,p2); %相关运算 [a,b]=xcorr(p1,p2,'coeff'); %互相关计算, 返回矢量长度为2*N-1互相关函数序列,,当b没有指定时,其范围为[-N+1,N-1] dt=.1; figure(4); plot(b*dt,a); %绝对互相关图 title('互相关图'); a=abs(a); [amax,bmax]=max(a); sample_delay=bmax-N; %计算与中心点相差的样点数 t0=sample_delay/Fs; v=L/t0; |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有4人回复
基金委咋了?2026年的指南还没有出来?
已经有9人回复
基金申报
已经有5人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复











回复此楼