<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">
    ojapps
   </journal-id>
   <journal-title-group>
    <journal-title>
     Open Journal of Applied Sciences
    </journal-title>
   </journal-title-group>
   <issn pub-type="epub">
    2165-3917
   </issn>
   <issn publication-format="print">
    2165-3925
   </issn>
   <publisher>
    <publisher-name>
     Scientific Research Publishing
    </publisher-name>
   </publisher>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="doi">
    10.4236/ojapps.2025.157140
   </article-id>
   <article-id pub-id-type="publisher-id">
    ojapps-144196
   </article-id>
   <article-categories>
    <subj-group subj-group-type="heading">
     <subject>
      Articles
     </subject>
    </subj-group>
    <subj-group subj-group-type="Discipline-v2">
     <subject>
      Biomedical 
     </subject>
     <subject>
       Life Sciences, Chemistry 
     </subject>
     <subject>
       Materials Science, Computer Science 
     </subject>
     <subject>
       Communications, Engineering, Physics 
     </subject>
     <subject>
       Mathematics
     </subject>
    </subj-group>
   </article-categories>
   <title-group>
    Design Algorithm of FIR Filter Based on Coefficient Compression
   </title-group>
   <contrib-group>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Qingcao
      </surname>
      <given-names>
       Huang
      </given-names>
     </name>
    </contrib>
   </contrib-group> 
   <aff id="affnull">
    <addr-line>
     aCollege of Rail Transit Locomotive and Rolling Stock, Hunan Railway Professional Technology College, Zhuzhou, China
    </addr-line> 
   </aff> 
   <pub-date pub-type="epub">
    <day>
     07
    </day> 
    <month>
     07
    </month>
    <year>
     2025
    </year>
   </pub-date> 
   <volume>
    15
   </volume> 
   <issue>
    07
   </issue>
   <fpage>
    2128
   </fpage>
   <lpage>
    2135
   </lpage>
   <history>
    <date date-type="received">
     <day>
      24,
     </day>
     <month>
      June
     </month>
     <year>
      2025
     </year>
    </date>
    <date date-type="published">
     <day>
      20,
     </day>
     <month>
      June
     </month>
     <year>
      2025
     </year> 
    </date> 
    <date date-type="accepted">
     <day>
      20,
     </day>
     <month>
      July
     </month>
     <year>
      2025
     </year> 
    </date>
   </history>
   <permissions>
    <copyright-statement>
     © Copyright 2014 by authors and Scientific Research Publishing Inc. 
    </copyright-statement>
    <copyright-year>
     2014
    </copyright-year>
    <license>
     <license-p>
      This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
     </license-p>
    </license>
   </permissions>
   <abstract>
    This article proposes a new algorithm based on coefficient compression, which can be used for the design and implementation of various FIR filters, to address the problems caused by the limited quantization word length of traditional high-order filters. It addresses the performance degradation problem caused by quantization bit width in FIR, based on coefficient compression and modifications to the accumulator of FIR, which can improve the passband and stopband performance of FIR. And its serial implementation structure was proposed, and the algorithm’s degree of simplification in circuit implementation was verified through experiments.
   </abstract>
   <kwd-group> 
    <kwd>
     FIR Filter
    </kwd> 
    <kwd>
      Compensation Filter
    </kwd> 
    <kwd>
      Amplitude Response
    </kwd> 
    <kwd>
      Stop-Band Attenuation
    </kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <sec id="s1">
   <title>1. Introduction</title>
   <p>The application of Finite Impulse Response (FIR) filters in various digital systems has long been a challenging problem <xref ref-type="bibr" rid="scirp.144196-1">
     [1]
    </xref> <xref ref-type="bibr" rid="scirp.144196-2">
     [2]
    </xref>. The proposal of Parks-Mcclellan and other ripple design algorithms based on Remez exchange theory has made it possible to efficiently design high-order FIR filters through computer-aided design <xref ref-type="bibr" rid="scirp.144196-2">
     [2]
    </xref>-<xref ref-type="bibr" rid="scirp.144196-5">
     [5]
    </xref>. In the specific implementation process of FIR filters <xref ref-type="bibr" rid="scirp.144196-6">
     [6]
    </xref> <xref ref-type="bibr" rid="scirp.144196-7">
     [7]
    </xref>, some problems will be encountered <xref ref-type="bibr" rid="scirp.144196-8">
     [8]
    </xref> <xref ref-type="bibr" rid="scirp.144196-9">
     [9]
    </xref>. The FIR filter structure of the most common coefficient pre storage architecture is shown in <xref ref-type="fig" rid="fig1">
     Figure 1
    </xref> <xref ref-type="bibr" rid="scirp.144196-1">
     [1]
    </xref> <xref ref-type="bibr" rid="scirp.144196-2">
     [2]
    </xref>.</p>
   <p>Many people have made efforts to design and improve high-performance FIR filters, such as decomposing the transfer function and implementing it with multi-stage filters; the problem of using floating-point filters to calculate coefficients; using a sharpening filter to obtain better passband stopband response, and utilizing a low sensitivity filter to reduce the impact of bit width on the passband; implementing a filter using a completely multiplier free approach.</p>
   <fig id="fig1" position="float">
    <label>Figure 1</label>
    <caption>
     <title>Figure 1. Structure of direct FIR filter.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId16.jpeg?20250723025312" />
   </fig>
  </sec><sec id="s2">
   <title>2. Methods and Filter Expression</title>
   <p>Due to the linear phase characteristics of FIR filters, their coefficients are symmetric about the center. We can implement this using a folded filter structure, where the corresponding units of the lateral delay are added first and then multiplied by the coefficients. This can reduce the number of multiplications by half, as shown in <xref ref-type="fig" rid="fig2">
     Figure 2
    </xref>.</p>
   <fig id="fig2" position="float">
    <label>Figure 2</label>
    <caption>
     <title>Figure 2. Folding structure of FIR filter.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId17.jpeg?20250723025313" />
   </fig>
   <p>For traditional quantification methods, their folded structure can be expressed as:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        y 
      </mi> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         n 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mstyle displaystyle="true"> 
       <msubsup> 
        <mo>
          ∑ 
        </mo> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           = 
         </mo> 
         <mfrac> 
          <mrow> 
           <mi>
             N 
           </mi> 
           <mo>
             + 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
          <mn>
            2 
          </mn> 
         </mfrac> 
        </mrow> 
        <mi>
          N 
        </mi> 
       </msubsup> 
       <mrow> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mrow> 
          <mi>
            x 
          </mi> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              n 
            </mi> 
            <mo>
              − 
            </mo> 
            <mi>
              N 
            </mi> 
            <mo>
              + 
            </mo> 
            <mi>
              k 
            </mi> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            + 
          </mo> 
          <mi>
            x 
          </mi> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              n 
            </mi> 
            <mo>
              − 
            </mo> 
            <mi>
              k 
            </mi> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          ⋅ 
        </mo> 
        <mtext>
          round 
        </mtext> 
        <mrow> 
         <mrow> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              h 
            </mi> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mi>
               k 
             </mi> 
             <mo>
               ] 
             </mo> 
            </mrow> 
            <mo>
              ⋅ 
            </mo> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mtext>
                BW 
              </mtext> 
             </mrow> 
            </msup> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
         <mo>
           / 
         </mo> 
         <mrow> 
          <msup> 
           <mn>
             2 
           </mn> 
           <mrow> 
            <mtext>
              BW 
            </mtext> 
           </mrow> 
          </msup> 
         </mrow> 
        </mrow> 
       </mrow> 
      </mstyle> 
     </mrow> 
    </math> (1)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
       N 
     </mi> 
    </math> is an odd number.</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mtable columnalign="left"> 
      <mtr> 
       <mtd> 
        <mi>
          y 
        </mi> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mi>
           n 
         </mi> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          = 
        </mo> 
        <mi>
          x 
        </mi> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            − 
          </mo> 
          <mfrac> 
           <mi>
             N 
           </mi> 
           <mn>
             2 
           </mn> 
          </mfrac> 
         </mrow> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          ⋅ 
        </mo> 
        <mtext>
          round 
        </mtext> 
        <mrow> 
         <mrow> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mtext>
                BW 
              </mtext> 
             </mrow> 
            </msup> 
            <mo>
              ⋅ 
            </mo> 
            <mi>
              h 
            </mi> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <mfrac> 
               <mi>
                 N 
               </mi> 
               <mn>
                 2 
               </mn> 
              </mfrac> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
         <mo>
           / 
         </mo> 
         <mrow> 
          <msup> 
           <mn>
             2 
           </mn> 
           <mrow> 
            <mtext>
              BW 
            </mtext> 
           </mrow> 
          </msup> 
         </mrow> 
        </mrow> 
       </mtd> 
      </mtr> 
      <mtr> 
       <mtd> 
        <mtext> 
        </mtext> 
        <mo>
          + 
        </mo> 
        <mstyle displaystyle="true"> 
         <msubsup> 
          <mo>
            ∑ 
          </mo> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             = 
           </mo> 
           <mfrac> 
            <mrow> 
             <mi>
               N 
             </mi> 
             <mo>
               + 
             </mo> 
             <mn>
               1 
             </mn> 
            </mrow> 
            <mn>
              2 
            </mn> 
           </mfrac> 
          </mrow> 
          <mi>
            N 
          </mi> 
         </msubsup> 
         <mrow> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              x 
            </mi> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <mi>
                n 
              </mi> 
              <mo>
                − 
              </mo> 
              <mi>
                N 
              </mi> 
              <mo>
                + 
              </mo> 
              <mi>
                k 
              </mi> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            ⋅ 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mrow> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <msup> 
               <mn>
                 2 
               </mn> 
               <mrow> 
                <mtext>
                  BW 
                </mtext> 
               </mrow> 
              </msup> 
              <mo>
                ⋅ 
              </mo> 
              <mi>
                h 
              </mi> 
              <mrow> 
               <mo>
                 [ 
               </mo> 
               <mi>
                 k 
               </mi> 
               <mo>
                 ] 
               </mo> 
              </mrow> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             / 
           </mo> 
           <mrow> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mtext>
                BW 
              </mtext> 
             </mrow> 
            </msup> 
           </mrow> 
          </mrow> 
         </mrow> 
        </mstyle> 
       </mtd> 
      </mtr> 
     </mtable> 
    </math> (2)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
       N 
     </mi> 
    </math> is an even number.</p>
   <p>where 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
       N 
     </mi> 
    </math> is the order of the filter, 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        h 
      </mi> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         k 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math> is the ideal design coefficient value, and the round [] operation takes the closest integer, BW is the design coefficient quantization bit width. When using non equal width quantization, the output is represented as:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        y 
      </mi> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         n 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mstyle displaystyle="true"> 
       <msubsup> 
        <mo>
          ∑ 
        </mo> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           = 
         </mo> 
         <mfrac> 
          <mrow> 
           <mi>
             N 
           </mi> 
           <mo>
             + 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
          <mn>
            2 
          </mn> 
         </mfrac> 
        </mrow> 
        <mi>
          N 
        </mi> 
       </msubsup> 
       <mrow> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mrow> 
          <mi>
            x 
          </mi> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              n 
            </mi> 
            <mo>
              − 
            </mo> 
            <mi>
              N 
            </mi> 
            <mo>
              + 
            </mo> 
            <mi>
              k 
            </mi> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            + 
          </mo> 
          <mi>
            x 
          </mi> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              n 
            </mi> 
            <mo>
              − 
            </mo> 
            <mi>
              k 
            </mi> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          ⋅ 
        </mo> 
        <mtext>
          round 
        </mtext> 
        <mrow> 
         <mrow> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mtext>
                bw 
              </mtext> 
              <mrow> 
               <mo>
                 [ 
               </mo> 
               <mi>
                 k 
               </mi> 
               <mo>
                 ] 
               </mo> 
              </mrow> 
             </mrow> 
            </msup> 
            <mo>
              ⋅ 
            </mo> 
            <mi>
              h 
            </mi> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mi>
               k 
             </mi> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
         <mo>
           / 
         </mo> 
         <mrow> 
          <msup> 
           <mn>
             2 
           </mn> 
           <mrow> 
            <mtext>
              bw 
            </mtext> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mi>
               k 
             </mi> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
          </msup> 
         </mrow> 
        </mrow> 
       </mrow> 
      </mstyle> 
     </mrow> 
    </math> (3)</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mtable columnalign="left"> 
      <mtr> 
       <mtd> 
        <mi>
          y 
        </mi> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mi>
           n 
         </mi> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          = 
        </mo> 
        <mi>
          x 
        </mi> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            − 
          </mo> 
          <mfrac> 
           <mi>
             N 
           </mi> 
           <mn>
             2 
           </mn> 
          </mfrac> 
         </mrow> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          ⋅ 
        </mo> 
        <mtext>
          round 
        </mtext> 
        <mrow> 
         <mrow> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mtext>
                bw 
              </mtext> 
              <mrow> 
               <mo>
                 [ 
               </mo> 
               <mrow> 
                <mfrac> 
                 <mi>
                   N 
                 </mi> 
                 <mn>
                   2 
                 </mn> 
                </mfrac> 
               </mrow> 
               <mo>
                 ] 
               </mo> 
              </mrow> 
             </mrow> 
            </msup> 
            <mo>
              ⋅ 
            </mo> 
            <mi>
              h 
            </mi> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <mfrac> 
               <mi>
                 N 
               </mi> 
               <mn>
                 2 
               </mn> 
              </mfrac> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
         <mo>
           / 
         </mo> 
         <mrow> 
          <msup> 
           <mn>
             2 
           </mn> 
           <mrow> 
            <mtext>
              bw 
            </mtext> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <mfrac> 
               <mi>
                 N 
               </mi> 
               <mn>
                 2 
               </mn> 
              </mfrac> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
          </msup> 
         </mrow> 
        </mrow> 
       </mtd> 
      </mtr> 
      <mtr> 
       <mtd> 
        <mtext> 
        </mtext> 
        <mo>
          + 
        </mo> 
        <mstyle displaystyle="true"> 
         <msubsup> 
          <mo>
            ∑ 
          </mo> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             = 
           </mo> 
           <mfrac> 
            <mrow> 
             <mi>
               N 
             </mi> 
             <mo>
               + 
             </mo> 
             <mn>
               1 
             </mn> 
            </mrow> 
            <mn>
              2 
            </mn> 
           </mfrac> 
          </mrow> 
          <mi>
            N 
          </mi> 
         </msubsup> 
         <mrow> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              x 
            </mi> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <mi>
                n 
              </mi> 
              <mo>
                − 
              </mo> 
              <mi>
                N 
              </mi> 
              <mo>
                + 
              </mo> 
              <mi>
                k 
              </mi> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            ⋅ 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mrow> 
            <mrow> 
             <mo>
               [ 
             </mo> 
             <mrow> 
              <msup> 
               <mn>
                 2 
               </mn> 
               <mrow> 
                <mtext>
                  bw 
                </mtext> 
                <mrow> 
                 <mo>
                   [ 
                 </mo> 
                 <mi>
                   k 
                 </mi> 
                 <mo>
                   ] 
                 </mo> 
                </mrow> 
               </mrow> 
              </msup> 
              <mo>
                ⋅ 
              </mo> 
              <mi>
                h 
              </mi> 
              <mrow> 
               <mo>
                 [ 
               </mo> 
               <mi>
                 k 
               </mi> 
               <mo>
                 ] 
               </mo> 
              </mrow> 
             </mrow> 
             <mo>
               ] 
             </mo> 
            </mrow> 
           </mrow> 
           <mo>
             / 
           </mo> 
           <mrow> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mtext>
                bw 
              </mtext> 
              <mrow> 
               <mo>
                 [ 
               </mo> 
               <mi>
                 k 
               </mi> 
               <mo>
                 ] 
               </mo> 
              </mrow> 
             </mrow> 
            </msup> 
           </mrow> 
          </mrow> 
         </mrow> 
        </mstyle> 
       </mtd> 
      </mtr> 
     </mtable> 
    </math> (4)</p>
   <p>Among them, 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         k 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math> is the equivalent quantization bit width of each coefficient. For 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         k 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math>:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mo>
        ∀ 
      </mo> 
      <mi>
        i 
      </mi> 
      <mo>
        ∈ 
      </mo> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <mi>
          k 
        </mi> 
        <mo>
          , 
        </mo> 
        <mi>
          N 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        , 
      </mo> 
      <mtext>
          
      </mtext> 
      <mo>
        ∃ 
      </mo> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         i 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        ≤ 
      </mo> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <mi>
          i 
        </mi> 
        <mo>
          + 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        , 
      </mo> 
      <mtext>
          
      </mtext> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         i 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        ∈ 
      </mo> 
      <mi>
        N 
      </mi> 
     </mrow> 
    </math> (5)</p>
   <p>The accumulation method is shown in <xref ref-type="fig" rid="fig3">
     Figure 3
    </xref>. The serial implementation structure is shown in <xref ref-type="fig" rid="fig4">
     Figure 4
    </xref>.</p>
   <fig id="fig3" position="float">
    <label>Figure 3</label>
    <caption>
     <title>Figure 3. Accumulator modification structure.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId40.jpeg?20250723025313" />
   </fig>
   <fig id="fig4" position="float">
    <label>Figure 4</label>
    <caption>
     <title>Figure 4. Serial implementation structure.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId41.jpeg?20250723025313" />
   </fig>
   <p>In this algorithm, due to the different equivalent quantization bit widths of the coefficients in FIR filters with coefficient compression, their quantization methods differ from traditional methods. The comparison of methods is also different. First, shift all coefficients to the power of 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msup> 
       <mn>
         2 
       </mn> 
       <mi>
         M 
       </mi> 
      </msup> 
     </mrow> 
    </math>:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <msup> 
        <mi>
          b 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
       <mi>
         i 
       </mi> 
      </msub> 
      <mo>
        = 
      </mo> 
      <msub> 
       <mi>
         b 
       </mi> 
       <mi>
         i 
       </mi> 
      </msub> 
      <mo>
        ⋅ 
      </mo> 
      <msup> 
       <mn>
         2 
       </mn> 
       <mi>
         M 
       </mi> 
      </msup> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mi>
          i 
        </mi> 
        <mo>
          ∈ 
        </mo> 
        <mrow> 
         <mo>
           [ 
         </mo> 
         <mrow> 
          <mn>
            0 
          </mn> 
          <mo>
            , 
          </mo> 
          <mi>
            n 
          </mi> 
         </mrow> 
         <mo>
           ] 
         </mo> 
        </mrow> 
        <mo>
          , 
        </mo> 
        <mi>
          M 
        </mi> 
        <mo>
          ∈ 
        </mo> 
        <mi>
          Z 
        </mi> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (6)</p>
   <p>Make the coefficient with the maximum absolute value within the normalized range of 0.5 - 1, i.e.:</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        max 
      </mi> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mrow> 
         <mo>
           | 
         </mo> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mo>
           | 
         </mo> 
        </mrow> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
      <mo>
        ∈ 
      </mo> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <mn>
          0.5 
        </mn> 
        <mo>
          , 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (7)</p>
   <p>Then, for the coefficient with the highest absolute value in the middle, allocate the same fixed-point quantization bit width as the conventional method to it Quantify. The initial quantization bit width is set to BW based on the actual bit width of the final memory, and the ideal value of the middle coefficient is 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <msup> 
        <mi>
          b 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
       <mi>
         n 
       </mi> 
      </msub> 
     </mrow> 
    </math>. The quantization operation that shifts 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <msup> 
        <mi>
          b 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
       <mi>
         n 
       </mi> 
      </msub> 
     </mrow> 
    </math> by BW bit width is defined as 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        Qant 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mi>
           n 
         </mi> 
        </msub> 
        <mo>
          , 
        </mo> 
        <mtext>
          BW 
        </mtext> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math> and the quantized coefficient value is represented as 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mi>
         B 
       </mi> 
       <mi>
         n 
       </mi> 
      </msub> 
     </mrow> 
    </math> by binary complement. Therefore, the binary complement quantization range 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
       Q 
     </mi> 
    </math> can be known as:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mo>
        − 
      </mo> 
      <msup> 
       <mn>
         2 
       </mn> 
       <mrow> 
        <mtext>
          BW 
        </mtext> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msup> 
      <mo>
        ≤ 
      </mo> 
      <mi>
        Q 
      </mi> 
      <mo>
        ≤ 
      </mo> 
      <msup> 
       <mn>
         2 
       </mn> 
       <mrow> 
        <mtext>
          BW 
        </mtext> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msup> 
      <mo>
        − 
      </mo> 
      <mn>
        1 
      </mn> 
      <mo>
        , 
      </mo> 
      <mtext>
          
      </mtext> 
      <mi>
        Q 
      </mi> 
      <mo>
        ∈ 
      </mo> 
      <mi>
        Z 
      </mi> 
     </mrow> 
    </math> (8)</p>
   <p>Its equivalent quantization bit width 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         n 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math>:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mi>
         n 
       </mi> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mtext>
        BW 
      </mtext> 
     </mrow> 
    </math> (9)</p>
   <p>Its quantitative operation is as follows:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mi>
         B 
       </mi> 
       <mi>
         n 
       </mi> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mtext>
        Qant 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mi>
           n 
         </mi> 
        </msub> 
        <mo>
          , 
        </mo> 
        <mtext>
          BW 
        </mtext> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mtext>
        round 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mi>
           n 
         </mi> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msup> 
         <mn>
           2 
         </mn> 
         <mrow> 
          <mtext>
            BW 
          </mtext> 
         </mrow> 
        </msup> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (10)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msup> 
       <mn>
         2 
       </mn> 
       <mrow> 
        <mtext>
          BW 
        </mtext> 
        <mo>
          − 
        </mo> 
        <mn>
          2 
        </mn> 
       </mrow> 
      </msup> 
      <mo>
        ≤ 
      </mo> 
      <mrow> 
       <mo>
         | 
       </mo> 
       <mrow> 
        <msub> 
         <mi>
           B 
         </mi> 
         <mi>
           n 
         </mi> 
        </msub> 
       </mrow> 
       <mo>
         | 
       </mo> 
      </mrow> 
      <mo>
        ≤ 
      </mo> 
      <msup> 
       <mn>
         2 
       </mn> 
       <mrow> 
        <mtext>
          BW 
        </mtext> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msup> 
      <mo>
        − 
      </mo> 
      <mn>
        1 
      </mn> 
     </mrow> 
    </math> (11)</p>
   <p>The quantified range Temp_Scale is:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        Temp_Scale 
      </mtext> 
      <mo>
        = 
      </mo> 
      <mn>
        1 
      </mn> 
     </mrow> 
    </math> (12)</p>
   <p>The quantization bit width Temp_BW is:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        Temp_BW 
      </mtext> 
      <mo>
        = 
      </mo> 
      <mtext>
        BW 
      </mtext> 
     </mrow> 
    </math> (13)</p>
   <p>The cumulative left shift 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mrow> 
        <mtext>
          Flag 
        </mtext> 
       </mrow> 
       <mi>
         n 
       </mi> 
      </msub> 
     </mrow> 
    </math> is:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mrow> 
        <mtext>
          Flag 
        </mtext> 
       </mrow> 
       <mi>
         n 
       </mi> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mn>
        0 
      </mn> 
     </mrow> 
    </math> (14)</p>
   <p>When the quantified range Temp_Scale reaches half, it can be determined whether the following equation holds:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mo>
        ∀ 
      </mo> 
      <mi>
        i 
      </mi> 
      <mo> 
      </mo> 
      <mo>
        ∈ 
      </mo> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <mn>
          0 
        </mn> 
        <mo>
          , 
        </mo> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        , 
      </mo> 
      <mtext>
          
      </mtext> 
      <mo>
        ∃ 
      </mo> 
      <msub> 
       <msup> 
        <mi>
          b 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
       <mi>
         i 
       </mi> 
      </msub> 
      <mo>
        &lt; 
      </mo> 
      <mfrac> 
       <mn>
         1 
       </mn> 
       <mn>
         2 
       </mn> 
      </mfrac> 
      <mo>
        ⋅ 
      </mo> 
      <mtext>
        Temp_Scale 
      </mtext> 
     </mrow> 
    </math> (15)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        Temp_BW 
      </mtext> 
      <mo>
        = 
      </mo> 
      <mtext>
        Temp_BW 
      </mtext> 
     </mrow> 
    </math> (16)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mrow> 
        <mtext>
          Flag 
        </mtext> 
       </mrow> 
       <mrow> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mn>
        0 
      </mn> 
     </mrow> 
    </math> (17)</p>
   <p>To quantify it, the equivalent quantization bit width is:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mi>
         B 
       </mi> 
       <mrow> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mtext>
        Qant 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            − 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
        </msub> 
        <mo>
          , 
        </mo> 
        <mtext>
          Temp_BW 
        </mtext> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mtext>
        round 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            − 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
        </msub> 
        <mo>
          ⋅ 
        </mo> 
        <msup> 
         <mn>
           2 
         </mn> 
         <mrow> 
          <mtext>
            Temp_BW 
          </mtext> 
         </mrow> 
        </msup> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (18)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mtext>
        Temp_BW 
      </mtext> 
     </mrow> 
    </math> (19)</p>
   <p>When all unquantified coefficients meet the constraint requirements, there are:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        Temp_BW 
      </mtext> 
      <mo>
        = 
      </mo> 
      <mtext>
        Temp_BW 
      </mtext> 
      <mo>
        + 
      </mo> 
      <mn>
        1 
      </mn> 
     </mrow> 
    </math> (20)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mrow> 
        <mtext>
          Flag 
        </mtext> 
       </mrow> 
       <mrow> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mn>
        1 
      </mn> 
     </mrow> 
    </math> (21)</p>
   <p>Halving operation:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        Temp_Scale 
      </mtext> 
      <mo>
        = 
      </mo> 
      <mfrac> 
       <mn>
         1 
       </mn> 
       <mn>
         2 
       </mn> 
      </mfrac> 
      <mtext>
        Temp_Scale 
      </mtext> 
     </mrow> 
    </math> (22)</p>
   <p>We can obtain:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mi>
         B 
       </mi> 
       <mrow> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mtext>
        Qant 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            − 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
        </msub> 
        <mo>
          , 
        </mo> 
        <mtext>
          Temp_BW 
        </mtext> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mtext>
        round 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <msub> 
         <msup> 
          <mi>
            b 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            − 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
        </msub> 
        <mo>
          ⋅ 
        </mo> 
        <msup> 
         <mn>
           2 
         </mn> 
         <mrow> 
          <mtext>
            Temp_BW 
          </mtext> 
         </mrow> 
        </msup> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (23)</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mtext>
        bw 
      </mtext> 
      <mrow> 
       <mo>
         [ 
       </mo> 
       <mrow> 
        <mi>
          n 
        </mi> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
       <mo>
         ] 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mtext>
        Temp_BW 
      </mtext> 
     </mrow> 
    </math> (24)</p>
  </sec><sec id="s3">
   <title>3. Example of Filter Design</title>
   <p>The serial structure coefficient quantization flow chart is shown in <xref ref-type="fig" rid="fig5">
     Figure 5
    </xref>.</p>
   <p>The serial structure quantization process is shown in the following <xref ref-type="table" rid="table1">
     Table 1
    </xref>:</p>
   <fig id="fig5" position="float">
    <label>Figure 5</label>
    <caption>
     <title>Figure 5. Serial structure coefficient quantization flow chart.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId96.jpeg?20250723025314" />
   </fig>
   <table-wrap id="table1">
    <label>
     <xref ref-type="table" rid="table1">
      Table 1
     </xref></label>
    <caption>
     <title>
      <xref ref-type="bibr" rid="scirp.144196-"></xref>Table 1. Serial quantization process.</title>
    </caption>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td acenter" width="14.23%"><p style="text-align:center">Coefficient to be quantified 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             b 
           </mi> 
           <mrow> 
            <mi>
              n 
            </mi> 
            <mo>
              − 
            </mo> 
            <mn>
              1 
            </mn> 
           </mrow> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="custom-bottom-td acenter" width="20.92%"><p style="text-align:center">Unquantified coefficients all &lt; 0.5Temp_Scale?</p></td> 
      <td class="custom-bottom-td acenter" width="9.44%"><p style="text-align:center">After update Temp_BW</p></td> 
      <td class="custom-bottom-td acenter" width="10.02%"><p style="text-align:center">After update Temp_Scale</p></td> 
      <td class="custom-bottom-td acenter" width="16.18%"><p style="text-align:center">Equivalent quantization bit width 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mtext>
            bw 
          </mtext> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <mi>
              n 
            </mi> 
            <mo>
              − 
            </mo> 
            <mn>
              1 
            </mn> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
         </mrow> 
        </math></p></td> 
      <td class="custom-bottom-td acenter" width="7.47%"><p style="text-align:center">Shift flag</p><p style="text-align:center">Flag</p></td> 
      <td class="custom-bottom-td acenter" width="21.73%"><p style="text-align:center">Left shift and quantification</p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td acenter" width="14.23%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             b 
           </mi> 
           <mn>
             4 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mn>
            0.87968 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="custom-top-td acenter" width="20.92%"><p style="text-align:center">No 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               4 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            &gt; 
          </mo> 
          <mn>
            0.5 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="custom-top-td acenter" width="9.44%"><p style="text-align:center">8</p></td> 
      <td class="custom-top-td acenter" width="10.02%"><p style="text-align:center">1</p></td> 
      <td class="custom-top-td acenter" width="16.18%"><p style="text-align:center">8</p></td> 
      <td class="custom-top-td acenter" width="7.47%"><p style="text-align:center">0</p></td> 
      <td class="custom-top-td acenter" width="21.73%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             B 
           </mi> 
           <mn>
             4 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               4 
             </mn> 
            </msub> 
            <mo>
              ∗ 
            </mo> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mn>
               7 
             </mn> 
            </msup> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            = 
          </mo> 
          <mn>
            113 
          </mn> 
         </mrow> 
        </math></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="14.23%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             b 
           </mi> 
           <mn>
             3 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mn>
            0.37687 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="20.92%"><p style="text-align:center">Yes 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               3 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            , 
          </mo> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            , 
          </mo> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            , 
          </mo> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               0 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            &lt; 
          </mo> 
          <mn>
            0.5 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="9.44%"><p style="text-align:center">9</p></td> 
      <td class="acenter" width="10.02%"><p style="text-align:center">0.5</p></td> 
      <td class="acenter" width="16.18%"><p style="text-align:center">9</p></td> 
      <td class="acenter" width="7.47%"><p style="text-align:center">1</p></td> 
      <td class="acenter" width="21.73%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             B 
           </mi> 
           <mn>
             3 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               3 
             </mn> 
            </msub> 
            <mo>
              ∗ 
            </mo> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mn>
               8 
             </mn> 
            </msup> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            = 
          </mo> 
          <mn>
            96 
          </mn> 
         </mrow> 
        </math></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="14.23%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             b 
           </mi> 
           <mn>
             2 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mo>
            − 
          </mo> 
          <mn>
            0.26156 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="20.92%"><p style="text-align:center">No 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            &gt; 
          </mo> 
          <mn>
            0.25 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="9.44%"><p style="text-align:center">9</p></td> 
      <td class="acenter" width="10.02%"><p style="text-align:center">0.5</p></td> 
      <td class="acenter" width="16.18%"><p style="text-align:center">9</p></td> 
      <td class="acenter" width="7.47%"><p style="text-align:center">0</p></td> 
      <td class="acenter" width="21.73%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             B 
           </mi> 
           <mn>
             2 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mo>
              ∗ 
            </mo> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mn>
               8 
             </mn> 
            </msup> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            = 
          </mo> 
          <mo>
            − 
          </mo> 
          <mn>
            67 
          </mn> 
         </mrow> 
        </math></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="14.23%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             b 
           </mi> 
           <mn>
             1 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mo>
            − 
          </mo> 
          <mn>
            0.05899 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="20.92%"><p style="text-align:center">Yes 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            , 
          </mo> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               0 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            &lt; 
          </mo> 
          <mn>
            0.25 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="9.44%"><p style="text-align:center">10</p></td> 
      <td class="acenter" width="10.02%"><p style="text-align:center">0.25</p></td> 
      <td class="acenter" width="16.18%"><p style="text-align:center">10</p></td> 
      <td class="acenter" width="7.47%"><p style="text-align:center">1</p></td> 
      <td class="acenter" width="21.73%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             B 
           </mi> 
           <mn>
             1 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mo>
              ∗ 
            </mo> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mn>
               9 
             </mn> 
            </msup> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            = 
          </mo> 
          <mo>
            − 
          </mo> 
          <mn>
            30 
          </mn> 
         </mrow> 
        </math></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="14.23%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             b 
           </mi> 
           <mn>
             0 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mn>
            0.01751 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="20.92%"><p style="text-align:center">Yes 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            , 
          </mo> 
          <mrow> 
           <mo>
             | 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               0 
             </mn> 
            </msub> 
           </mrow> 
           <mo>
             | 
           </mo> 
          </mrow> 
          <mo>
            &lt; 
          </mo> 
          <mn>
            0.125 
          </mn> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="9.44%"><p style="text-align:center">11</p></td> 
      <td class="acenter" width="10.02%"><p style="text-align:center">0.125</p></td> 
      <td class="acenter" width="16.18%"><p style="text-align:center">11</p></td> 
      <td class="acenter" width="7.47%"><p style="text-align:center">1</p></td> 
      <td class="acenter" width="21.73%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <msub> 
           <mi>
             B 
           </mi> 
           <mn>
             0 
           </mn> 
          </msub> 
          <mo>
            = 
          </mo> 
          <mtext>
            round 
          </mtext> 
          <mrow> 
           <mo>
             [ 
           </mo> 
           <mrow> 
            <msub> 
             <mi>
               b 
             </mi> 
             <mn>
               0 
             </mn> 
            </msub> 
            <mo>
              ∗ 
            </mo> 
            <msup> 
             <mn>
               2 
             </mn> 
             <mrow> 
              <mn>
                10 
              </mn> 
             </mrow> 
            </msup> 
           </mrow> 
           <mo>
             ] 
           </mo> 
          </mrow> 
          <mo>
            = 
          </mo> 
          <mn>
            18 
          </mn> 
         </mrow> 
        </math></p></td> 
     </tr> 
    </table>
   </table-wrap>
   <p>As shown in the above <xref ref-type="fig" rid="fig6">
     Figure 6
    </xref> and <xref ref-type="fig" rid="fig7">
     Figure 7
    </xref>, the new algorithm uses serial quantization, which improves the coefficient accuracy better than traditional fixed-point quantization methods. Specifically, it has more stop band attenuation, smaller transition band width, and smaller pass band ripple. The minimum stop band attenuation of traditional quantization methods is 48 dB, while the improved algorithm is 61.3 dB, and the effect is very significant. The comparison chart of the minimum stop band attenuation of its spectral response is as follows:</p>
   <p>As shown in the above <xref ref-type="fig" rid="fig8">
     Figure 8
    </xref>, the new algorithm has more quantization word lengths on both sides of the coefficients, and its accuracy is significantly higher than traditional algorithms at lower quantization memory bit widths.</p>
   <fig id="fig6" position="float">
    <label>Figure 6</label>
    <caption>
     <title>Figure 6. Comparison of amplitude frequency response of serial quantization coefficients.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId131.jpeg?20250723025314" />
   </fig>
   <fig id="fig7" position="float">
    <label>Figure 7</label>
    <caption>
     <title>Figure 7. Frequency response pass band details.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId132.jpeg?20250723025314" />
   </fig>
   <table-wrap id="table2">
    <label>
     <xref ref-type="table" rid="table2">
      Table 2
     </xref></label>
    <caption>
     <title>
      <xref ref-type="bibr" rid="scirp.144196-"></xref>Table 2. Resource comparison of equal bit width serial implementation.</title>
    </caption>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td acenter" width="34.68%"><p style="text-align:center">DSP achieve</p></td> 
      <td class="custom-bottom-td acenter" width="16.32%"><p style="text-align:center">ALUT</p></td> 
      <td class="custom-bottom-td acenter" width="16.32%"><p style="text-align:center">memory</p></td> 
      <td class="custom-bottom-td acenter" width="16.32%"><p style="text-align:center">DSP</p></td> 
      <td class="custom-bottom-td acenter" width="16.34%"><p style="text-align:center">memory (bit)</p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td acenter" width="34.68%"><p style="text-align:center">Traditional serial structure</p></td> 
      <td class="custom-top-td acenter" width="16.32%"><p style="text-align:center">118</p></td> 
      <td class="custom-top-td acenter" width="16.32%"><p style="text-align:center">240</p></td> 
      <td class="custom-top-td acenter" width="16.32%"><p style="text-align:center">1</p></td> 
      <td class="custom-top-td acenter" width="16.34%"><p style="text-align:center">126</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.68%"><p style="text-align:center">Serial structure of this article</p></td> 
      <td class="acenter" width="16.32%"><p style="text-align:center">131</p></td> 
      <td class="acenter" width="16.32%"><p style="text-align:center">261</p></td> 
      <td class="acenter" width="16.32%"><p style="text-align:center">1</p></td> 
      <td class="acenter" width="16.34%"><p style="text-align:center">126</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.68%"><p style="text-align:center">Resource increment</p></td> 
      <td class="acenter" width="16.32%"><p style="text-align:center">11.0%</p></td> 
      <td class="acenter" width="16.32%"><p style="text-align:center">8.8%</p></td> 
      <td class="acenter" width="16.32%"><p style="text-align:center">0.0%</p></td> 
      <td class="acenter" width="16.34%"><p style="text-align:center">0.0%</p></td> 
     </tr> 
    </table>
   </table-wrap>
   <p>As shown in the table above (<xref ref-type="table" rid="table2">
     Table 2
    </xref>), the implementation of the new algorithm includes a shift binary selector, which is the reason for the increased consumption of ALUT resources.</p>
   <p>From the above table (<xref ref-type="table" rid="table3">
     Table 3
    </xref>), it can be seen that due to the increase in quantization bit width, ALUT and memory resources have increased by about 15%; The original 9 × 9 multiplier could be implemented using only one DSP, but with the increase in the bit width of the multiplier, the system needs to use an 18 × 18 multiplier, which is equivalent to two DSPs in effect. Therefore, the resources of the multiplier have increased, doubling by 100%.</p>
   <fig id="fig8" position="float">
    <label>Figure 8</label>
    <caption>
     <title>Figure 8. Comparison of stop band attenuation under different position widths.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313236-rId133.jpeg?20250723025314" />
   </fig>
   <table-wrap id="table3">
    <label>
     <xref ref-type="table" rid="table3">
      Table 3
     </xref></label>
    <caption>
     <title>
      <xref ref-type="bibr" rid="scirp.144196-"></xref>Table 3. Resource consumption of performance prerequisites such as serial implementation.</title>
    </caption>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td acenter" width="34.05%"><p style="text-align:center">DSP achieve</p></td> 
      <td class="custom-bottom-td acenter" width="14.91%"><p style="text-align:center">ALUT</p></td> 
      <td class="custom-bottom-td acenter" width="14.91%"><p style="text-align:center">memory</p></td> 
      <td class="custom-bottom-td acenter" width="14.91%"><p style="text-align:center">DSP</p></td> 
      <td class="custom-bottom-td acenter" width="21.22%"><p style="text-align:center">memory (bit)</p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td acenter" width="34.05%"><p style="text-align:center">Traditional serial structure</p></td> 
      <td class="custom-top-td acenter" width="14.91%"><p style="text-align:center">562</p></td> 
      <td class="custom-top-td acenter" width="14.91%"><p style="text-align:center">1105</p></td> 
      <td class="custom-top-td acenter" width="14.91%"><p style="text-align:center">1</p></td> 
      <td class="custom-top-td acenter" width="21.22%"><p style="text-align:center">594</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.05%"><p style="text-align:center">Serial structure of this article</p></td> 
      <td class="acenter" width="14.91%"><p style="text-align:center">611</p></td> 
      <td class="acenter" width="14.91%"><p style="text-align:center">1209</p></td> 
      <td class="acenter" width="14.91%"><p style="text-align:center">1</p></td> 
      <td class="acenter" width="21.22%"><p style="text-align:center">594</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.05%"><p style="text-align:center">Resource increment</p></td> 
      <td class="acenter" width="14.91%"><p style="text-align:center">8.7%</p></td> 
      <td class="acenter" width="14.91%"><p style="text-align:center">9.4%</p></td> 
      <td class="acenter" width="14.91%"><p style="text-align:center">0.0%</p></td> 
      <td class="acenter" width="21.22%"><p style="text-align:center">0.0%</p></td> 
     </tr> 
    </table>
   </table-wrap>
  </sec><sec id="s4">
   <title>4. Conclusion</title>
   <p>Due to the use of serial quantization, the accuracy of coefficient quantization values has been significantly improved compared to traditional fixed-point quantization methods, provided that the bit width of the multiplier and coefficient memory is not increased, and the filter order is not increased. Next, parallel structures can be used to further improve its performance, or a series parallel hybrid approach can be adopted to further enhance the accuracy of coefficient quantization values.</p>
  </sec>
 </body><back>
  <ref-list>
   <title>References</title>
   <ref id="scirp.144196-ref1">
    <label>1</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Shen, Z. (2010) Research on the Implementation of Key Technologies for MC-QAM Modulator Signal Processing. Doctoral Dissertation, Huazhong University of Science and Technology. 
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref2">
    <label>2</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Jovanovic Dolecek, G. (2009) Simple Wideband CIC Compensator. Electronics Letters, 45, 1270-1272. &gt;https://doi.org/10.1049/el.2009.1860
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref3">
    <label>3</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Kim, S., Lee, W., Ahn, S. and Choi, S. (2006) Design of CIC Roll-Off Compensation Filter in a W-CDMA Digital IF Receiver. Digital Signal Processing, 16, 846-854. &gt;https://doi.org/10.1016/j.dsp.2006.06.003
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref4">
    <label>4</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Torres, F.J.T. and Dolecek, G.J. (2007) Compensated CIC-Cosine Decimation Filter. Proceedings International Symposium on Communications and Information Technologies, ISCIT’07, Shanghai, 25-27 September 2007, 256-259.
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref5">
    <label>5</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Dolecek, G.J. and Mitra, S.K. (2008) Simple Method for Compensation of CIC Decimation Filter. Electronics Letters, 44, 1162-1163. &gt;https://doi.org/10.1049/el:20081603
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref6">
    <label>6</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Willson, A.N. (2007) Desensitized Half-Band Interpolation Filters. 2007 50th Midwest Symposium on Circuits and Systems, Montreal, 5-8 August 2007, 1034-1037. &gt;https://doi.org/10.1109/mwscas.2007.4488739
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref7">
    <label>7</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Fernandez-Vazquez, A. and Dolecek, G.J. (2009) A General Method to Design GCF Compensation Filter. IEEE Transactions on Circuits and Systems II: Express Briefs, 56, 409-413. &gt;https://doi.org/10.1109/tcsii.2009.2019337
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref8">
    <label>8</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     McClellan, J.H. and Parks, T.W. (2005) A Personal History of the Parks-Mcclellan Algorithm. IEEE Signal Processing Magazine, 22, 82-86. &gt;https://doi.org/10.1109/msp.2005.1406492
    </mixed-citation>
   </ref>
   <ref id="scirp.144196-ref9">
    <label>9</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Boonyanant, P. and Tantaratana, S. (2005) Design and Hybrid Realization of FIR Nyquist Filters with Quantized Coefficients and Low Sensitivity to Timing Jitter. IEEE Transactions on Signal Processing, 53, 208-221. &gt;https://doi.org/10.1109/tsp.2004.838968
    </mixed-citation>
   </ref>
  </ref-list>
 </back>
</article>