thd

typhoon.test.harmonic.thd ( signal , fundamental , max_harmonic , during = None , mode = 'multiple_harmonics_only' , fundamental_tol = 0.01 )

信号のTHDを計算します

パラメータ:
  • 信号(シリーズ) – THD 値を計算する信号を含む Pandas シリーズ。

  • fundamental ( int ) – 信号の基本周波数

  • max_harmonic ( int ) – 計算で考慮される最大高調波(基本波に対する)。

  • during ( float/intまたはTimedelta2 要素タプル) – 計算に考慮する信号の周期。

  • mode (文字列 - デフォルトは 'multiple_harmonics_only' ) – 計算の3つのモードから1つを選択します: - 'multiple_harmonics_only' - 基本波で割り切れる高調波のみ考慮されます - 'with_interharmonics' - 基本波より大きい高調波はすべて考慮されます - 'all_frequencies' - 低調波を含むすべての周波数が計算に含まれます

  • fundamental_tol ( float - デフォルト 0.01 ) – 提供された 'fundamental' 値を、信号の 'freq_content' (FFT) から取得された値に置き換える許容値。

戻り値:

thd – 計算された THD 値。

戻り値の型:

フロート

注記

3 つの計算モードはすべて高速フーリエ変換に基づいています。つまり、計算に取り込まれる信号の長さは、検出された周波数間のステップを定義するパラメータであるため、慎重に選択する必要があります。したがって、必要な周波数ステップが 10 Hz の場合、信号は 0.1 秒 (1/10) の長さになるようにキャプチャ (または引数中にスライス) する必要があります。

>>>から 台風テスト信号 pandas_sineをインポート>>>から 台風テストハーモニック インポートthd
>>> # 50 Hz正弦波信号(基本波)を作成し、3 次高調波を追加します>>> serie = signal.pandas_sine ( 1 , 50 , 1 , 1e - 6 ) >>> serie += signal.pandas_sine ( 0.5 , 150 , 1 , 1e-6 ) >>> # 次数間高調波を追加します>>> serie += signal.pandas_sine(1, 125 , 1 , 1e - 6 ) >>> # 2低調追加します>>> serie + = signal.pandas_sine ( 1 , 10 , 1 , 1e -6 ) >>> serie += signal.pandas_sine ( 1 , 30 , 1 , 1e - 6 )
>>> # 多重高調波のみの thd を計算>>> result = thd ( serie , fundamental = 50 , max_harmonic = 10 ) >>> print ( result ) # 0.5 を出力
>>> # 次数間高調波を含めたthdを計算する>>> result = thd ( serie , fundamental = 50 , max_harmonic = 10 , mode = "with_interharmonics" ) >>> print ( result ) # 1 over sqrt(2)
>>> # すべての周波数を含む thd を計算します>>> result = thd ( serie , fundamental = 50 , max_harmonic = 10 , mode = "all_frequencies" ) >>> print ( result ) # 1 を出力します