'*******************************************************************************************************
'マスク値の計算
Function CalcMaskData(Freq As Double) As Double
'60dB境界下限周波数より低い場合
'60dB境界上限周波数より高い場合
If Freq <= StartF60 Or Freq >= StopF60 Then
CalcMaskData = (-60dB or 43+10log(PEP))
End If
'40dB帯域内の場合
If Freq >= StartF40 And Freq <= StopF40 Then
CalcMaskData = 0
End If
'60dB境界下限周波数~40dB境界下限周波数の場合
If Freq > StartF60 And Freq < StartF40 Then
' CalcMaskData = -40 - 30 * Log(2 * (CenterF - Freq) / D40Width) / Log(10)
'D40Width:40dB帯域幅
CalcMaskData = -40 - 30 * (0.6931 + Log(CenterF - Freq) - lnD40Width) / 2.3026
End If
'40dB境界上限周波数~60dB境界上限周波数の場合
If Freq < StopF60 And Freq > StopF40 Then
' CalcMaskData = -40 - 30 * Log(2 * (Freq - CenterF - OffsetF) / D40Width) / Log(10)
CalcMaskData = -40 - 30 * (0.6931 + Log(Freq - CenterF) - lnD40Width) / 2.3026
End If
Exit Function
End Function
'******************************************************************************************
【マスクデータの生成について】
マスクデータを生成する際、周波数点は以下のようにしています。
①下記の周波数点は必ず生成されるようにしています。
・40dB 帯域幅の上限下限の周波数点
マスクデータ = 0dB
・40dB 帯域幅の上限+0.001 Hz、下限-0.001 Hz の周波数点
マスクデータ = -40dB
・帯域外領域とスプリアス領域の境界周波数
マスクデータ = 43+10log(PEP)か-60dBのどちらか小さい方
②帯域外領域とスプリアス領域の境界周波数内のマスクデータ計算周波数点は
40 dB 帯域幅内を含めて、参照帯域幅の Step で生成されます。
③測定開始周波数から帯域外領域とスプリアス領域の境界周波数の下側までの周波数点は
5 点程度になるように生成しています。
④帯域外領域とスプリアス領域の境界周波数の上側から測定終了周波数までの周波数点は
5点程度になるように生成しています。
'****************************************************************************************
【分かったこと】
・電力5W以下は43+10log(PEP)の方が小さい
・スプリアスのATTは入力レベルの適正、通常は内部回路の保護のため最低でも10dBは入れておく
→尖っていない方だけ変化する。低いほど低い、大きいほど高い。