如何避免无穷大作为输出值?

时间:2017-03-11 09:53:16

标签: matlab communication-protocol acoustics

我编写了以下代码,根据发送方和接收方之间的距离以及接收方的SNR阈值来计算所需的传输功率。但是,我获得了所需强度(Req_I)和所需传输功率(Req_Pt)的巨大值。如果我在计算传输功率的技术或代码本身中犯了任何错误,请建议解决方案。

最好的问候

     Pt=12;                         %Transmit power in watts             
     spreading=1.5;                 %Spreading factor
     f=10;                          %Frequency in Kilo Hz.
     d=0.5;                         %Distance in Kilo Meters.
     NL=47.69;                      %Noise Level in db
     DI=0;                          %Directivity Index
     pi=3.14159265359;  
     SNRth=17;                      %SNR threshold in db

    %absorption=10^((0.002+0.11*(f^2/((1+f^2)+0.011*f^2)))/10); %Absorption factor
     absorption=10^((0.11*(f^2/(1+f^2))+44*(f^2/(4100+f^2))+2.75*10^(-4)*f^2+0.003)/10);
     TL=(d^spreading)*(absorption^d);                           %Transmission Loss
     Req_SL=SNRth+TL+NL+DI;                                     %Required Source Level
     Req_I=((10^Req_SL)/10)*(0.67*10^(-18));                    %Required Intensity
     Req_Pt=Req_I*4*pi;                                         %Required Transmission Power

2 个答案:

答案 0 :(得分:0)

你的TL因子的计算可能是错误的,也许你忘了采用它的对数?

我不知道您的公式来自何处,也不知道您的具体应用。如果您没有正确的公式,可以查看this pdf,它会因衰减和传播而提供TL因子的表达式。

答案 1 :(得分:0)

检查你的单位。

原始论文给出了低频传播的表达式(3),即您使用过的,但要求输入为kHz,而不是Hz。要么你应该使用

f = 10*1e-3; %frequency in kHz

或者您应该使用公式(2)。另请注意,衰减以dB / km为单位,因此您也应该转换距离,除非您实际感兴趣的是传播500公里。