SBAA497B May   2021  – April 2022 PCM3120-Q1 , PCM5120-Q1 , PCM6120-Q1 , TLV320ADC3120 , TLV320ADC5120 , TLV320ADC6120

 

  1.   Trademarks
  2. 1Introduction
  3. 2Infinite Impulse Response Filters
    1. 2.1 Digital Biquad Filter
  4. 3TLV320ADCx120 and PCMx120-Q1 Digital Biquad Filters
    1. 3.1 Filter Design Using PurePath Console
      1. 3.1.1 Example Generating Programmable Biquad Coefficients Using PurePath Console
    2. 3.2 How to Generate N0, N1, N2, D1, and D2 Coefficients with a Digital Filter Design Package
    3. 3.3 Avoid Overflow Conditions
    4. 3.4 Digital Biquad Filter Allocation to Output Channel
    5. 3.5 Programmable Coefficient Registers for Digital Biquad Filters 1–6
    6. 3.6 Programmable Coefficient Registers for Digital Biquad Filters 7–12
  5. 4How to Program the Digital Biquad Filters on the TLV320ADCx120 and PCMx120-Q1
  6. 5Typical Audio Applications for Biquad Filtering
    1. 5.1 Parametric Equalizers
  7. 6Crossover Networks
  8. 7Voice Boost
  9. 8Bass Boost
  10. 9Removing 50 Hz–60 Hz Hum With Notch Filters
  11.   A Digital Filter Design Techniques
    1.     A.A Analog Filters
  12.   B Related Documentation
  13.   B Revision History

Programmable Coefficient Registers for Digital Biquad Filters 1–6

Table 3-5 shows the programmable coefficient registers for the biquad filters 1 through 6 in Page 2 of the TLV320ADCx120 and PCMx120-Q1 registers.

Table 3-5 Page 0x02 Programmable Coefficient Registers for Biquad Filters 1–6
PAGE 0x2 ADDRESSREGISTERRESET VALUEBIQUAD FILTERCOEFFICIENTDESCRIPTION
0x00PAGE[7:0]0x00Device Page Register
0x08BQ1_N0_BYT1[7:0]0x7FProgrammable Biquad 1N0Biquad 1, N0 coefficient byte[31:24]
0x09BQ1_N0_BYT2[7:0]0xFFbiquad 1, N0 coefficient byte[23:16]
0x0ABQ1_N0_BYT3[7:0]0xFFbiquad 1, N0 coefficient byte[15:8]
0x0BBQ1_N0_BYT4[7:0]0xFFbiquad 1, N0 coefficient byte[7:0]
0x0CBQ1_N1_BYT1[7:0]0x00N1biquad 1, N1 coefficient byte[31:24]
0x0DBQ1_N1_BYT2[7:0]0x00Biquad 1, N1 coefficient byte[23:16]
0x0EBQ1_N1_BYT3[7:0]0x00Biquad 1, N1 coefficient byte[15:8]
0x0FBQ1_N1_BYT4[7:0]0x00Biquad 1, N1 coefficient byte[7:0]
0x10BQ1_N2_BYT1[7:0]0x00N2Biquad 1, N2 coefficient byte[31:24]
0x11BQ1_N2_BYT2[7:0]0x00Biquad 1, N2 coefficient byte[23:16]
0x12BQ1_N2_BYT3[7:0]0x00Biquad 1, N2 coefficient byte[15:8]
0x13BQ1_N2_BYT4[7:0]0x00Biquad 1, N2 coefficient byte[7:0]
0x14BQ1_D1_BYT1[7:0]0x00D1Biquad 1, D1 coefficient byte[31:24]
0x15BQ1_D1_BYT2[7:0]0x00Biquad 1, D1 coefficient byte[23:16]
0x16BQ1_D1_BYT3[7:0]0x00Biquad 1, D1 coefficient byte[15:8]
0x17BQ1_D1_BYT4[7:0]0x00Biquad 1, D1 coefficient byte[7:0]
0x18BQ1_D2_BYT1[7:0]0x00D2Biquad 1, D2 coefficient byte[31:24]
0x19BQ1_D2_BYT2[7:0]0x00Biquad 1, D2 coefficient byte[23:16]
0x1ABQ1_D2_BYT3[7:0]0x00Biquad 1, D2 coefficient byte[15:8]
0x1BBQ1_D2_BYT4[7:0]0x00Biquad 1, D2 coefficient byte[7:0]
0x1CBQ2_N0_BYT1[7:0]0x7FProgrammable Biquad 2N0Biquad 2, N0 coefficient byte[31:24]
0x1DBQ2_N0_BYT2[7:0]0xFFBiquad 2, N0 coefficient byte[23:16]
0x1EBQ2_N0_BYT3[7:0]0xFFBiquad 2, N0 coefficient byte[15:8]
0x1FBQ2_N0_BYT4[7:0]0xFFBiquad 2, N0 coefficient byte[7:0]
0x20BQ2_N1_BYT1[7:0]0x00N1Biquad 2, N1 coefficient byte[31:24]
0x21BQ2_N1_BYT2[7:0]0x00Biquad 2, N1 coefficient byte[23:16]
0x22BQ2_N1_BYT3[7:0]0x00Biquad 2, N1 coefficient byte[15:8]
0x23BQ2_N1_BYT4[7:0]0x00Biquad 2, N1 coefficient byte[7:0]
0x24BQ2_N2_BYT1[7:0]0x00N2Biquad 2, N2 coefficient byte[31:24]
0x25BQ2_N2_BYT2[7:0]0x00Biquad 2, N2 coefficient byte[23:16]
0x26BQ2_N2_BYT3[7:0]0x00Biquad 2, N2 coefficient byte[15:8]
0x27BQ2_N2_BYT4[7:0]0x00Biquad 2, N2 coefficient byte[7:0]
0x28BQ2_D1_BYT1[7:0]0x00D1Biquad 2, D1 coefficient byte[31:24]
0x29BQ2_D1_BYT2[7:0]0x00Biquad 2, D1 coefficient byte[23:16]
0x2ABQ2_D1_BYT3[7:0]0x00Biquad 2, D1 coefficient byte[15:8]
0x2BBQ2_D1_BYT4[7:0]0x00Biquad 2, D1 coefficient byte[7:0]
0x2CBQ2_D2_BYT1[7:0]0x00D2Biquad 2, D2 coefficient byte[31:24]
0x2DBQ2_D2_BYT2[7:0]0x00Biquad 2, D2 coefficient byte[23:16]
0x2EBQ2_D2_BYT3[7:0]0x00Biquad 2, D2 coefficient byte[15:8]
0x2FBQ2_D2_BYT4[7:0]0x00Biquad 2, D2 coefficient byte[7:0]
0x30BQ3_N0_BYT1[7:0]0x7FProgrammable Biquad 3N0Biquad 3, N0 coefficient byte[31:24]
0x31BQ3_N0_BYT2[7:0]0xFFBiquad 3, N0 coefficient byte[23:16]
0x32BQ3_N0_BYT3[7:0]0xFFBiquad 3, N0 coefficient byte[15:8]
0x33BQ3_N0_BYT4[7:0]0xFFBiquad 3, N0 coefficient byte[7:0]
0x34BQ3_N1_BYT1[7:0]0x00N1Biquad 3, N1 coefficient byte[31:24]
0x35BQ3_N1_BYT2[7:0]0x00Biquad 3, N1 coefficient byte[23:16]
0x36BQ3_N1_BYT3[7:0]0x00Biquad 3, N1 coefficient byte[15:8]
0x37BQ3_N1_BYT4[7:0]0x00Biquad 3, N1 coefficient byte[7:0]
0x38BQ3_N2_BYT1[7:0]0x00N2Biquad 3, N2 coefficient byte[31:24]
0x39BQ3_N2_BYT2[7:0]0x00Biquad 3, N2 coefficient byte[23:16]
0x3ABQ3_N2_BYT3[7:0]0x00Biquad 3, N2 coefficient byte[15:8]
0x3BBQ3_N2_BYT4[7:0]0x00Biquad 3, N2 coefficient byte[7:0]
0x3CBQ3_D1_BYT1[7:0]0x00D1Biquad 3, D1 coefficient byte[31:24]
0x3DBQ3_D1_BYT2[7:0]0x00Biquad 3, D1 coefficient byte[23:16]
0x3EBQ3_D1_BYT3[7:0]0x00Biquad 3, D1 coefficient byte[15:8]
0x3FBQ3_D1_BYT4[7:0]0x00Biquad 3, D1 coefficient byte[7:0]
0x40BQ3_D2_BYT1[7:0]0x00D2Biquad 3, D2 coefficient byte[31:24]
0x41BQ3_D2_BYT2[7:0]0x00Biquad 3, D2 coefficient byte[23:16]
0x42BQ3_D2_BYT3[7:0]0x00Biquad 3, D2 coefficient byte[15:8]
0x43BQ3_D2_BYT4[7:0]0x00Biquad 3, D2 coefficient byte[7:0]
0x44BQ4_N0_BYT1[7:0]0x7FProgrammable Biquad 4N0Biquad 4, N0 coefficient byte[31:24]
0x45BQ4_N0_BYT2[7:0]0xFFBiquad 4, N0 coefficient byte[23:16]
0x46BQ4_N0_BYT3[7:0]0xFFBiquad 4, N0 coefficient byte[15:8]
0x47BQ4_N0_BYT4[7:0]0xFFBiquad 4, N0 coefficient byte[7:0]
0x48BQ4_N1_BYT1[7:0]0x00N1Biquad 4, N1 coefficient byte[31:24]
0x49BQ4_N1_BYT2[7:0]0x00Biquad 4, N1 coefficient byte[23:16]
0x4ABQ4_N1_BYT3[7:0]0x00Biquad 4, N1 coefficient byte[15:8]
0x4BBQ4_N1_BYT4[7:0]0x00Biquad 4, N1 coefficient byte[7:0]
0x4CBQ4_N2_BYT1[7:0]0x00N2Biquad 4, N2 coefficient byte[31:24]
0x4DBQ4_N2_BYT2[7:0]0x00Biquad 4, N2 coefficient byte[23:16]
0x4EBQ4_N2_BYT3[7:0]0x00Biquad 4, N2 coefficient byte[15:8]
0x4FBQ4_N2_BYT4[7:0]0x00Biquad 4, N2 coefficient byte[7:0]
0x50BQ4_D1_BYT1[7:0]0x00D1Biquad 4, D1 coefficient byte[31:24]
0x51BQ4_D1_BYT2[7:0]0x00Biquad 4, D1 coefficient byte[23:16]
0x52BQ4_D1_BYT3[7:0]0x00Biquad 4, D1 coefficient byte[15:8]
0x53BQ4_D1_BYT4[7:0]0x00Biquad 4, D1 coefficient byte[7:0]
0x54BQ4_D2_BYT1[7:0]0x00D2Biquad 4, D2 coefficient byte[31:24]
0x55BQ4_D2_BYT2[7:0]0x00Biquad 4, D2 coefficient byte[23:16]
0x56BQ4_D2_BYT3[7:0]0x00Biquad 4, D2 coefficient byte[15:8]
0x57BQ4_D2_BYT4[7:0]0x00Biquad 4, D2 coefficient byte[7:0]
0x58BQ5_N0_BYT1[7:0]0x7FProgrammable Biquad 5N0Biquad 5, N0 coefficient byte[31:24]
0x59BQ5_N0_BYT2[7:0]0xFFBiquad 5, N0 coefficient byte[23:16]
0x5ABQ5_N0_BYT3[7:0]0xFFBiquad 5, N0 coefficient byte[15:8]
0x5BBQ5_N0_BYT4[7:0]0xFFBiquad 5, N0 coefficient byte[7:0]
0x5CBQ5_N1_BYT1[7:0]0x00N1Biquad 5, N1 coefficient byte[31:24]
0x5DBQ5_N1_BYT2[7:0]0x00Biquad 5, N1 coefficient byte[23:16]
0x5EBQ5_N1_BYT3[7:0]0x00Biquad 5, N1 coefficient byte[15:8]
0x5FBQ5_N1_BYT4[7:0]0x00Biquad 5, N1 coefficient byte[7:0]
0x60BQ5_N2_BYT1[7:0]0x00N2Biquad 5, N2 coefficient byte[31:24]
0x61BQ5_N2_BYT2[7:0]0x00Biquad 5, N2 coefficient byte[23:16]
0x62BQ5_N2_BYT3[7:0]0x00Biquad 5, N2 coefficient byte[15:8]
0x63BQ5_N2_BYT4[7:0]0x00Biquad 5, N2 coefficient byte[7:0]
0x64BQ5_D1_BYT1[7:0]0x00D1Biquad 5, D1 coefficient byte[31:24]
0x65BQ5_D1_BYT2[7:0]0x00Biquad 5, D1 coefficient byte[23:16]
0x66BQ5_D1_BYT3[7:0]0x00Biquad 5, D1 coefficient byte[15:8]
0x67BQ5_D1_BYT4[7:0]0x00Biquad 5, D1 coefficient byte[7:0]
0x68BQ5_D2_BYT1[7:0]0x00D2Biquad 5, D2 coefficient byte[31:24]
0x69BQ5_D2_BYT2[7:0]0x00Biquad 5, D2 coefficient byte[23:16]
0x6ABQ5_D2_BYT3[7:0]0x00Biquad 5, D2 coefficient byte[15:8]
0x6BBQ5_D2_BYT4[7:0]0x00Biquad 5, D2 coefficient byte[7:0]
0x6CBQ6_N0_BYT1[7:0]0x7FProgrammable Biquad 6N0Biquad 6, N0 coefficient byte[31:24]
0x6DBQ6_N0_BYT2[7:0]0xFFBiquad 6, N0 coefficient byte[23:16]
0x6EBQ6_N0_BYT3[7:0]0xFFBiquad 6, N0 coefficient byte[15:8]
0x6FBQ6_N0_BYT4[7:0]0xFFBiquad 6, N0 coefficient byte[7:0]
0x70BQ6_N1_BYT1[7:0]0x00N1Biquad 6, N1 coefficient byte[31:24]
0x71BQ6_N1_BYT2[7:0]0x00Biquad 6, N1 coefficient byte[23:16]
0x72BQ6_N1_BYT3[7:0]0x00Biquad 6, N1 coefficient byte[15:8]
0x73BQ6_N1_BYT4[7:0]0x00Biquad 6, N1 coefficient byte[7:0]
0x74BQ6_N2_BYT1[7:0]0x00N2Biquad 6, N2 coefficient byte[31:24]
0x75BQ6_N2_BYT2[7:0]0x00Biquad 6, N2 coefficient byte[23:16]
0x76BQ6_N2_BYT3[7:0]0x00Biquad 6, N2 coefficient byte[15:8]
0x77BQ6_N2_BYT4[7:0]0x00Biquad 6, N2 coefficient byte[7:0]
0x78BQ6_D1_BYT1[7:0]0x00D1Biquad 6, D1 coefficient byte[31:24]
0x79BQ6_D1_BYT2[7:0]0x00Biquad 6, D1 coefficient byte[23:16]
0x7ABQ6_D1_BYT3[7:0]0x00Biquad 6, D1 coefficient byte[15:8]
0x7BBQ6_D1_BYT4[7:0]0x00Biquad 6, D1 coefficient byte[7:0]
0x7CBQ6_D2_BYT1[7:0]0x00D2Biquad 6, D2 coefficient byte[31:24]
0x7DBQ6_D2_BYT2[7:0]0x00Biquad 6, D2 coefficient byte[23:16]
0x7EBQ6_D2_BYT3[7:0]0x00Biquad 6, D2 coefficient byte[15:8]
0x7FBQ6_D2_BYT4[7:0]0x00Biquad 6, D2 coefficient byte[7:0]