• 大小: 37KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Matlab
  • 标签: 声场模拟  

资源简介

对于做室内声信号处理很相关很通用的工具包,可实现室内信号脉冲响应的模拟

资源截图

代码片段和文件信息

function [timeHH]=roomsimove(room_sensor_configsource_configfs)

% ROOMSIMOVE Compute shoebox room filters for a moving source described
% by its position at discrete instants obtained from a configuration file
%
% [timeHH]=roomsimove(room_sensor_configsource_configfs)
%
% Input:
% room_sensor_config: room/sensor configuration file
% source_config: source movements configuration file
% fs: sampling frequency in Hz
%
% Output:
% time: n_samples x 1 vector listing the sampling instants
% HH: H_length x channels x n_samples matrix containing the associated filters
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright 2008 Emmanuel Vincent
% This software is distributed under the terms of the GNU Public License
% version 3 (http://www.gnu.org/licenses/gpl.txt)
% If you find it useful please cite the following reference:
% Roomsimove http://www.irisa.fr/metiss/members/evincent/Roomsimove.zip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%% Configuration data %%%
% Maximum distance in m between the sampled points
sample_dist=1e-2*16000/fs;
% When the true source moves a certain distance the variation of distance
% between the image sources and the sensors is at most equal to this
% distance. Hence it is sufficient to check that this distance corresponds
% to a small enough delay to ensure that the movement is accurately sampled
% for all image sources.
% Distance    Delay    L2 error on a pure delay filter integrated over the path (worst case with delay close to zero)
%   1mm    0.05 sample    33 dB without interpolation
%                         61 dB with maximum interpolation (interp_factor >= 26)
%   4mm    0.2 sample     21 dB without interpolation
%                         37 dB with maximum interpolation (interp_factor >= 7)
%   1cm    0.5 sample     13 dB without interpolation
%                         22 dB with maximum interpolation (interp_factor >= 3)
% Reading all data into variables
[paramvalue]=textread(source_config‘%9s%[^\n]‘‘commentstyle‘‘matlab‘);
q = strrep(‘ ‘‘ ‘‘ ‘‘‘);
for p=1:length(param)
    eval([param{p} ‘=[‘ value{p} ‘]‘ q ‘;‘]);
end
clear param value p;
source_xyz=[px py pz]‘;
n_breaks=size(source_xyz2);

%%% Spatial sampling %%%
% First breakpoint
time=ptime(1);
HH=roomsimove_single(room_sensor_configsource_xyz(:1));
% Subsequent breakpoints
for b=1:n_breaks-1
    breakdist=norm(source_xyz(:b+1)-source_xyz(:b)2);
    if breakdist > 0
        n_samples=ceil(breakdist/sample_dist);
        for s=1:n_samples
            time(end+1)=((n_samples-s)*ptime(b)+s*ptime(b+1))/n_samples;
            HH(::end+1)=roomsimove_single(room_sensor_config((n_samples-s)*source_xyz(:b)+s*source_xyz(:b+1))/n_samples);
        end
    else
        time(end+1)=ptime(b+1);
        HH(::end+1)=HH(::end);
    end
end

return;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-06-29 15:42  Roomsimove\
     文件       33112  2010-03-10 09:11  Roomsimove\omnidirectional.mat
     文件        1207  2010-04-01 03:56  Roomsimove\RT60toA.m
     文件       13296  2010-07-04 05:46  Roomsimove\roomsimove_single.m
     文件        2945  2010-03-10 09:11  Roomsimove\roomsimove.m
     文件        2029  2014-06-29 15:42  Roomsimove\roomsimove_apply.m
     文件        3286  2014-06-29 14:31  Roomsimove\README
     文件       49303  2010-03-10 09:11  Roomsimove\cardioid.mat
     文件         870  2010-03-10 09:11  Roomsimove\room_sensor_config.txt
     文件         154  2010-03-10 09:11  Roomsimove\source_config.txt

评论

共有 条评论

相关资源