関数 thd
、sfdr
、sinad
および snr
は、正弦波による入力刺激を受けた弱非線形システムの応答を測定します。
時間領域の入力が与えられると、snr
は、サイドローブ減衰量の大きいカイザー ウィンドウを使い、ピリオドグラムを実行します。基本周波数を求めるため、アルゴリズムは、最大の非ゼロスペクトル成分のピリオドグラムを探索します。続いて、最大値から単調に減少するすべての隣接するビンの中心モーメントを計算します。基本波は、検出可能であるためには、少なくとも 2 番目の周波数ビンに属している必要があります。高い高調波成分は基本周波数の整数倍になります。高調波が別の高調波の近傍にある単調減少領域にある場合、そのパワーは大きい方の高調波に属するものと見なされます。この大きい方の高調波は、基本波である場合も、そうでない場合もあります。
この関数では、ノイズのみを含む領域のパワーの中央値を使用してノイズを推定します。DC 成分は計算では考慮されません。各点のノイズは、推定されたレベルか、その点の縦座標のうち、小さい方になります。このノイズが、信号および高調波の値から減算されます。
基本波が信号の最も高いスペクトル成分でない場合、snr
は失敗します。
周波数成分がカイザー ウィンドウのサイドローブ幅を許容できるよう、互いを十分離してください。これが不可能な場合は、"power"
フラグを使用し、別のウィンドウを使ってピリオドグラムを計算することができます。