メモ2

'*******************************************************************************************************
'マスク値の計算
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は入れておく
 →尖っていない方だけ変化する。低いほど低い、大きいほど高い。