声使用矩形麦克风阵列波束形成

7视图(30天)
使用Mathworks例子:
我复制这段代码使用一个矩形的4 x4数组而不是线性数组。我的头: 模拟接收到的信号
我只是使用一个音频信号x1如何使用阶跃函数?
我试着
temp =一步hCollector, x1, ang_dft +√(noisePwr) *兰德(rs, NSamPerFrame [4
4)));
我收到的错误是:
警告:输入参数必须是标量。
错误使用+
矩阵尺寸必须同意。
错误在文件(47)行
temp =一步hCollector, x1, ang_dft +√(noisePwr) *兰德(rs, NSamPerFrame [4
4)));
我如何正确地执行这个?
这是我的代码:
H = phased.OmnidirectionalMicrophoneElement (“BackBaffled”,真正的)
fc = (200 300 400)
ang = (0, 0);
resp =步骤(H, fc, ang);
plotResponse (H, 200,“RespCut”,“阿兹”,“格式”,“极地”)
哈=分阶段。(4 [4],[0.00635 - 0.00635],“元素”H)
图;
plotResponse(哈,200340,“RespCut”,“3 d”,“格式”,“极地”)
% - - - - - - - - - - - - - - - - - - - - - - - -
ang_dft =[10] -10年
fs = 8000
hCollector = phased.WidebandCollector (“传感器”,哈,“PropagationSpeed”,340,“SampleRate”fs,“ModulatedInput”、假);
t_duration = 3;
t = 0:1 / fs: t_duration / fs;
rs = RandStream.create (“mt19937ar”,“种子”,2008)
noisePwr = 1的军医
% preallocate
NSamPerFrame = 1000
NTSample = t_duration * fs
sigArray = 0 (NTSample 4 [4])
voice_dft = 0 (NTSample, 1)
%设置音频播放器
isAudio金宝appSupported = audiodevinfo (0)
如果isAudio金宝appSupported
hap = dsp.AudioPlayer (“SampleRate”fs)
结束
%模拟
m = 1: NSamPerFrame: NTSample
sig_idx = m: m + NSamPerFrame-1
x1 = wavread (“dft_voice_8kHz”[sig_idx (1) sig_idx(结束)))
temp =一步hCollector, x1, ang_dft +√(noisePwr) *兰德(rs, NSamPerFrame 4 [4]));
如果isAudio金宝appSupported
步骤(hap临时(:,3));
结束
sigArray (sig_idx:) = temp;
voice_dft (sig_idx) = x1;
结束
情节(t, sigArrary (:, 3));
1评论
尼克Yiw
尼克Yiw 2019年3月18日
你好,我是一个学生目前致力于一个项目,涉及语音识别控制输出的距离。我真的想知道什么是最好的建议的麦克风阵列/芯片可以使用兼容MATLAB。谢谢你!

登录置评。

接受的答案

宏磊陈
宏磊陈 2013年3月7日
这个错误是因为你添加噪声的角度。我相信这是一个错误。这条线应该这样读
temp =一步hCollector, x1, ang_dft +√(noisePwr) *兰德(rs NSamPerFrame 16);
同时,在脚本的前一部分,你实例化 sigArray ,应该是
sigArray = 0 (NTSample, 16);
HTH
3评论
Osheen
Osheen 2013年3月12日
谢谢你的有用的反应。
我怎么申请霜beamformer真实收集的数据从一个4 x4麦克风阵列?还什么是最好的方法来确定滤波器的长度beamformer吗?
这是到目前为止我写了一些代码应用在实际收集的数据。请让我知道如果我丢失的东西
data = getdata (ai)
hmic = phased.OmnidirectionalMicrophoneElement;
哈=分阶段。(4 [4],[0.0635 - 0.0635],“元素”hmic);
hsig = dsp.SignalReader (“信号”、数据“SamplesPerFrame”,NSampPerFrame);
弗罗斯特= phased.FrostBeamformer (“SensorArray”,哈,“SampleRate”Fs,
“PropagationSpeed”c“FilterLength”,100,“DirectionSource”,输入端口的);
frostout = 0 (NTSample, 1);
m = 1: NSampPerFrame: nt
frostout (m: m + NSampPerFrame-1:) =步骤(霜,步骤(hsig) angSteer);
结束
soundsc (frostout Fs, 16)
wavwrite (frostout“Frostbeamformed真实数据”);
情节(t, frostout);
包含(的时间(秒));ylabel (“振幅(V)”);
标题(“霜Beamformer输出”);

登录置评。

答案(1)

泽Ertekin
泽Ertekin 2017年1月22日
你好,
我需要一个2 d或3 d声源定位代码与命令加载;谁能帮我。任何帮助将是高度apprecited。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!