From dd656b87d9f36ea311fc5259a0103148ea091718 Mon Sep 17 00:00:00 2001 From: Michael Kohnen <kohnen@ITA.AKUSTIK.RWTH-AACHEN.DE> Date: Sat, 26 Jan 2019 13:37:35 +0100 Subject: [PATCH] added distance loss to hoa decoding, added headphone test fixture to ita device list ITA --- .../Hardware/ITAdevices/ita_device_list_ITA.m | 5 +++++ applications/SpatialAudio/ita_hoa_decode.m | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/applications/Hardware/ITAdevices/ita_device_list_ITA.m b/applications/Hardware/ITAdevices/ita_device_list_ITA.m index 7b1d5fe1..374cdf7a 100644 --- a/applications/Hardware/ITAdevices/ita_device_list_ITA.m +++ b/applications/Hardware/ITAdevices/ita_device_list_ITA.m @@ -452,6 +452,11 @@ device(end+1,:) = { 'ITA-KK KE4 Child right','0.0098573 V/Pa','ke4',0}; device(end+1,:) = { 'Neumann-KK left','1 V/Pa','schoeps',1}; device(end+1,:) = { 'Neumann-KK right','1 V/Pa','schoeps',1}; +% values are taken from calibration sheets by DKD (Deutscher +% Kalibrierdienst) +device(end+1,:) = { 'GRAS Headphone Testfixture Left','0.01211 V/Pa','RA0401',1}; +device(end+1,:) = { 'GRAS Headphone Testfixture Right','0.0124 V/Pa','RA0401',1}; + device(end+1,:) = { 'HEAD HMS III with ear simulator - IEC 711','0.01165 V/Pa','none',0}; device(end+1,:) = { 'Hoertnix BTE right front_hwch01','0.0159 V/Pa','none',1}; diff --git a/applications/SpatialAudio/ita_hoa_decode.m b/applications/SpatialAudio/ita_hoa_decode.m index 75098185..b61109c9 100644 --- a/applications/SpatialAudio/ita_hoa_decode.m +++ b/applications/SpatialAudio/ita_hoa_decode.m @@ -1,4 +1,4 @@ -function [ OutputSignals ] = ita_3da_decode( Bformat, LoudspeakerPos, varargin ) +function [ OutputSignals ] = ita_hoa_decode( Bformat, LoudspeakerPos, varargin ) %ITA_DECODEAMBISONICS Decodes a BFormat Signal in ANC with SN3D %normalization % Detailed explanation goes here @@ -6,8 +6,8 @@ function [ OutputSignals ] = ita_3da_decode( Bformat, LoudspeakerPos, varargin ) % BFormat<nmax,LS> opts.decoding='remax'; % Decoding strategy (remax,inphase,plane) -% opts.decoding='none'; - +% opts.decoding='none'; +opts.distanceloss=true; opts = ita_parse_arguments(opts,varargin); % Initializing further parameters @@ -68,7 +68,7 @@ if isa(Bformat,'itaAudio') end else for k=1:numel(weights) - Bformat(:,k)=weights(k).*Bformat(:,k); + Bformat(:,k)=weights(k).*Bformat(:,k); end end @@ -81,7 +81,11 @@ if isa(Bformat,'itaAudio') for l=1:nmax temp(l)=Bformat.ch(l)*Yinv(l,k); end - OutputSignals(k)=sum(temp); + if opts.distanceloss + OutputSignals(k)=sum(temp)*LoudspeakerPos.r(k); + else + OutputSignals(k)=sum(temp); + end end OutputSignals=ita_merge(OutputSignals(:)); OutputSignals.channelCoordinates=LoudspeakerPos; -- GitLab