function [ DS, x1] = DelaySumURA( x,fs,N,frameLength,inc,r,angle)
#疑问:这个函数的功能是什么?各个参数的含义用中文解释一下
c = 340;
Nele = size(x,2);
#疑问:Nele的含义是什么?
omega = zeros(frameLength,1);
#疑问:Omega的含义是什么?
H = ones(N/2+1,Nele);
#疑问:H的含义是什么?
theta = 90*pi/180; %固定一个俯仰角
#疑问:theta是π/2的意思吗?俯仰角是指声源在麦克风的正上方吗?能画一个简易的图来表示声源和麦克风的相对位置?
gamma = [0 180]*pi/180;%麦克风位置
#疑问:麦克风的位置是指在几个麦克风在一个平面内的相对位置吗?能否画图解释?另外,我有只要两个麦克风的数据能否确定声源的大致方向?
tao = r*sin(theta)*cos(angle(1)-gamma)/c; %方位角 0 < angle <360
#疑问:tao的含义是?
yds = zeros(length(x(:,1)),1);
#疑问:yds是做了什么处理的结果?yds是什么意思?
x1 = zeros(size(x));
#疑问:x1是做了什么处理的结果?x1是什么意思
for k = 16:1:5000*N/fs
omega(k) = 2*pi*(k-1)*fs/N;
H(k,:) = exp(-1j*omega(k)*tao);
end
#疑问:解释一下这个循环的意义?同时解释循环内部各个语句的功能及参数(omega、H)的含义
for i = 1:inc:length(x(:,1))-frameLength
d = fft(bsxfun(@times, x(i:i+frameLength-1,:),hamming(frameLength)));
x_fft=bsxfun(@times, d(1:N/2+1,:),H);
x_fft = bsxfun(@rdivide, x_fft,abs(d(1:N/2+1,:)));
yf = sum(x_fft,2);
Cf = [yf;conj(flipud(yf(2:N/2)))];
yds(i:i+frameLength-1) = yds(i:i+frameLength-1)+(ifft(Cf)*512);
end
#疑问:解释一下这个循环的意义?同时解释循环内部各个语句的功能及参数(d、x_fft、yf、Cf、yds)的含义
DS = yds/Nele;
#疑问:返回值DS是什么含义?为什么是yds/Nele?
end