Matlab_xcorr_互相关函数的讨论 [未完成]

假设两个平稳信号 $\bold{x}$ 和 $\bold{y}$ ,如果 $x\left(t+\tao\right)= y\left(t\right)$ ,则可通过互相关求 $\tao$ 。

首先,通过实现 xcorr 函数介绍互相关计算流程

clc
clear
close

%  实现 xcorr 函数

% 基本设置
T = 1;              % [s] 总时间长度
fs = 5000;          % [Hz] 采样频率
t = 0:1/fs:T;       % [s] 时间坐标
N = length(t);      % 信号个数

% 信号生成
tm = [ t(1:N) - T , t(2:N) ];       % 相关结果的时间延迟坐标轴
td1 = 0.2*T;                        % x 信号时间延迟
td2 = 0.3*T;                        % y 信号时间延迟
noise = rand(1,2*N);                % 生成了两倍时间 T 长度的噪声 [0,1]噪声
x = noise(1+round(td1*fs):N+round(td1*fs))-0.5*ones(1,N);
y = noise(1+round(td2*fs):N+round(td2*fs))-0.5*ones(1,N);

% 求取互相关
z1 = xcorr(x,y);    % Matlab 自带函数
[~,I1] = max(abs(z1));
z2 = zeros(1,N);    % 自编函数
for n = 1:length(tm)
    z2(n) = sum( x( max(1,n-N+1):min(n,N) ).*y( max(1,N-n+1):min(2*N-n,N) ) );
end
[~,I2] = max(abs(z2));
%--------------------计算说明--------------------%
% case1:               | case2:                 %
%              .N       |              .2*N-n    %
% y:  ..........        | y:       ..........    %
%           .N-n+1      |          .1            %
%              .n       |              .N        %
% x:        ..........  | x:  ..........         %
%           .1          |          .n-N+1        %
%------------------------------------------------%
err = z1-z2;        % 两种算法的差

% 绘图
subplot(1,3,1)
    plot(tm,z1)
    title(‘Matlab function‘)
    xlabel(‘time delay‘)
    ylabel(‘Amp‘)
    a1 = gca;
    a1.XTick = sort([-1:0.5:1 tm(I1)]);
subplot(1,3,2)
    plot(tm,z2)
    title(‘My function‘)
    xlabel(‘time delay‘)
    ylabel(‘Amp‘)
    a2 = gca;
    a2.XTick = sort([-1:0.5:1 tm(I2)]);
subplot(1,3,3)
    plot(tm,err,‘.-‘)
    title(‘error‘)
    xlabel(‘time delay‘)
    ylabel(‘Amp‘)
suptitle(‘xcorr realization‘)

clc
clear
close

%  比较 conv xcorr

% 例子  
A = ones(1,12);
B = 0:4;
C = xcorr(A,B);
D = conv(A,B);

%绘图
subplot(2,2,1)
    plot(A,‘.-‘)
    ylim([ -0.1 5.1 ])
    xlim([ 0.9 12.1])
    title(‘A = ones(1,12)‘)
    xlabel(‘n‘)
    ylabel(‘Amp‘)
subplot(2,2,2)
    plot(B,‘.-‘)
    ylim([ -0.1 5.1 ])
    xlim([ 0.9 12.1])
    title(‘B = 0:4‘)
    xlabel(‘n‘)
    ylabel(‘Amp‘)
subplot(2,2,3)
    plot(C,‘.-‘)
    ylim([ -0.1 15.1 ])
    xlim([ 0.9 25.1])
    title(‘xcorr 结果‘)
    xlabel(‘n‘)
    ylabel(‘Amp‘)
subplot(2,2,4)
    plot(D,‘.-‘)
    ylim([ -0.1 15.1 ])
    xlim([ 0.9 25.1])
    title(‘cone 结果‘)
    xlabel(‘n‘)
    ylabel(‘Amp‘)
suptitle(‘conv与xcorr对比‘)

原文地址:https://www.cnblogs.com/adgk07/p/9285728.html

时间: 2024-10-06 10:00:22

Matlab_xcorr_互相关函数的讨论 [未完成]的相关文章

Matlab_spectrogram_短时傅里叶分析_实现与讨论 [未完成]

在语音与音乐处理过程中,常用到短时傅里叶变换(Short Time Fourier Transformation, STFT).在一些学习路径中,STFT也是学习小波之前的预备知识.本文简单实现了 Matlab 中 Spectrogram 函数,在没有小波知识支撑下,讨论了参数的选择,以及分辨率相关的问题. 参考博客: 来源:    作者: 来源:    作者: 来源:    作者: 短时傅里叶变换简介 自己写一下对STFT的认识,不一定对. 短时傅里叶变换,其实还是傅里叶变换,只不过把一段长信

GL_Oracle Erp月结和年节流程讨论(概念)

一.什么是月结处理 通常,企业财务部门每月末终了都要对该月账务进行检查,进行结算处理.例如将当月的制造费用结转为生产成本,在部门间分摊公共费用等等:并制作.打印相关的报表与分析报告.最后才关闭本期期间打开下月期间,开始下个月的账务处理. Oracle ERP是一个由多功能模块共同组成的电子商务系统,包括账户处理及事务处理两大部分,其中总账称为账务处理系统,而其他模块,例如:应收.应付.资产.库 存,称之为业务处理系统,习惯上叫:子系统.由于大量业务数据在子系统中完成, Oracle月结的流程已不

Beta 答辩总结(未完成)

Beta 答辩总结(未完成) 标签(空格分隔): 软工实践 Beta版本其他组评分的传送门 其他组也请尽快上传 组长:442浩晖 组员:443书豪.430海林.文航248.汉森205.兴桔123 github链接 Beta 答辩评分传送门 组内各成员贡献比例 442浩晖 443书豪 430海林 文航248 汉森205 兴桔123 本组 Beta 冲刺站立会议博客链接汇总 Beta 冲刺 (1/7) Beta 冲刺 (2/7) Beta 冲刺 (3/7) Beta 冲刺 (4/7) Beta 冲刺

项目的目标及软件用户和管理员登录流程的讨论博客

讨论主题:项目的目标及用户和管理员登录流程 项目进度:初步开发阶段的基础实现 完成功能点:初步用户和管理员登录流程图 我们软件APP为“今天干啥了”,是一个以记录生活点滴,定制时间规划工具和备忘录的工具. 一.目标: ● 提供统一的时间管理,规划好自己的生活. ● 系统提供简洁明了的用户界面,方便用户使用. ● 系统具有良好的使用效率. ● 系统具有一-定的超前性,灵活性,使用各种不同人群. ● 系统可以帮助用户养成有规划的好习惯 二.用户管理员登录页面讨论 1.由于我们对于系统的开发技术没有涉

《虚拟人》:准科幻,讨论人的记忆与思维能力能够复制到机器之后的种种场景。3星。

感觉实质内容更像科幻小说(形式上不像).一开始判断人类将可以把大脑中的记忆与思维能力复制到软件,后面大部分都基于这个假设来讨论由此带来的社会.法律.宗教方面的各种可能出现的场景.3星. 以下是书中一些内容的摘抄: 1:事实上,有人与我持相同看法.本书内容大部分来自2003—2011年间我赞助过的座谈会和研讨会,书中观点参考了当今诸多颇具创造性.技术性和科学性的研究先锋们的观点.#286 2:“有重要证据显示,人类不是唯一拥有能够产生意识神经基质的物种.非人类动物,包括所有哺乳动物和鸟类.许多其他

Hadoop、Spark、HBase与Redis的适用性讨论(全文)

最近在网上又看到有关于Hadoop适用性的讨论[1].想想今年大数据技术开始由互联网巨头走向中小互联网和传统行业,估计不少人都在考虑各种"纷繁复杂"的大数据技术的适用性的问题.这儿我就结合我这几年在Hadoop等大数据方向的工作经验,与大家讨论一下Hadoop.Spark.HBase及Redis等几个主流大数据技术的使用场景(首先声明一点,本文中所指的Hadoop,是很"狭义"的Hadoop,即在HDFS上直接跑MapReduce的技术,下同). 我这几年实际研究和

expect 实现交互(未完成)

expect介绍 expect命令是一个实现交互功能的软件套件,是基于TCL的脚本编程语言,在企业运维中,系统会以交互的形式要求运维人员输入指定的字符串,之后才能继续执行命令.例如:为用户设置密码时,一般情况下需要手工输入两次密码,比如使用ssh连接远程服务器时,第一次连和系统实现两次交互. 简单的说,expect用来自动实现与交互程序通信的,无需管理员手工干预 spawn启动指定进程>expect获取期待的关键字>send向指定进程发送字符>进程执行完毕,退出 expect  表达式 

课堂讨论--beta版总结讨论

在课堂上,我们团队针对前段时间开发过程中存在的问题进行了讨论. 回顾发现,我们存在的问题有: (1)上传图片时无法存入数据库,所以无法再主页上显示图片. (2)无法进行注册登录,不能限制用户权限. (3)没有界面美化,所以界面很简洁. (4)没有实现智能推送功能. 我们挑选了前三个问题当做我们的下一阶段目标,因为智能推送功能暂时不知道如何实现,所以将前三个作为重点.

从三栏自适应宽度布局到css布局的讨论

如何实现一个三栏自适应布局,左右各100px,中间随着浏览器宽度自适应? 第一个想到的是使用table布局,设置table的宽度为100%,三个td,第1个和第3个固定宽度为100px,那么中间那个就会自适应了,下面是一个实时的demo: left  middle  right  但是table布局是不推荐的,table布局是css流行之前使用的布局,有很多缺点:当table加载完之前,整个table的都是空白的,table将数据和排版参和在一起,使得页面混乱,并且table布局修改排版十分麻烦