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

TwoXHalfbandAsrc

1段のhalfband補間と連続線形ASRCを接続した1ch 2倍オーバーサンプラ。

phase_incrementは入力サンプルレートを基準にしたQ0.PHASE_WIDTH値で受け取る。 halfbandで入力を2倍へ補間してからFIFOへ格納するため、内部のNCOには位相増分を 2倍して渡す。呼び出し側の推定器は48/44.1kHzなど元のADATレートの増分をそのまま 接続できる。

input → Halfband 2x (COEFFICIENT_SET=1)
      → 2-sample burst → FIFO → continuous linear ASRC → output

HBFはナイキスト付近のスペクトルイメージ成分を抑えるため、短いset2ではなくset1を使う。 STARTUP_LEVELまでFIFOを満たしてから出力を開始し、入力欠落はunderflowへ stickyに記録する。

Parameters


SAMPLE_WIDTH u32 入出力サンプルの符号付きビット幅
PHASE_WIDTH u32 入力レート基準の位相増分幅
INPUT_DEPTH u32 線形ASRC FIFOの深さ

Ports


clk input clock システムクロック
rst input reset リセット
input_valid input bbool 入力サンプル有効
input_ready output bbool 入力受理可能
input_sample input signedlogic 入力サンプル
phase_increment input logic 入力レート基準のQ0位相増分
output_active output bbool 連続出力が有効
output_sample output signedlogic 補間後の出力サンプル
input_level output logic<$clog2(INPUT_DEPTH+1)> ASRC FIFOのワード数
underflow output bbool 入力不足のstickyフラグ