75 lines
1 KiB
Julia
75 lines
1 KiB
Julia
|
|
|||
|
"""
|
|||
|
|
|||
|
"""
|
|||
|
function cardioid_pattern(
|
|||
|
d::SVector{3, <:Real},
|
|||
|
B::SMatrix{3, 3, <:Real},
|
|||
|
ρ::Real,
|
|||
|
)::Real
|
|||
|
r = [1., 0., 0.]
|
|||
|
ρ + (1-ρ) * r' * B' * d
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
|
|||
|
"""
|
|||
|
|
|||
|
"""
|
|||
|
function directivity_pattern(
|
|||
|
d::SVector{3, <:Real},
|
|||
|
B::SMatrix{3, 3, <:Real},
|
|||
|
pattern::OmnidirectionalPattern,
|
|||
|
)::Real
|
|||
|
1
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
"""
|
|||
|
|
|||
|
"""
|
|||
|
function directivity_pattern(
|
|||
|
d::SVector{3, <:Real},
|
|||
|
B::SMatrix{3, 3, <:Real},
|
|||
|
pattern::SubcardioidPattern,
|
|||
|
)::Real
|
|||
|
cardioid_pattern(d, B, 0.75)
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
"""
|
|||
|
|
|||
|
"""
|
|||
|
function directivity_pattern(
|
|||
|
d::SVector{3, <:Real},
|
|||
|
B::SMatrix{3, 3, <:Real},
|
|||
|
pattern::CardioidPattern,
|
|||
|
)::Real
|
|||
|
cardioid_pattern(d, B, 0.50)
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
"""
|
|||
|
|
|||
|
"""
|
|||
|
function directivity_pattern(
|
|||
|
d::SVector{3, <:Real},
|
|||
|
B::SMatrix{3, 3, <:Real},
|
|||
|
pattern::HypercardioidPattern,
|
|||
|
)::Real
|
|||
|
cardioid_pattern(d, B, 0.25)
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
"""
|
|||
|
|
|||
|
"""
|
|||
|
function directivity_pattern(
|
|||
|
d::SVector{3, <:Real},
|
|||
|
B::SMatrix{3, 3, <:Real},
|
|||
|
pattern::BidirectionalPattern,
|
|||
|
)::Real
|
|||
|
cardioid_pattern(d, B, 0.00)
|
|||
|
end
|
|||
|
|