Veryl registryAkiyukiOkayasu/gndless-sample-rate-conversion-veryl · gndless_sample_rate_conversionSource ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

PhaseIncrementEstimator

サンプル到着周期からASRC用の位相増分を生成する推定器

SampleRateTrackerで平滑化した入力サンプル周期から、システムクロックあたりの入力位相進行量を求める。 phase_incrementはQ0.PHASE_WIDTHで、値が1.0未満となるサンプルレート比で使用する。 RATE_MULTIPLIER_SHIFTを2にすると、4倍オーバーサンプリング経路用の位相増分を生成できる。 除算は逐次演算で行い、入力サンプル周期より短いDIVIDEND_WIDTHクロックで完了する必要がある。 除算中に新しい周期を観測した場合は最新の周期を保持し、現在の除算完了後に再計算する。 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以上となる設定または入力を検出