forked from polarch/Spherical-Array-Processing
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsphArrayNoise.m
More file actions
48 lines (44 loc) · 1.68 KB
/
sphArrayNoise.m
File metadata and controls
48 lines (44 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function [g2, g2_lin] = sphArrayNoise(R, Nmic, maxN, arrayType, f)
%SPHARRAYNOISE Returns noise amplification curves of a spherical mic. array
%
% SPHARRAYNOISE returns the noise amplification curves with frequency and
% order of the output SH components, for a theoretical microphone array
% with assumed uniformly distributed microphones. For an assumed unity
% noise variance of the microphones, these curves would express the power
% spectral densities of the noise at the output channels after the SHT
% and perfect equalization of the components.
%
% R: array radius
% Nmic: number of microphones
% maxN: maximum order that the array supports
% arrayType: 'open' or 'rigid' for an open sphere array or for
% microphones mounted on a rigid baffle
% f: frequency points to evaluate the curve
%
% g2: the noise amplification curve
% g2_lin: an approximation of the curves at low frequencies showing
% the linear behaviour in the log-log axis, with a 6n dB
% slope
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% SPHARRAYNOISE.M - 11/7/2013
% Archontis Politis, [email protected]
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% frequency axis
c = 343;
kR = 2*pi*f*R/c;
% modal responses
bN = sphModalCoeffs(maxN, kR, arrayType)'/(4*pi);
% noise power response
g2 = 1./(Nmic*abs(bN).^2).';
% approximate linearly
p = -(6/10)*(1:maxN)/log10(2);
bN_lim0 = sphModalCoeffs(maxN, 1, arrayType)/(4*pi);
a = 1./(Nmic*abs(bN_lim0(2:end)).^2);
g2_lin = zeros(length(kR), maxN);
for n=1:maxN
g2_lin(:,n) = a(n)*kR.^p(n);
end
end