<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Phys.</journal-id>
<journal-title>Frontiers in Physics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Phys.</abbrev-journal-title>
<issn pub-type="epub">2296-424X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1404236</article-id>
<article-id pub-id-type="doi">10.3389/fphy.2024.1404236</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Physics</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Cascaded multiplier-free implementation of adaptive anti-jamming filter based on GNSS receiver</article-title>
<alt-title alt-title-type="left-running-head">Song et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fphy.2024.1404236">10.3389/fphy.2024.1404236</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" equal-contrib="yes">
<name>
<surname>Song</surname>
<given-names>Jie</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>&#x2020;</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2694480/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
</contrib>
<contrib contrib-type="author" equal-contrib="yes">
<name>
<surname>Chen</surname>
<given-names>Lei</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>&#x2020;</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Lu</surname>
<given-names>Zukun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1771709/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Baiyu</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2094620/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Liu</surname>
<given-names>Zhe</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Xue</surname>
<given-names>Zhihao</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2048214/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Sun</surname>
<given-names>Guangfu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Liu</surname>
<given-names>Wenhong</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>College of Electronic Science and Technology</institution>, <institution>National University of Defense Technology</institution>, <addr-line>Changsha</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Key Laboratory of Satellite Navigation Technology</institution>, <addr-line>Changsha</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Scientific Research Office</institution>, <institution>National University of Defense Technology</institution>, <addr-line>Changsha</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/224486/overview">Jiansen He</ext-link>, Peking University, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1065026/overview">Zhaowen Yan</ext-link>, Beihang University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1435140/overview">Ying-Ren Chien</ext-link>, National Ilan University, Taiwan</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Zukun Lu, <email>luzukun@nudt.edu.cn</email>; Zhe Liu, <email>l_z@nudt.edu.cn</email>
</corresp>
<fn fn-type="equal" id="fn001">
<label>
<sup>&#x2020;</sup>
</label>
<p>These authors have contributed equally to this work</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>03</day>
<month>07</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>12</volume>
<elocation-id>1404236</elocation-id>
<history>
<date date-type="received">
<day>20</day>
<month>03</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>05</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Song, Chen, Lu, Li, Liu, Xue, Sun and Liu.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Song, Chen, Lu, Li, Liu, Xue, Sun and Liu</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Evaluating the computational complexity is critical for assessing the time-domain anti-jamming performance of GNSS receivers. The multiplier is the core component that contributes to the computational complexity in time-domain anti-jamming. However, current algorithms aimed at reducing the complexity of time-domain anti-jamming typically concentrate on shortening the filter length, which fails to address the high computational complexity introduced by the use of multipliers. This paper introduces a cascaded multiplier-free approach for implementing time-domain anti-jamming in navigation receivers. We propose a numerical power decomposition technique based on optimal Canonical Signed Digit coding and coefficient decomposition. By substituting the multiplier with minimal adder and shift operations, the computational complexity of the anti-jamming filter with a high quantization bit-width can be considerably decreased. An optimization strategy is presented, and the low-complexity multiplier-free technique is applied to the time-domain anti-jamming filter. Compared to the traditional Canonical Signed Digit multiplier-free technique, our method can reduce the components required for a 12-bit quantization anti-interference filter by one adder, 20 shift operations, and five coded word lengths, while maintaining a pseudo-range measurement deviation below 0.27&#xa0;ns.</p>
</abstract>
<kwd-group>
<kwd>GNSS receiver</kwd>
<kwd>time domain anti-interference</kwd>
<kwd>optimal CSD coding</kwd>
<kwd>numerical power decomposition</kwd>
<kwd>cascaded multiplier-free implementation</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Space Physics</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The Global Navigation Satellite System (GNSS) offers precise spatial and temporal reference data, including three-dimensional positioning, velocity, and timing [<xref ref-type="bibr" rid="B1">1</xref>]. Due to the substantial distance between the satellites and the ground, and the limited satellite resources, the navigation signal is susceptible to being overwhelmed by jamming [<xref ref-type="bibr" rid="B2">2</xref>]. As various electronic systems have advanced, competition for electromagnetic frequency bands has become intense, leading to severe jamming [<xref ref-type="bibr" rid="B3">3</xref>]. Ensuring anti-jamming capabilities for GNSS receivers is crucial to navigate through complex electromagnetic and electronic warfare environments, ensuring the accuracy of positioning, navigation, and timing for navigational terminals [<xref ref-type="bibr" rid="B4">4</xref>].</p>
<p>Given the spectrum overlap, mutual interference occurs between satellite navigation, radar, and 5G systems [<xref ref-type="bibr" rid="B5">5</xref>]. The low cost of time-domain anti-jamming makes it a prevalent solution for fixed-band narrowband jamming suppression, and is crucial for assessing GNSS receiver performance. Researchers are developing cost-effective navigation receivers to keep pace with the evolving GNSS systems and the development of new features. Chien [<xref ref-type="bibr" rid="B6">6</xref>] presents a cost-effective cascaded IIR adaptive notch filter for interference suppression that significantly reduces complex computations resulting from Fourier Transforms (FFT), inverse FFT, or wavelet transformations. Ren et al. [<xref ref-type="bibr" rid="B7">7</xref>] proposes a subspace projection algorithm with a brief projection length for continuous wave and linear frequency-sweep interference, thereby reducing computational complexity. Wang et al. [<xref ref-type="bibr" rid="B8">8</xref>] introduces an adaptive narrowband interference (NBI) suppression technique utilizing coded-aid technology that obviates the need for FFT or matrix inversion. Additionally, variable tap-length LMS and sparse algorithms have seen extensive development [<xref ref-type="bibr" rid="B9">9</xref>&#x2013;<xref ref-type="bibr" rid="B11">11</xref>]. Nonetheless, the multiplier continues to impact complexity. The multiplier is a pivotal component of DSP calculations within the navigation receiver [<xref ref-type="bibr" rid="B12">12</xref>]. Its complexity scales quadratically with the quantization bit width, thus necessitating considerable computational resources. Because multiplication operations influence the jamming suppression performance in hardware, a multiplier-less implementation has been adopted to reduce costs and accelerate convergence [<xref ref-type="bibr" rid="B13">13</xref>, <xref ref-type="bibr" rid="B14">14</xref>].</p>
<p>Multiplier-less implementation replaces multipliers with other operations, such as the read-only memory (ROM) lookup table, distributed arithmetic (DA) algorithm, binary complement, Coordinate Rotation Digital Computer (CORDIC), multiple constant multiplication (MCM), and canonic signed digit (CSD) coding [<xref ref-type="bibr" rid="B15">15</xref>&#x2013;<xref ref-type="bibr" rid="B17">17</xref>]. CSD coding components the filter coefficient as the sum or difference of the power of 2, replacing the multiplier by shift operation and adder [<xref ref-type="bibr" rid="B18">18</xref>]. The coefficient decomposition decomposes the coefficient into the product of several numbers by the lookup table, reducing the adder number by cascading. Methods can be used in conjunction to reduce the adder number and sampling bit width. There have been optimization studies on the implementation methods of various filters without multipliers [<xref ref-type="bibr" rid="B19">19</xref>&#x2013;<xref ref-type="bibr" rid="B21">21</xref>].</p>
<p>However, the above multiplier-less implementation methods are limited in the practical GNSS receiver applications, which are usually used in fixed-coefficient filters. The anti-jamming filter coefficient of GNSS receivers is usually considerable, while the existing multiplication-less implementation scheme is limited by the quantization bit width, resulting in significant quantization errors. The anti-jamming filter multiplication-less implementation method should be further optimized to minimal adders and shift operations with easy implementation.</p>
<p>Building on previous work, this paper proposes a cascaded multiplier-free implementation method for GNSS receiver time-domain anti-jamming filters. This method is applied to the static time-domain anti-jamming of satellite navigation receivers, optimizing the design of high-gain filter coefficients without multipliers. It reduces the number of adders, shift operations, and the coding word length of filter coefficients, thereby decreasing the computational complexity of the anti-jamming filters.</p>
</sec>
<sec id="s2">
<title>2 System model</title>
<sec id="s2-1">
<title>2.1 GNSS receiver model</title>
<p>The GNSS system consists of the space segment, ground segment, and user segment. <xref ref-type="fig" rid="F1">Figure 1</xref> illustrates the GNSS receiver structure. The user terminals process the received radio frequency (RF) signals in RF front-end (RFFE). The baseband digital signal processing (DSP) suppresses the unexpected interference after the digital down conversion (DDC), and applies the multiplier-free anti-jamming filter based on the LMS adaptive algorithm. After the anti-jamming data is captured and tracked, it finally enters terminal&#x2019;s back-end (BE) for realizing positioning, navigation and timing (PNT) functions [<xref ref-type="bibr" rid="B22">22</xref>].</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>GNSS receiver structure.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g001.tif"/>
</fig>
<p>Satellite navigation signals include the carrier, pseudo-random (PRN) code, and message data. The satellite navigation signal can be expressed by the carrier modulated with the spread spectrum signal of PRN code and data in Eq. <xref ref-type="disp-formula" rid="e1">1</xref>:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2211;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msqrt>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where, <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the average power of navigation signal, <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the PRN code level, <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the satellite broadcast message data, <inline-formula id="inf4">
<mml:math id="m5">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the central frequency of RF signal, <inline-formula id="inf5">
<mml:math id="m6">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the initial phase of the carrier.</p>
<p>Suppose that the receiver thermal noise is <inline-formula id="inf6">
<mml:math id="m7">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the interference signal is <inline-formula id="inf7">
<mml:math id="m8">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, such as continuous wave interference or narrowband Gaussian noise interference. Continuous wave interference (CWI) aims at the central frequency of satellite navigation signals by the continuous high-power single-frequency signal [<xref ref-type="bibr" rid="B23">23</xref>]. Narrowband interference (NBI) is generated by band-limited Gaussian white noise [<xref ref-type="bibr" rid="B24">24</xref>]. The CWI and NBI can be expressed as Eqs <xref ref-type="disp-formula" rid="e2">2</xref>, <xref ref-type="disp-formula" rid="e3">3</xref> respectively:<disp-formula id="e2">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mtext>CWI</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msqrt>
<mml:mi>cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mtext>NBI</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where, <inline-formula id="inf8">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the interference power, <inline-formula id="inf9">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the interference frequency, <inline-formula id="inf10">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the initial phase, <inline-formula id="inf11">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the narrowband interference amplitude, <inline-formula id="inf12">
<mml:math id="m15">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the Gaussian white noise, <inline-formula id="inf13">
<mml:math id="m16">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is convoluted with the finite band-pass gate function <inline-formula id="inf14">
<mml:math id="m17">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to generate narrowband interference.</p>
<p>The resultant input signal before the anti-jamming module can be expressed in Eq. <xref ref-type="disp-formula" rid="e4">4</xref> [<xref ref-type="bibr" rid="B25">25</xref>]:<disp-formula id="e4">
<mml:math id="m18">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
</sec>
<sec id="s2-2">
<title>2.2 Multiplier-free time-domain adaptive anti-jamming model</title>
<p>The time-domain anti-jamming algorithm utilizes the adaptive filter to suppress interference. The iterated filter coefficients should be implemented to be multiplier-free and then assigned to the weight storage module. <xref ref-type="fig" rid="F2">Figure 2</xref> illustrates the flow chart of the multiplier-free time-domain adaptive anti-jamming algorithm.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Anti-jamming flow chart with multiplier-free implementation.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g002.tif"/>
</fig>
<p>Suppose that the input vector of the <inline-formula id="inf15">
<mml:math id="m19">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-long filter at time <inline-formula id="inf16">
<mml:math id="m20">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is as Eq. <xref ref-type="disp-formula" rid="e5">5</xref>:<disp-formula id="e5">
<mml:math id="m21">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Suppose the filter quantization bit width is L. The filter weight vector is as Eq. <xref ref-type="disp-formula" rid="e6">6</xref>:<disp-formula id="e6">
<mml:math id="m22">
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>fix</mml:mtext>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtext>Norm</mml:mtext>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>L</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where, <inline-formula id="inf17">
<mml:math id="m23">
<mml:mrow>
<mml:mtext>fix</mml:mtext>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the rounding function to round off the input signal, <inline-formula id="inf18">
<mml:math id="m24">
<mml:mrow>
<mml:mtext>Norm</mml:mtext>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the normalized function.</p>
<p>Define the multiplier-free implementation method as <inline-formula id="inf19">
<mml:math id="m25">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. With the iterated coefficients implemented multiplier-free, the anti-jamming output signal can be expressed as:<disp-formula id="e7">
<mml:math id="m26">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>The error signal <inline-formula id="inf20">
<mml:math id="m27">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is defined as the difference between the anti-jamming output signal <inline-formula id="inf21">
<mml:math id="m28">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and the desired signal <inline-formula id="inf22">
<mml:math id="m29">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where the desired signal is generally considered to be navigational signal, as shown in Eq. <xref ref-type="disp-formula" rid="e8">8</xref>:<disp-formula id="e8">
<mml:math id="m30">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The iterative formula of LMS algorithm can be expressed as Eq. <xref ref-type="disp-formula" rid="e9">9</xref> [<xref ref-type="bibr" rid="B26">26</xref>]:<disp-formula id="e9">
<mml:math id="m31">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>where <inline-formula id="inf23">
<mml:math id="m32">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> represent the conjugation.</p>
<p>The multiplier-free implementation of GNSS time-domain anti-jamming is applicable to satellite navigation receivers with limited hardware resources. For instance, mobile phones require the development of miniaturization capabilities and maintaining anti-interference capabilities, and spaceborne receivers&#x2019; functionality is expanded within the constraints of limited resources. <xref ref-type="fig" rid="F3">Figure 3</xref> depicts a ground-test module of a satellite-borne receiver in its practical application.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Practical application: ground-test module of spaceborne receiver. <bold>(A)</bold> Ground testing architecture. <bold>(B)</bold> Hardware development board.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g003.tif"/>
</fig>
</sec>
</sec>
<sec id="s3">
<title>3 Problem formulation</title>
<sec id="s3-1">
<title>3.1 CSD coding</title>
<p>The signed number is one of the essential non-standard fixed-point number in computer algorithm implementation, and its digital range is <inline-formula id="inf24">
<mml:math id="m33">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>. Since it is not unique, the system with the least nonzero elements is called the regular signed digit system.</p>
<p>The CSD coding expresses the filter coefficients as the sum or difference of the power of 2, which is realized by shift operation and adder. The optimal CSD coding can also reduce the adder number and the maximum encoding lord length [<xref ref-type="bibr" rid="B27">27</xref>].</p>
<p>The mathematical expression of the FIR-filter anti-jamming can be simplified as shown in Eq. <xref ref-type="disp-formula" rid="e10">10</xref> [<xref ref-type="bibr" rid="B28">28</xref>]:<disp-formula id="e10">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mn>0</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>where, <inline-formula id="inf25">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the <inline-formula id="inf26">
<mml:math id="m36">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> weight of the filter, <inline-formula id="inf27">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the input data to the <inline-formula id="inf28">
<mml:math id="m38">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> weight, <inline-formula id="inf29">
<mml:math id="m39">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> represents the binary representation of the <inline-formula id="inf30">
<mml:math id="m40">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> weight, <inline-formula id="inf31">
<mml:math id="m41">
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the binary bit length.</p>
<p>CSD coding replaces all 1 sequences greater than 2 with <inline-formula id="inf32">
<mml:math id="m42">
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mn>0</mml:mn>
<mml:mover accent="true">
<mml:mn>1</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> from the lowest bit, where <inline-formula id="inf33">
<mml:math id="m43">
<mml:mrow>
<mml:mover accent="true">
<mml:mn>1</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> represents the negative 1 bit. The best CSD coding has minor nonzero elements and the least subtraction times. Starting from the highest significant bit, replace <inline-formula id="inf34">
<mml:math id="m44">
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mover accent="true">
<mml:mn>1</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> with <inline-formula id="inf35">
<mml:math id="m45">
<mml:mrow>
<mml:mn>011</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> [<xref ref-type="bibr" rid="B29">29</xref>].</p>
<p>Suppose that the word length of the binary complement-on-two of value <inline-formula id="inf36">
<mml:math id="m46">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf37">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>bin</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> then the Binary expression is as Eq. <xref ref-type="disp-formula" rid="e11">11</xref>:<disp-formula id="e11">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mtext>bin</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:msup>
<mml:mi>a</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>bin</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:msup>
<mml:mi>a</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>bin</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22ef;</mml:mo>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2033;</mml:mo>
</mml:msubsup>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>&#x2033;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>where, <inline-formula id="inf38">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>bin</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
<p>The word length of CSD encoding of value A is <inline-formula id="inf39">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> then the CSD expression is as Eq. <xref ref-type="disp-formula" rid="e12">12</xref>:<disp-formula id="e12">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:msup>
<mml:mi>a</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:msup>
<mml:mi>a</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22ef;</mml:mo>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>where, <inline-formula id="inf40">
<mml:math id="m52">
<mml:mrow>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Usually, the relationship between CSD code word length and binary complement word length is as shown in Eq. <xref ref-type="disp-formula" rid="e13">13</xref>:<disp-formula id="e13">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>bin</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>The binary complement is updated to CSD coding as shown from Eqs <xref ref-type="disp-formula" rid="e14">14</xref>&#x2013;<xref ref-type="disp-formula" rid="e16">16</xref>:<disp-formula id="e14">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2227;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
<disp-formula id="e15">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b6;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m56">
<mml:mrow>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>&#x3b6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>where, <inline-formula id="inf41">
<mml:math id="m57">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2227;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the exclusive OR operation, the initial value can be expressed as <inline-formula id="inf42">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3b6;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Then optimize the CSD coding that may have storage waste by Eq. <xref ref-type="disp-formula" rid="e17">17</xref>:<disp-formula id="e17">
<mml:math id="m59">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22ef;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>where, <inline-formula id="inf43">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Usually, the relationship between CSD code word length and binary complement word length is as shown in Eq. <xref ref-type="disp-formula" rid="e18">18</xref>:<disp-formula id="e18">
<mml:math id="m61">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mtext>CSD</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>Its update process can be expressed from Eqs <xref ref-type="disp-formula" rid="e19">19</xref>&#x2013;<xref ref-type="disp-formula" rid="e21">21</xref>:<disp-formula id="e19">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>ceil</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
<disp-formula id="e20">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2295;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2295;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>where, <inline-formula id="inf44">
<mml:math id="m65">
<mml:mrow>
<mml:mo>&#x2295;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is the logical AND operation.</p>
<p>The number of adders is expressed as Eq. <xref ref-type="disp-formula" rid="e22">22</xref>:<disp-formula id="e22">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>add</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>The number of shift operations is expressed as Eq. <xref ref-type="disp-formula" rid="e23">23</xref>:<disp-formula id="e23">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>shift</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>The figure shows the best CSD coding schematic. The value 211 is taken as an example in <xref ref-type="fig" rid="F4">Figure 4</xref>, the multiplier-free design based on the optimal CSD coding is composed of 5 values of the power of 2, and the multiplication operation is realized by four adders and 18 shift operations.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Optimal CSD coding schematic.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g004.tif"/>
</fig>
</sec>
<sec id="s3-2">
<title>3.2 Numerical power decomposition</title>
<p>Numerical power decomposition is achieved by cascading several values to reduce the hardware cost of multiplier-less implementation [<xref ref-type="bibr" rid="B30">30</xref>]. For example, the traditional binary encoding of the value 231 is <inline-formula id="inf45">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:mn>11100111</mml:mn>
<mml:mtext>bin</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the best CSD encoding is <inline-formula id="inf46">
<mml:math id="m69">
<mml:mrow>
<mml:mn>100</mml:mn>
<mml:mover accent="true">
<mml:mn>1</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>0100</mml:mn>
<mml:mover accent="true">
<mml:mn>1</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, and the original multiplier implementation can be reduced from 5 adders to 3. If 231 is factorized into the <inline-formula id="inf47">
<mml:math id="m70">
<mml:mrow>
<mml:mn>7</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>33</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> cascade, the adders&#x2019; number can be reduced to 2. <xref ref-type="fig" rid="F5">Figure 5</xref> is the example diagram of numerical power decomposition.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Numerical power decomposition schematic.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g005.tif"/>
</fig>
<p>The value <inline-formula id="inf48">
<mml:math id="m71">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> can be decomposed into the product of <inline-formula id="inf49">
<mml:math id="m72">
<mml:mrow>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> values and realized by cascading [<xref ref-type="bibr" rid="B31">31</xref>] as shown in Eq. <xref ref-type="disp-formula" rid="e24">24</xref>:<disp-formula id="e24">
<mml:math id="m73">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x22ef;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>where, <inline-formula id="inf50">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf51">
<mml:math id="m75">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th power factor, which consists of the addition and subtraction of the power of 2 as shown in Eq. <xref ref-type="disp-formula" rid="e25">25</xref>:<disp-formula id="e25">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:msup>
<mml:mo>&#xb1;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#xb1;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>The numerical value will affect the device cost of the filter. The total adder number can be expressed as the sum of the number of adders required for different decomposition factors, as shown from Eqs <xref ref-type="disp-formula" rid="e26">26</xref>&#x2013;<xref ref-type="disp-formula" rid="e28">28</xref>:<disp-formula id="e26">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>add</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mtext>add</mml:mtext>
<mml:mi>p</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
<disp-formula id="e27">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>shift</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mtext>shif</mml:mtext>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>
<disp-formula id="e28">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>bit</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>where, <inline-formula id="inf52">
<mml:math id="m80">
<mml:mrow>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mtext>add</mml:mtext>
<mml:mi>p</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf53">
<mml:math id="m81">
<mml:mrow>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mtext>shif</mml:mtext>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the number of adders, the number of shift operations, and the maximum word length required for the optimal CSD encoding of the decomposition factor <inline-formula id="inf54">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively.</p>
</sec>
<sec id="s3-3">
<title>3.3 Motivations and optimization object</title>
<p>Static anti-jamming filters are usually used in power-sensitive terminals, and computational complexity is one of the most critical design elements. The effect of CSD optimal coding to reduce complexity is limited, and the existing numerical power decomposition is mainly the lookup table method. The accessible decomposition results are limited, creating difficulties for the multiplier-less implementation of large values.</p>
<p>Based on the disadvantages of optimal CSD coding and coefficient decomposition, in order to solve the problem of high gain in the actual filter coefficients, this paper proposes a cascaded multiplier-less implementation. The multiplier-less filter is implemented with minimum adders, reducing the shift operation and memory word length. The optimization objective is shown in Eq. <xref ref-type="disp-formula" rid="e29">29</xref>:<disp-formula id="e29">
<mml:math id="m83">
<mml:mrow>
<mml:mtext>minimize&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>add</mml:mtext>
</mml:msub>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mrow>
<mml:mtext>subject&#x2009;to</mml:mtext>
<mml:mrow>
<mml:mfenced open="{" close="" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>add</mml:mtext>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>add</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>shift</mml:mtext>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>shift</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mtext>bit</mml:mtext>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
</sec>
</sec>
<sec id="s4">
<title>4 Proposed approach</title>
<p>To design a multiplier-less anti-jamming filter, the numerical power decomposition of the filter coefficients is first performed to obtain each decomposition factor. The multiplier-less coding of all decomposition factors is designed according to the optimal CSD coding method. The flowchart is shown in <xref ref-type="fig" rid="F6">Figure 6</xref>.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Cascaded multiplier-free implementation method flowchart.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g006.tif"/>
</fig>
<p>Firstly, the numerical power decomposition of the filter coefficient <inline-formula id="inf55">
<mml:math id="m84">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is carried out, and four kinds of decomposition factors are obtained. The decomposition matrix can be expressed as is shown in Eq. <xref ref-type="disp-formula" rid="e30">30</xref>:<disp-formula id="e30">
<mml:math id="m85">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>where, <inline-formula id="inf56">
<mml:math id="m86">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the i-th decomposition factor:</p>
<p>Assume that <inline-formula id="inf57">
<mml:math id="m87">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is a zero-order power factor <inline-formula id="inf58">
<mml:math id="m88">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and the first type of decomposition factor <inline-formula id="inf59">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the divisor <inline-formula id="inf60">
<mml:math id="m90">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> that can divide <inline-formula id="inf61">
<mml:math id="m91">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at most. Divide <inline-formula id="inf62">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by <inline-formula id="inf63">
<mml:math id="m93">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to get <inline-formula id="inf64">
<mml:math id="m94">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in Eqs <xref ref-type="disp-formula" rid="e31">31</xref>, <xref ref-type="disp-formula" rid="e32">32</xref>:<disp-formula id="e31">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="|" close="" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mi>mod</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mtext>floor</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
<disp-formula id="e32">
<mml:math id="m96">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>where, <inline-formula id="inf65">
<mml:math id="m97">
<mml:mrow>
<mml:mi>mod</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the residue function, <inline-formula id="inf66">
<mml:math id="m98">
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the binary length of <inline-formula id="inf67">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf68">
<mml:math id="m100">
<mml:mrow>
<mml:mtext>floor</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the down-integer function. The cascade of the first type of decomposition factor is realized by a <inline-formula id="inf69">
<mml:math id="m101">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th forward shift operation.</p>
<p>Assume that <inline-formula id="inf70">
<mml:math id="m102">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>l</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf71">
<mml:math id="m103">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>l</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is a one-order power factor <inline-formula id="inf72">
<mml:math id="m104">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, the second decomposition factor <inline-formula id="inf73">
<mml:math id="m105">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the divisor <inline-formula id="inf74">
<mml:math id="m106">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> that can divide <inline-formula id="inf75">
<mml:math id="m107">
<mml:mrow>
<mml:msup>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> at most. Divide <inline-formula id="inf76">
<mml:math id="m108">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> by <inline-formula id="inf77">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to get <inline-formula id="inf78">
<mml:math id="m110">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> as shown in Eqs <xref ref-type="disp-formula" rid="e33">33</xref>, <xref ref-type="disp-formula" rid="e34">34</xref>:<disp-formula id="e33">
<mml:math id="m111">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="|" close="" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mi>mod</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mtext>floor</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>
<disp-formula id="e34">
<mml:math id="m112">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="normal">&#x3a0;</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>where, <inline-formula id="inf79">
<mml:math id="m113">
<mml:mrow>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the binary length of <inline-formula id="inf80">
<mml:math id="m114">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. The second decomposition factor <inline-formula id="inf81">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is realized by an l-bit forward shift operation and an adder.</p>
<p>Assume that <inline-formula id="inf82">
<mml:math id="m116">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>m</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf83">
<mml:math id="m117">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>m</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf84">
<mml:math id="m118">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>m</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf85">
<mml:math id="m119">
<mml:mrow>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>m</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is the second-order power factor <inline-formula id="inf86">
<mml:math id="m120">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> The third decomposition factor <inline-formula id="inf87">
<mml:math id="m121">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the divisor <inline-formula id="inf88">
<mml:math id="m122">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> that can divide <inline-formula id="inf89">
<mml:math id="m123">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> at most. Devide <inline-formula id="inf90">
<mml:math id="m124">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> by <inline-formula id="inf91">
<mml:math id="m125">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to get <inline-formula id="inf92">
<mml:math id="m126">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in Eqs <xref ref-type="disp-formula" rid="e35">35</xref>, <xref ref-type="disp-formula" rid="e36">36</xref>:<disp-formula id="e35">
<mml:math id="m127">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="|" close="" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mi>mod</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mtext>floor</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>
<disp-formula id="e36">
<mml:math id="m128">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>3</mml:mn>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="normal">&#x3a0;</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3d2;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>j</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(36)</label>
</disp-formula>where, <inline-formula id="inf93">
<mml:math id="m129">
<mml:mrow>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the binary length of <inline-formula id="inf94">
<mml:math id="m130">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. The third type of decomposition factor is realized by 1&#xa0;m displacement bit operation, 1 n displacement bit operation and 2 adders.</p>
<p>The fourth decomposition factor <inline-formula id="inf95">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the remainder <inline-formula id="inf96">
<mml:math id="m132">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>3</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> divided by the third decomposition factor as shown in Eq. <xref ref-type="disp-formula" rid="e37">37</xref>:<disp-formula id="e37">
<mml:math id="m133">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a1;</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>3</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(37)</label>
</disp-formula>
</p>
<p>Define the multiplier-free implementation matrix is a cellular matrix as Eq. <xref ref-type="disp-formula" rid="e38">38</xref>:<disp-formula id="e38">
<mml:math id="m134">
<mml:mrow>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(38)</label>
</disp-formula>
</p>
<p>Based on complexity, a better multiplier-free implementation method is selected. In the decomposition process of any power factor <inline-formula id="inf97">
<mml:math id="m135">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, it should be ensured that the cumulative number of adders and the cumulative number of shift operations do not exceed the total number of CSD codes, as shown in Eqs <xref ref-type="disp-formula" rid="e39">39</xref>, <xref ref-type="disp-formula" rid="e40">40</xref>:<disp-formula id="e39">
<mml:math id="m136">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">&#x39b;</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mtext>add</mml:mtext>
<mml:mi>p</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>add</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(39)</label>
</disp-formula>
<disp-formula id="e40">
<mml:math id="m137">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">&#x39b;</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mtext>shift</mml:mtext>
<mml:mi>p</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>shift</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(40)</label>
</disp-formula>
</p>
<p>When Eqs <xref ref-type="disp-formula" rid="e39">39</xref>, <xref ref-type="disp-formula" rid="e40">40</xref> is violated in any numerical power decomposition process, the numerical decomposition should be stopped. The decomposition process takes the last decomposition factor as the penultimate factor, and the remainder divided by the penultimate factor is recorded as the last factor. When the complexity of the cascaded multiplier-less implementation is higher than that of the traditional optimal CSD coding, the optimal CSD coding method is still used to achieve multiplication-free coefficients.</p>
<p>According to Eqs <xref ref-type="disp-formula" rid="e7">7</xref>, <xref ref-type="disp-formula" rid="e38">38</xref>, the logic circuit flow of anti-jamming output signal is derived in Eq. <xref ref-type="disp-formula" rid="e41">41</xref>:<disp-formula id="e41">
<mml:math id="m138">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x220f;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>4</mml:mn>
</mml:munderover>
</mml:mstyle>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:munderover>
</mml:mstyle>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(41)</label>
</disp-formula>
</p>
</sec>
<sec id="s5">
<title>5 Performance analysis</title>
<sec id="s5-1">
<title>5.1 Algorithm complexity comparison</title>
<p>
<xref ref-type="table" rid="T1">Table 1</xref> presents the complexity comparison between the proposed method and the traditional multiplier-free implementation method, considering the number of adders, shift operations, and maximum word length. The table displays the number of devices for various values under both multiplier-free implementation methods, highlighting the less complex approach. Compared to the traditional optimal CSD coding, the proposed method significantly reduces complexity in multiplier-free implementation. The number of adders is reduced by 0 or 1, while the number of shift operations and the maximum word length are reduced significantly by 13 and 2, respectively.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Algorithm complexity comparison.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">Coefficient</th>
<th colspan="3" align="center">Traditional method</th>
<th colspan="4" align="center">Proposed method</th>
</tr>
<tr>
<th align="center">Adder</th>
<th align="center">Shift operation</th>
<th align="center">Maximum code length</th>
<th align="center">Decomposition structure</th>
<th align="center">Adder</th>
<th align="center">Shift operation</th>
<th align="center">Maximum code length</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">14</td>
<td align="center">1</td>
<td align="center">5</td>
<td align="center">5</td>
<td align="center">2&#x2a;7</td>
<td align="center">1</td>
<td align="center">4</td>
<td align="center">4</td>
</tr>
<tr>
<td align="center">27</td>
<td align="center">2</td>
<td align="center">7</td>
<td align="center">6</td>
<td align="center">3&#x2a;9</td>
<td align="center">2</td>
<td align="center">4</td>
<td align="center">4</td>
</tr>
<tr>
<td align="center">38</td>
<td align="center">2</td>
<td align="center">8</td>
<td align="center">6</td>
<td align="center">2&#x2a;19</td>
<td align="center">2</td>
<td align="center">6</td>
<td align="center">5</td>
</tr>
<tr>
<td align="center">85</td>
<td align="center">3</td>
<td align="center">12</td>
<td align="center">7</td>
<td align="center">5&#x2a;17</td>
<td align="center">2</td>
<td align="center">6</td>
<td align="center">5</td>
</tr>
<tr>
<td align="center">90</td>
<td align="center">3</td>
<td align="center">14</td>
<td align="center">7</td>
<td align="center">2&#x2a;3&#x2a;15</td>
<td align="center">2</td>
<td align="center">6</td>
<td align="center">5</td>
</tr>
<tr>
<td align="center">153</td>
<td align="center">3</td>
<td align="center">14</td>
<td align="center">8</td>
<td align="center">9&#x2a;17</td>
<td align="center">2</td>
<td align="center">7</td>
<td align="center">5</td>
</tr>
<tr>
<td align="center">170</td>
<td align="center">3</td>
<td align="center">16</td>
<td align="center">8</td>
<td align="center">2&#x2a;5&#x2a;17</td>
<td align="center">2</td>
<td align="center">7</td>
<td align="center">5</td>
</tr>
<tr>
<td align="center">231</td>
<td align="center">3</td>
<td align="center">16</td>
<td align="center">9</td>
<td align="center">7&#x2a;33</td>
<td align="center">2</td>
<td align="center">8</td>
<td align="center">6</td>
</tr>
<tr>
<td align="center">372</td>
<td align="center">3</td>
<td align="center">21</td>
<td align="center">9</td>
<td align="center">3&#x2a;4&#x2a;31</td>
<td align="center">2</td>
<td align="center">8</td>
<td align="center">6</td>
</tr>
<tr>
<td align="center">524</td>
<td align="center">2</td>
<td align="center">14</td>
<td align="center">10</td>
<td align="center">4&#x2a;131</td>
<td align="center">2</td>
<td align="center">10</td>
<td align="center">8</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In order to verify the universal adaptability of the cascaded multiplier-less algorithm, the application rate and complexity optimization performance of the new algorithm with 1&#x223c;1,000 values is analyzed, respectively. <xref ref-type="fig" rid="F7">Figure 7A</xref> shows the usage proportion of the proposed method. The total integer value of the coefficient is 1&#x223c;1,000, the smoothing point is set to 500, and the percentage of the cascade multiplier-less implementation is selected for each 400-point data calculation optimization method. The results show that as the coefficient increases, the optimization effect of the cascaded multiplier-less implementation method is better. <xref ref-type="fig" rid="F7">Figure 7B</xref> demonstrates the smoothing result of the device reduction after using the proposed algorithm. Since the device complexity optimization results are relatively scattered, 59 is used as the smoothing unit to smooth the optimization data of adder, shift operation, and maximum coding word length, respectively. The results show that the cascade multiplier-free implementation method significantly reduces the number of the three devices on the graph. Among them, the number of shift operations decreases the most, and the maximum reduction reaches 19.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Universal adaptability analysis. <bold>(A)</bold> Usage proportion of the proposed method. <bold>(B)</bold> Complexity optimization performance.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g007.tif"/>
</fig>
<p>The digital filters with lengths of 31 and 59 are designed by software. The filter quantization bit width is 12, and the initially designed filter is quantized. The optimization effect of the proposed method on the device complexity is verified based on the designed anti-jamming filter to ensure the effectiveness of the cascaded multiplier-free method in the GNSS receiver. <xref ref-type="fig" rid="F8">Figure 8</xref> shows that the optimal CSD coding method based on cascaded multiplier-free implementation reduces the multiplier and shift operations compared with CSD coding. After filter coefficient decomposition, the number of adders optimized by CSD coding is reduced by 0&#x2013;2, and the shift operation is reduced by 0&#x2013;5.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Complexity optimization comparison of different CSD codes based on factor cascade. <bold>(A)</bold> 30-order filter. <bold>(B)</bold> 58-order filter.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g008.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F9">Figure 9</xref> compares the anti-jamming filter complexity based on the cascaded multiplier-free implementation and the traditional method to verify the method availability. The results show that the adder reduction of the proposed method is greater than 0 compared with the traditional method, and the complexity reduction of the shift operation and the maximum code length is more pronounced. When the middle tap coefficient of the 58-order filter is 1,024, the number of shift operations is reduced by 20, and the maximum code length is reduced by 5.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Comparison of device count between the proposed and traditional multiplier-free method. <bold>(A)</bold> 30-order filter. <bold>(B)</bold> 58-order filter.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g009.tif"/>
</fig>
<p>Debugging and verification were performed on the test platform illustrated in <xref ref-type="fig" rid="F3">Figure 3</xref>. By minimizing the number of effective operations, cascading multiplication-free processing was applied to the constant multiplier. The anti-jamming module achieved a 52% reduction in its effective circuit area.</p>
</sec>
<sec id="s5-2">
<title>5.2 Anti-jamming performance</title>
<p>The carrier-to-noise ratio (CNR) after interference mitigation is a quantitative assessment metric for evaluating time-domain interference resistance [<xref ref-type="bibr" rid="B32">32</xref>]. It is defined as the ratio of the carrier power to the power spectral density of the baseband signal noise. A too low carrier-to-noise ratio can severely affect the receiver&#x2019;s ability to correctly capture and track. Carrier-to-noise ratio loss is the difference between the carrier-to-noise ratio under no-interference conditions and the carrier-to-noise ratio after interference mitigation defiened as Eq. <xref ref-type="disp-formula" rid="e42">42</xref>.<disp-formula id="e42">
<mml:math id="m139">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>ajm</mml:mtext>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>lg</mml:mi>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>&#x22c5;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(42)</label>
</disp-formula>Where, <inline-formula id="inf98">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf99">
<mml:math id="m141">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf100">
<mml:math id="m142">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are the power spectral densities of navigation signal, noise signal and anti-interference signal respectively, <inline-formula id="inf101">
<mml:math id="m143">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the filter frequency response, and <inline-formula id="inf102">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the noise bandwidth.</p>
<p>A static filter with the navigation signal frequency as the stopband center frequency is designed, and the filter quantization bit width is set to 12. The carrier-to-noise ratio (CNR) of the BD3 signal is set to 50&#xa0;dB&#xb7;Hz, the interference bandwidth is 2MHz, the jamming-to-signal ratio (JSR) is 40dB, and the sampling rate of the software receiver is 25&#xa0;MHz. The narrowband interference suppression performance based on the BD3 signal is shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. <xref ref-type="fig" rid="F10">Figure 10A</xref> shows the spectrum before and after anti-jamming. The results show that the cascaded multiplier-free method can achieve anti-interference. The adaptive filter forms a null at least 30&#xa0;dB in the interference frequency band. <xref ref-type="fig" rid="F10">Figure 10B</xref> shows the navigation signal CNR after suppressing interference. The maximum CNR loss is less than 2&#xa0;dB&#xb7;Hz.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Interference suppression performance. <bold>(A)</bold> Spectrum diagram before and after anti-jamming. <bold>(B)</bold> Anti-jamming output CNR.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g010.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F11">Figure 11</xref> analyzes the ranging accuracy of the cascaded multiplication-free anti-interference method. <xref ref-type="fig" rid="F11">Figure 11A</xref> displays the correlation function between the anti-interference output and the local signals. By observing the 10 chips surrounding the correlation peak, the correlation function of the output signal remains symmetric with the local signal, and the correlation peak position shows no obvious distortion. <xref ref-type="fig" rid="F11">Figure 11B</xref> measures the symmetry of the correlation peak by the SCB curve bias and quantitatively analyzes the ranging deviation of the receiver [<xref ref-type="bibr" rid="B30">30</xref>]. Control the convergence step to reduce the influence of the time-varying filter on the ranging accuracy. Under a 31-order anti-interference filter, the pseudo-range measurement deviation is kept within 0.27&#xa0;ns, which can ensure the ranging accuracy.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Measurement accuracy analysis. <bold>(A)</bold> The correlation function of the output and local signals. <bold>(B)</bold> SCB curve bias.</p>
</caption>
<graphic xlink:href="fphy-12-1404236-g011.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>This paper introduces a cascaded multiplier-free implementation method and enhances the corresponding implementation scheme. This method is applied to the static time domain anti-jamming of GNSS receivers by replacing multipliers with a minimal number of adders and shift operations, utilizing optimal CSD coding and numerical power decomposition. Simulation results demonstrate that interference occupying 20% of the navigation signal bandwidth can be effectively suppressed, optimizing the anti-jamming filter structure. The number of adders, shift operations, and maximum code length are significantly reduced, with the maximum number of shift operations decreased by 20. The pseudo-range measurement accuracy has been verified to be within 0.27&#xa0;ns, ensuring adequate ranging performance.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The raw data supporting the conclusion of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>JS: Writing&#x2013;review and editing, Writing&#x2013;original draft, Software, Methodology, Data curation. LC: Writing&#x2013;review and editing, Writing&#x2013;original draft, Methodology, Conceptualization. ZuL: Writing&#x2013;review and editing, Methodology, Investigation, Funding acquisition, Conceptualization. BL: Writing&#x2013;review and editing, Supervision, Investigation. ZhL: Writing&#x2013;review and editing, Supervision, Formal Analysis, Data curation. ZX: Writing&#x2013;review and editing, Visualization, Supervision, Software. GS: Writing&#x2013;review and editing, Supervision, Resources, Project administration. WL: Writing&#x2013;review and editing, Supervision, Resources, Investigation.</p>
</sec>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>The authors declare that financial support was received for the research, authorship, and/or publication of this article. This research was funded by the National Natural Science Foundation of China (No. 62003354).</p>
</sec>
<ack>
<p>The authors would like to thank the editors and reviewers for their efforts to help the publication of this paper.</p>
</ack>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ferrara</surname>
<given-names>NG</given-names>
</name>
<name>
<surname>Bhuiyan</surname>
<given-names>MZH</given-names>
</name>
<name>
<surname>S&#xf6;derholm</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Ruotsalainen</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Kuusniemi</surname>
<given-names>H</given-names>
</name>
</person-group>. <article-title>A new implementation of narrowband interference detection, characterization, and mitigation technique for a software-defined multi-gnss receiver</article-title>. <source>GPS Solutions</source> (<year>2018</year>) <volume>22</volume>(<issue>4</issue>):<fpage>106</fpage>. <pub-id pub-id-type="doi">10.1007/s10291-018-0769-z</pub-id>
</citation>
</ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>S</given-names>
</name>
</person-group>. <article-title>Experimental research on narrowband interference suppression of gnss signals</article-title>. <source>Wireless Commun Mobile Comput</source> (<year>2021</year>) <volume>2021</volume>:<fpage>3410741</fpage>&#x2013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1155/2021/3410741</pub-id>
</citation>
</ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>HZ</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>GH</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>XD</given-names>
</name>
</person-group>. <article-title>Evaluation method of noise electromagnetic radiation interference effect</article-title>. <source>IEEE Trans Electromagn Compatibility</source> (<year>2023</year>) <volume>65</volume>(<issue>1</issue>):<fpage>69</fpage>&#x2013;<lpage>78</lpage>. <pub-id pub-id-type="doi">10.1109/TEMC.2022.3224791</pub-id>
</citation>
</ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Falletti</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Gamba</surname>
<given-names>MT</given-names>
</name>
<name>
<surname>Pini</surname>
<given-names>M</given-names>
</name>
</person-group>. <article-title>Design and analysis of activation strategies for adaptive notch filters to suppress gnss jamming</article-title>. <source>IEEE Trans Aerospace Electron Syst</source> (<year>2020</year>) <volume>56</volume>(<issue>5</issue>):<fpage>3718</fpage>&#x2013;<lpage>34</lpage>. <pub-id pub-id-type="doi">10.1109/TAES.2020.2982301</pub-id>
</citation>
</ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Ying</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Zhixiong</surname>
<given-names>W</given-names>
</name>
</person-group>. <article-title>The frequency spectrum management for aerospace tt&#x26;C system</article-title>. In: <conf-name>2013 5th IEEE International Symposium on Microwave, Antenna, Propagation and EMC Technologies for Wireless Communications</conf-name>; <conf-date>29-31 October 2013</conf-date>; <conf-loc>Chengdu, China</conf-loc> (<year>2013</year>).</citation>
</ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chien</surname>
<given-names>Y-R</given-names>
</name>
</person-group>. <article-title>Design of GPS anti-jamming systems using adaptive notch filters</article-title>. <source>IEEE Syst J</source> (<year>2015</year>) <volume>9</volume>(<issue>9</issue>):<fpage>451</fpage>&#x2013;<lpage>60</lpage>. <pub-id pub-id-type="doi">10.1109/JSYST.2013.2283753</pub-id>
</citation>
</ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Zhi</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J</given-names>
</name>
</person-group>. <article-title>Performance analysis of subspace projection algorithm with respect to projection length for GNSS jamming mitigation</article-title>. <source>Digit Signal Process</source> (<year>2023</year>) <volume>142</volume>:<fpage>104212</fpage>. <pub-id pub-id-type="doi">10.1016/j.dsp.2023.104212</pub-id>
</citation>
</ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>Q</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X</given-names>
</name>
</person-group>. <article-title>Adaptive narrow-band interference suppression and performance evaluation based on code-aided in GNSS inter-satellite links</article-title>. <source>IEEE Syst J</source> (<year>2020</year>) <volume>14</volume>:<fpage>538</fpage>&#x2013;<lpage>47</lpage>. <pub-id pub-id-type="doi">10.1109/JSYST.2019.2918055</pub-id>
</citation>
</ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>W</given-names>
</name>
</person-group>. <article-title>Variable tap-length lms algorithm based on adaptive parameters for tdl structure adaption</article-title>. <source>IEEE Signal Process. Lett</source> (<year>2014</year>) <volume>21</volume>(<issue>7</issue>):<fpage>809</fpage>&#x2013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.1109/LSP.2014.2317752</pub-id>
</citation>
</ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Grant</surname>
<given-names>SL</given-names>
</name>
</person-group>. <article-title>Proportionate adaptive filtering for block-sparse system identification</article-title>. <source>IEEE/ACM Trans Audio, Speech, Lang Process</source> (<year>2016</year>) <volume>24</volume>(<issue>4</issue>):<fpage>623</fpage>&#x2013;<lpage>30</lpage>. <pub-id pub-id-type="doi">10.1109/TASLP.2015.2499602</pub-id>
</citation>
</ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Lou</surname>
<given-names>X</given-names>
</name>
</person-group>. <article-title>Design of sparse fir filters with reduced effective length</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2019</year>) <volume>66</volume>(<issue>4</issue>):<fpage>1496</fpage>&#x2013;<lpage>506</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2018.2883965</pub-id>
</citation>
</ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Garcia</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Volkova</surname>
<given-names>A</given-names>
</name>
</person-group>. <article-title>Toward the multiple constant multiplication at minimal hardware cost</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2023</year>) <volume>70</volume>(<issue>5</issue>):<fpage>1976</fpage>&#x2013;<lpage>88</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2023.3241859</pub-id>
</citation>
</ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lakshmi</surname>
<given-names>V</given-names>
</name>
<name>
<surname>Pudi</surname>
<given-names>V</given-names>
</name>
<name>
<surname>Reuben</surname>
<given-names>J</given-names>
</name>
</person-group>. <article-title>Inner product computation in-memory using distributed arithmetic</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2022</year>) <volume>69</volume>(<issue>11</issue>):<fpage>4546</fpage>&#x2013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2022.3193678</pub-id>
</citation>
</ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Aksoy</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Roy</surname>
<given-names>DB</given-names>
</name>
<name>
<surname>Imran</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Karl</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Pagliarini</surname>
<given-names>S</given-names>
</name>
</person-group>. <article-title>Multiplierless design of very large constant multiplications in cryptography</article-title>. <source>IEEE Trans Circuits Syst Express Briefs</source> (<year>2022</year>) <volume>69</volume>(<issue>11</issue>):<fpage>4503</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.1109/TCSII.2022.3191662</pub-id>
</citation>
</ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohamed</surname>
<given-names>SM</given-names>
</name>
<name>
<surname>Sayed</surname>
<given-names>WS</given-names>
</name>
<name>
<surname>Radwan</surname>
<given-names>AG</given-names>
</name>
<name>
<surname>Said</surname>
<given-names>LA</given-names>
</name>
</person-group>. <article-title>Fpga implementation of reconfigurable cordic algorithm and a memristive chaotic system with transcendental nonlinearities</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2022</year>) <volume>69</volume>(<issue>7</issue>):<fpage>2885</fpage>&#x2013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2022.3165469</pub-id>
</citation>
</ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ye</surname>
<given-names>WB</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>YJ</given-names>
</name>
</person-group>. <article-title>Bit-level multiplierless fir filter optimization incorporating sparse filter technique</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2014</year>) <volume>61</volume>(<issue>11</issue>):<fpage>3206</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2014.2327287</pub-id>
</citation>
</ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kumm</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Volkova</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Filip</surname>
<given-names>SI</given-names>
</name>
</person-group>. <article-title>Design of optimal multiplierless fir filters with minimal number of adders</article-title>. <source>IEEE Trans Computer-Aided Des Integrated Circuits Syst</source> (<year>2023</year>) <volume>42</volume>(<issue>2</issue>):<fpage>658</fpage>&#x2013;<lpage>71</lpage>. <pub-id pub-id-type="doi">10.1109/TCAD.2022.3179221</pub-id>
</citation>
</ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Samueli</surname>
<given-names>H</given-names>
</name>
</person-group>. <article-title>An improved search algorithm for the design of multiplierless fir filters with powers-of-two coefficients</article-title>. <source>IEEE Trans Circuits Syst</source> (<year>1989</year>) <volume>36</volume>(<issue>7</issue>):<fpage>1044</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.1109/31.31347</pub-id>
</citation>
</ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Thong</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Nicolici</surname>
<given-names>N</given-names>
</name>
</person-group> <source>Combined optimal and heuristic approaches for multiple constant multiplication</source> (<year>2010</year>). p. <fpage>266</fpage>&#x2013;<lpage>73</lpage>.</citation>
</ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Aktan</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Yurdakul</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Dundar</surname>
<given-names>G</given-names>
</name>
</person-group>. <article-title>An algorithm for the design of low-power hardware-efficient fir filters</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2008</year>) <volume>55</volume>(<issue>6</issue>):<fpage>1536</fpage>&#x2013;<lpage>45</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2008.917997</pub-id>
</citation>
</ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shahein</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q</given-names>
</name>
<name>
<surname>Lotze</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Manoli</surname>
<given-names>Y</given-names>
</name>
</person-group>. <article-title>A novel hybrid monotonic local search algorithm for fir filter coefficients optimization</article-title>. <source>IEEE Trans Circuits Syst Regular Pap</source> (<year>2012</year>) <volume>59</volume>(<issue>3</issue>):<fpage>616</fpage>&#x2013;<lpage>27</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2011.2165409</pub-id>
</citation>
</ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Xiao</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>G</given-names>
</name>
</person-group>. <article-title>Optimal order of time-domain adaptive filter for anti-jamming navigation receiver</article-title>. <source>Remote Sensing</source> (<year>2022</year>) <volume>14</volume>(<issue>1</issue>):<fpage>48</fpage>. <pub-id pub-id-type="doi">10.3390/rs14010048</pub-id>
</citation>
</ref>
<ref id="B23">
<label>23.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lv</surname>
<given-names>Q</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>H</given-names>
</name>
</person-group>. <article-title>General method to mitigate the continuous wave interference and narrowband interference for gnss receivers</article-title>. <source>IET Radar, Sonar &#x26; Navigation</source> (<year>2020</year>) <volume>14</volume>(<issue>9</issue>):<fpage>1430</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1049/iet-rsn.2020.0115</pub-id>
</citation>
</ref>
<ref id="B24">
<label>24.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mosavi</surname>
<given-names>MR</given-names>
</name>
<name>
<surname>Shafiee</surname>
<given-names>F</given-names>
</name>
</person-group>. <article-title>Narrowband interference suppression for gps navigation using neural networks</article-title>. <source>GPS Solutions</source> (<year>2016</year>) <volume>20</volume>(<issue>3</issue>):<fpage>341</fpage>&#x2013;<lpage>51</lpage>. <pub-id pub-id-type="doi">10.1007/s10291-015-0442-8</pub-id>
</citation>
</ref>
<ref id="B25">
<label>25.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Elghamrawy</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Karaim</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Tamazin</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Noureldin</surname>
<given-names>A</given-names>
</name>
</person-group>. <article-title>Experimental evaluation of the impact of different types of jamming signals on commercial gnss receivers</article-title>. <source>Appl Sci</source> (<year>2020</year>) <volume>10</volume>(<issue>12</issue>):<fpage>4240</fpage>. <comment>(2076-3417)</comment>. <pub-id pub-id-type="doi">10.3390/app10124240</pub-id>
</citation>
</ref>
<ref id="B26">
<label>26.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Qiao</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>B</given-names>
</name>
<etal/>
</person-group> <article-title>Influence of sweep interference on satellite navigation time-domain anti-jamming</article-title>. <source>Front Phys</source> (<year>2023</year>) <volume>10</volume>. <pub-id pub-id-type="doi">10.3389/fphy.2022.1063474</pub-id>
</citation>
</ref>
<ref id="B27">
<label>27.</label>
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Zhen</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>P</given-names>
</name>
<etal/>
</person-group> <article-title>A fast and energy efficient binary-to-pseudo csd converter</article-title>. In: <conf-name>2015 IEEE International Symposium on Circuits and Systems (ISCAS)</conf-name>; <conf-date>24-27 May 2015</conf-date> (<year>2015</year>). <pub-id pub-id-type="doi">10.1109/iscas.2015.7168764</pub-id>
</citation>
</ref>
<ref id="B28">
<label>28.</label>
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Saneei</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Afzali-Kusha</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Navabi</surname>
<given-names>Z</given-names>
</name>
</person-group>. <article-title>A low power technique based on sign bit reduction</article-title>. In: <conf-name>Proceedings The 16th International Conference on Microelectronics, 2004 ICM 2004</conf-name>; <conf-date>6-8 Dec. 2004</conf-date> (<year>2004</year>).</citation>
</ref>
<ref id="B29">
<label>29.</label>
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Cai</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>W</given-names>
</name>
</person-group>. <article-title>Design of approximate multiplierless dct with csd encoding for image processing</article-title>. In: <conf-name>2021 IEEE International Symposium on Circuits and Systems (ISCAS)</conf-name>; <conf-date>22-28 May 2021</conf-date> (<year>2021</year>). <pub-id pub-id-type="doi">10.1109/iscas51556.2021.9401200</pub-id>
</citation>
</ref>
<ref id="B30">
<label>30.</label>
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Erdogan</surname>
<given-names>AT</given-names>
</name>
<name>
<surname>Arslan</surname>
<given-names>T</given-names>
</name>
</person-group>. <article-title>A coefficient segmentation algorithm for low power implementation of fir filters</article-title>. In: <conf-name>1999 IEEE International Symposium on Circuits and Systems (ISCAS)</conf-name>; <conf-date>30 May-2 June 1999</conf-date> (<year>1999</year>).</citation>
</ref>
<ref id="B31">
<label>31.</label>
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Saneei</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Afzali-Kusha</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Navabi</surname>
<given-names>Z</given-names>
</name>
</person-group>. <article-title>Sign bit reduction encoding for low power applications</article-title>. In: <conf-name>Proceedings 42nd Design Automation Conference</conf-name>; <conf-date>13-17 June 2005</conf-date> (<year>2005</year>).</citation>
</ref>
<ref id="B32">
<label>32.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>F</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Y</given-names>
</name>
<etal/>
</person-group> <article-title>Tradeoff of code estimation error rate and terminal gain in SCER attack</article-title>. <source>IEEE Trans. Instrum. Meas</source>. (<year>2024</year>). <pub-id pub-id-type="doi">10.1109/TIM.2024.3406807</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>