默認情況(復位狀態)下,雙二階濾波器配置為全通濾波器。在這種情況下,濾波器系數(如方程式 3 中所述)具有以下值:
- N0 = 231 (b0 = 1)
- N1、N2、D1、D2 = 0(b1、b2、a1、a2 = 0)
請按照以下步驟,使用 MATLAB? 等數字濾波器設計套件生成 IIR 雙二階系數:
- 使用濾波器設計函數(如 MATLAB butter 函數)計算系數 [b0、b1、b2、a0、a1、a2],以便設計系統運行頻率為 48kHz、截止頻率為 1kHz 的巴特沃斯濾波器。請注意,將 MATLAB 系數歸一化后,a0 = 1。
[b, a] = butter( 2, 1000 / (48000/2) )
- 將這些系數轉換為 [N0、N1、N2、D1、D2],如下所示:
- N0 = b0
- N1 = b1/2
- N2 = b2
- D1 = -a1/2
- D2 = -a2
- 通過乘以 231,將系數轉換為 Q31。
- 四舍五入到最接近的整數,并轉換為 32 位二進制補碼十六進制格式:
- 正整數轉換為十六進制格式
- 對于負整數,先取系數的絕對值,再轉換為二進制,取反,加一,然后轉換為十六進制。例如,要以 32 位二進制補碼十六進制格式表示 -135:
- -135 的絕對值用二進制表示為 0000 0000 0000 0000 0000 0000 1000 0111(用十六進制表示為 0x00000087)。
- 二進制取反的結果用二進制表示為 1111 1111 1111 1111 1111 1111 0111 1000(用十六進制表示為 0xFFFFFF78)。
- 向其添加 1 后的結果用二進制表示為 1111 1111 1111 1111 1111 1111 0111 1001(用十六進制表示為 0xFFFFFF79)。因此,-135 的 32 位二進制補碼十六進制表示形式為 0xFFFFFF79。