⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libconvertattenuation.m

📁 水声模型 很不错的东西
💻 M
字号:
function AttOut = LibConvertAttenuation(AttIn, AttenOptIn, AttenOptOut, C, Freq)
%AttOut = LibConvertAttenuation(AttIn, AttenOptIn, AttenOptOut, C, Freq)
%
%Converts between possible units for attenuation
%AttIn - input attenuation value
%AttenOptIn - character specifying units of input attenuation (same as for kraken environment files).  Can be:
% N - Nepers/m
% F - dB/(kmHz)
% M - dB/m
% W - dB per wavelength
%AttenOptOut - character specifying units output is required in (same possibilities as AttenOptIn)
%C - sound speed (m/s)
%Freq - frequency (Hz)
%
%Returns [] if input or output options are unknown
%

%First convert all other units to nepers per meter
switch AttenOptIn
case 'N',
    Att = AttIn;
case 'F'
    Att = AttIn * Freq / 8686;
case 'M'
    Att = AttIn / 8.686;
case 'W';
    Lambda = C/Freq;
    if Lambda == 0
        Att = 0;
    else
        Att = AttIn / (Lambda * 8.686);
    end
otherwise
    Att = [];
end

if isempty(Att)
    AttOut = [];
else
    switch(AttenOptOut)
    case 'N',
        AttOut = Att;
    case 'F'
        AttOut = Att * 8686 / Freq;
    case 'M'
        AttOut = Att * 8.686;
    case 'W';
        Lambda = C/Freq;
        AttOut = Att * (Lambda * 8.686);
    otherwise
        AttOut = [];
    end
end        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -