技术标签: matlab 广义互相关
clear all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%获得语音文件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[x,fs,nbits]=wavread('bluesky3.wav'); %%%%%%打开wav文件
%fs=8000
%nbits=16
x=x/max(abs(x)); %%%%%幅度归一化
N=length(x); %%%%%设x的采样长度为wav_length
tt=[0:N-1]/fs; %%%%%采样时间序列tt
wlen=200; %%%%%%%帧长200,帧移80
inc=80;
fn=fix((N-wlen)/inc)+1; %%%%%%%求出一共分了多少帧
frametime=frame2time(fn,wlen,inc,fs); %%%%%%%%计算每帧对应的时间
x1=x'; %%%%%构造延时800个采样点,即0.1S的信号
x2=[zeros(1,800),x1];
x2=x2(1,[1:end-800]); %%%%为保持x2与x1有相同的采样长度,将x2的最后800个采样点删去
figure(1)
subplot(211)
plot(tt,x1);
subplot(212)
plot(tt,x2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%x1=filter([1 -.99],1,x1); %%%%%%%对两个输入函数进行滤波
%x2=filter([1 -.99],1,x2);
%figure(2)
%subplot(211)
%plot(tt,x1);
%subplot(212)
%plot(tt,x2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%分帧加窗%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%x1=enframe(x1,hamming(wlen),inc); %%%%%%%给输入信号分帧和加窗,帧长200,帧移80(即帧长为25ms,帧移为10ms)符合语音信号在10~30ms内短时平稳的特性
%x2=enframe(x2,hamming(wlen),inc);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%端点检测%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
IS1=0.1; %%%%%%%观察输入的波形图形,估计前导无话段时长IS
IS2=0.2;
NIS1=fix((IS1*fs-wlen)/inc+1);
NIS2=fix((IS2*fs-wlen)/inc+1);
[voiceseg1,vsl1,SF1,NF1]=vad_ezm1(x1,wlen,inc,NIS1); %%%%%%%%vad_ezml为工具箱带的函数,用于计算端点检测 voiceseg表示区间(特别的!表示的是时间区间),vsl表示有几段
[voiceseg2,vsl2,SF2,NF2]=vad_ezm1(x2,wlen,inc,NIS2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%广义互相关计算时延%%%%%%%%%%%%%%%%%%%%%%%%
X1=fft(x1,2*N-1);
X1J=conj(X1);
X2=fft(x2,2*N-1);
X2J=conj(X2);
X12=X1.*X2J;
R12=fftshift(abs(ifft(X12)));
figure(2)
T=(0:N-1)/fs;
plot([0:2*N-2],R12)
c=max(abs(R12));
a=find(abs(R12)==c) %找出最大点
R=fix(length(R12)/2);
m=(a-(R+2))/fs %换算出信号的延迟时间
文章浏览阅读1.4w次,点赞2次,收藏21次。linux命令之筛选文件内容(sed命令) 在linux系统中,可能有这样的需求,比如查看某个文件中含有某些字符的内容。比如,日志文件中,只要含有error 相关的。可以使用如下命令:1、根据字符串内容筛选sed -n "/error/p" logs.log 注意以上/error/p 中的p 必须要带着,后边的logs.log 是一个文件,输入上边的命令,则会打印出只含有err..._linux过滤时间范围内的文件内容命令
文章浏览阅读2.3k次。I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。主芯片通过一根SDA线既可以把数据发给从设备,也可以从SDA上读取数据,连接SDA线的引脚里面必然有两个引脚(发送引脚/接受引脚)。在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!从上面的例子,就可以知道怎样在一条线上实现双向传输,这就是SDA上要使用上拉电阻的原因。_gpio模拟i2c
文章浏览阅读683次。npm ERR! Error while executing:npm ERR! D:\Program Files\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.gitnpm ERR!npm ERR! fatal: unable to access 'https://github.com/nhn/raphael.git/': Unknown SSL protocol error in connection to githu._element-admin npm install 报错unknowm ssl protocol error in connectiongithub
文章浏览阅读64次。Qt下载Qt安装Qt Creator的初步使用编写第一个Qt程序
文章浏览阅读3.8k次,点赞3次,收藏4次。一、优化功能持续更新。。嘻嘻~~1、直接提取device信息自动化直接提取android的信息,不用在命令行中自己手动提取。如下:# 正则表达式匹配出 id 信息deviceId = re.findall(r'^\w*\b', readDeviceId[1])[0]# 读取设备系统版本号deviceAndroidVersion = list(os.popen('adb shell ..._python自动化匹配设备信息并复制出来
文章浏览阅读3.8k次,点赞8次,收藏41次。Python调用大恒相机录制视频(Ubuntu16.04)文章目录Python调用大恒相机录制视频(Ubuntu16.04)环境配置视频录制代码问题解答环境配置驱动安装:https://blog.csdn.net/liuzongyuan1996/article/details/104219550API安装:https://blog.csdn.net/liuzongyuan1996/arti..._opencv python 读取大恒相机
文章浏览阅读3.1k次。国密认证遇到的一些问题记录:gmssl生成的key文件解析:gmssl生成的SM2证书文件解析:_gmssl 生成base64
文章浏览阅读7.8k次。一、单选题 (共 90.00 分)1.关于学术造假,下列说法是不正确的是( )A.指伪造、修改研究数据和资料等学术腐败行为B.通常是由研究者学风浮躁和急功近利所致C.为了令理论假设成立,加工和筛选数据并不是造假D.是一种违背学术道德和科学精神的表现满分:15.00 分得分:15.00 分你的答案:C正确答案:C教师评语:暂无2.资料分析中的失范行为往往也被称为学术造假,下列情况不属于学术造假的是( )A.筛选数据B.整理数据C.加工数据D.伪造数据满_关于伪造科研数据下列说法错误的是
文章浏览阅读68次。1. onSubmit = "return function ()";2. <input type="text" name="fname" required>3.var obj = JSON.parse(text); //JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象 JSON.stringify()//用于将值转换..._微信javascript笔记
文章浏览阅读1.7k次。作用@ConfigurationProperties的作用:可以读取配置文件中的信息,并自动封装成实体类,该实体类的名称,默认是类名的首字母小写。比如,在application.yml中有这样的内容:# 安全配置security: # 验证码 captcha: enabled: true type: math代码演示package com.ruoyi.gateway.config.properties;import org.springframework.boot._@configurationproperties(prefix = "security.captcha")
文章浏览阅读5.4w次,点赞10次,收藏20次。1. getTime()返回值Java和JavaScript都支持时间类型Date,他们的getTime()方法返回的是毫秒数。默认返回的是13位数字,单位是毫秒。2. 注意事项 /** * Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT * represented by this <tt>Date</tt> object. * * @retur_new date().gettime()
文章浏览阅读1.3w次。注意radio(单选框)需要value值相等才可以实现单选的功能,value值可以随意设。(1)当inputtype=“text”、“password”、"hidden"时,定义输入字段的初始值;(2)当inputtype=“button”、“reset”、"submit"时,定义按钮上的显示的文本;(3)当inputtype=“checkbox”、“radio”、"image"时,定义与输入相关联的值;1.name属性元素的名称,也就是name的值代表当前input元素的名字;..._input标签属性