声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1616|回复: 3

[综合] 如何求2个进行过希尔伯特包络进行互相关的程序

[复制链接]
发表于 2007-6-11 20:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
哪位高手能够指点下,如何求2个进行过希尔伯特包络进行互相关的程序
麻烦高手了!~~~
回复
分享到:

使用道具 举报

发表于 2007-6-11 20:44 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-6 14:45 编辑
原帖由 qichengzhi 于 2007-6-11 20:41 发表
如何求2个进行过希尔伯特包络进行互相关的程序

麻烦楼主把问题叙述清楚些,以便大家给你提供帮助!
 楼主| 发表于 2007-6-11 21:03 | 显示全部楼层
我做的是  声门脉冲的时间延时
在对2个声门脉冲信号进行了希尔伯特变换,程序如下:
M=length(sh);
sp=zeros(1,M);
err=zeros(1,M);
Nt=10;
[A,E] = lpc(sh,Nt) ;

for n=2:Nt
    for t=2:n
     sp(n)=sp(n)-A(t)*sh(n-t+1);
    end
    err(n)=sh(n)-sp(n);
end

for n=Nt+1:M
    for t=2:Nt+1
        sp(n)=sp(n)-A(t)*sh(n-t+1);
    end
    err(n)=sh(n)-sp(n);
end

%希尔伯特包络
errh=hilbert(err);
for n=1:M
    erh(n)=imag(errh(n))^2;
    er(n)=err(n)^2;
    error(n)=sqrt((er(n)+erh(n)));
end
for n=1:M
    B=max(error(n));
end
for n=1:M
    if error(n)>=B*0.5
       error(n)=1;
    else error(n)=0;
end
    phil(LF,:)=error;
%%%%%%%对第一个麦克风的信号帧进行处理求希尔伯特包络  %%%%%%%%%%%%%%%%%%%%

M1=length(sh1);
spt1=zeros(1,M1);
errt1=zeros(1,M1);
Nt1=10;
[At1,Et1] = lpc(sh1,Nt1) ;
for n=2:Nt1
    for t=2:n
     spt1(n)=spt1(n)-At1(t)*sh1(n-t+1);
    end
    errt1(n)=sh1(n)-spt1(n);
end
for n=Nt1+1:M1
    for t=2:Nt1+1
        spt1(n)=spt1(n)-At1(t)*sh1(n-t+1);
    end
    errt1(n)=sh1(n)-spt1(n);
end
errht1=hilbert(errt1);
for n=1:M1
    erht1(n)=imag(errht1(n))^2;
    ert1(n)=errt1(n)^2;
    errort1(n)=sqrt((ert1(n)+erht1(n)));
end
for n=1:M
    B=max(errort1(n));
end
for n=1:M
    if errort1(n)>=B*0.5
       errort1(n)=1;
    else errort1(n)=0;
end
phil1(LF,:)=errort1;
后面就是要求这2个信号的希尔伯特后的互相关
发表于 2007-6-11 21:11 | 显示全部楼层

回复 #3 qichengzhi 的帖子

关于自相关和互相关 请参考:
http://forum.vibunion.com/forum/thread-36108-1-6.html

同时希望发帖之前能够充分利用论坛的搜索功能,看看类似的问题有没有被人已经提出过。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 00:17 , Processed in 0.169787 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表