function [G] = GCC_Method(m,s1,s2,wnd,inc)
% m 预白化滤波器类型:'standard','roth','scot','phat','ml'
%s1,s2 两个输入信号
% Fs 采样频率 (Hz)
% wnd 窗函数或帧长
% inc 帧移
%
% G 估计的时延值
N=wnd;
wnd=hamming(N);
x=enframe(s1,wnd,inc);
y=enframe(s2,wnd,inc);
n_frame=size(x,1);
switch lower(m)
case 'standard'
% 标准GCC
for i=1:n_frame
x = s1(i:i+N);
y = s2(i:i+N);
X=fft(x,2*N-1);
Y=fft(y,2*N-1);
Sxy=X.*conj(Y);
gain=1;
Cxy=fftshift(ifft(Sxy.*gain));
[Gvalue(i),G(i)]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
end;
case 'roth'
% Roth filter
for i=1:n_frame
x = s1(i:i+N);
y = s2(i:i+N);
X=fft(x,2*N-1);
Y=fft(y,2*N-1);
Sxy=X.*conj(Y);
Sxx=X.*conj(X);
gain=1./abs(Sxx);
Cxy=fftshift(ifft(Sxy.*gain));
[Gvalue(i),G(i)]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
end;
case 'scot'
% Smoothed Coherence Transform (SCOT)
for i=1:n_frame
x = s1(i:i+N);
y = s2(i:i+N);
X=fft(x,2*N-1);
Y=fft(y,2*N-1);
Sxy=X.*conj(Y);
Sxx=X.*conj(X);
Syy=Y.*conj(Y);
gain=1./sqrt(Sxx.*Syy);
Cxy=fftshift(ifft(Sxy.*gain));
[Gvalue(i),G(i)]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
end;
case 'phat'
% Phase Transform (PHAT)
for i=1:n_frame
x = s1(i:i+N);
y = s2(i:i+N);
X=fft(x,2*N-1);
Y=fft(y,2*N-1);
Sxy=X.*conj(Y);
gain=1./abs(Sxy);
Cxy=fftshift(ifft(Sxy.*gain));
[Gvalue(i),G(i)]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
end;
case 'ml'
% 最大似然加权函数
for i=1:n_frame
x = s1(i:i+N);
y = s2(i:i+N);
X=fft(x,2*N-1);
Y=fft(y,2*N-1);
Sxy=X.*conj(Y);
Sxx=X.*conj(X);
Syy=Y.*conj(Y);
Zxy=(Sxy.*Sxy)/(Sxx.*Syy);
gain=(1./abs(Sxy)).*((Zxy.^2)./(1-Zxy.^2));
Cxy=fftshift(ifft(Sxy.*gain));
[Gvalue(i),G(i)]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
end;
otherwise error('Method not defined...');
end
没有合适的资源?快使用搜索试试~ 我知道了~
声源定位基于matlab广义互相关的声源定位【含Matlab源码 548期】.zip
共6个文件
m:3个
docx:1个
mat:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 24 下载量 120 浏览量
2021-10-11
18:00:10
上传
评论 21
收藏 508KB ZIP 举报
温馨提示
CSDN海神之光上传的全部代码均可运行,亲测可用,尽我所能,为你服务; 1、代码压缩包内容 主函数:C9_2_y_2.m; 调用函数:其他m文件; 语音信号,其格式为MP4; 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到 Matlab的当前文件夹中; 步骤二:双击打开C9_2_y_2.m文件;(若有其他m文件,无需运行) 步骤三:点击运行,等程序运行完得到结果; 4、语音处理系列仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 语音处理系列程序定制或科研合作方向:语音隐藏、语音压缩、语音识别、语音去噪、语音评价、语音加密、语音合成、语音分析、语音分离、语音处理、语音编码、音乐检索、特征提取、声源定位、情感识别、语音采集播放变速等;
资源推荐
资源详情
资源评论
收起资源包目录
【声源定位】基于matlab广义互相关的声源定位【含Matlab源码 548期】.zip (6个子文件)
【声源定位】基于matlab广义互相关的声源定位【含Matlab源码 548期】
enframe.m 819B
~$房间声学模型.docx 162B
s.mat 480KB
C9_2_y_2.m 779B
GCC_Method.m 2KB
运行结果.jpg 32KB
共 6 条
- 1
海神之光
- 粉丝: 3w+
- 资源: 2089
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页