PhaseIncrementEstimator
サンプル到着周期からASRC用の位相増分を生成する推定器
SampleRateTrackerで平滑化した入力サンプル周期から、システムクロックあたりの入力位相進行量を求める。
phase_incrementはQ0.PHASE_WIDTHで、値が1.0未満となるサンプルレート比で使用する。
RATE_MULTIPLIER_SHIFTを2にすると、4倍オーバーサンプリング経路用の位相増分を生成できる。
除算は逐次演算で行い、入力サンプル周期より短いDIVIDEND_WIDTHクロックで完了する必要がある。
商は最も近い整数へ四捨五入してphase_incrementへ出力する。
除算中に新しい周期を観測した場合は最新の周期を保持し、現在の除算完了後に再計算する。
TIMEOUT_PERIODを有効にすると、入力停止時は古い位相増分を無効化して新しい到着列を再測定する。
Parameters
| PERIOD_WIDTH | u32 | サンプル周期の整数部ビット幅 |
|---|---|---|
| PERIOD_FRACTION | u32 | 平滑化周期の小数部ビット幅 |
| PHASE_WIDTH | u32 | 位相増分の小数部ビット幅 |
| FILTER_SHIFT | u32 | 周期平滑化IIRの右シフト量 |
| LOCK_COUNT | u32 | 位相増分の計算を始める測定回数 |
| RATE_MULTIPLIER_SHIFT | u32 | 位相増分に掛ける2のべき乗倍率のシフト量 |
| STEP_THRESHOLD_SHIFT | u32 | 即時追従する周期差の比率を表す右シフト量、0で無効 |
| TIMEOUT_PERIOD | u32 | 入力停止とみなすクロック数、0で無効 |
Ports
| clk | input | clock | システムクロック | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| rst | input | reset | 同期リセット | ||||||||
| sample_valid | input | bbool | 入力サンプル到着パルス | ||||||||
| phase_increment | output | logic| ASRC用Q0位相増分
|
locked |
output |
bbool |
位相増分が有効
|
range_error |
output |
bbool |
位相増分が1.0以上となる設定または入力を検出
|
|