<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">
    ars
   </journal-id>
   <journal-title-group>
    <journal-title>
     Advances in Remote Sensing
    </journal-title>
   </journal-title-group>
   <issn pub-type="epub">
    2169-267X
   </issn>
   <issn publication-format="print">
    2169-2688
   </issn>
   <publisher>
    <publisher-name>
     Scientific Research Publishing
    </publisher-name>
   </publisher>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="doi">
    10.4236/ars.2025.143010
   </article-id>
   <article-id pub-id-type="publisher-id">
    ars-145940
   </article-id>
   <article-categories>
    <subj-group subj-group-type="heading">
     <subject>
      Articles
     </subject>
    </subj-group>
    <subj-group subj-group-type="Discipline-v2">
     <subject>
      Computer Science 
     </subject>
     <subject>
       Communications
     </subject>
    </subj-group>
   </article-categories>
   <title-group>
    Signal Space Solutions for GNSS Interference
   </title-group>
   <contrib-group>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       John E.
      </surname>
      <given-names>
       Piper
      </given-names>
     </name>
    </contrib>
   </contrib-group> 
   <aff id="affnull">
    <addr-line>
     aAdvanced Array Solutions, Panama City Beach, FL, USA
    </addr-line> 
   </aff> 
   <pub-date pub-type="epub">
    <day>
     06
    </day> 
    <month>
     08
    </month>
    <year>
     2025
    </year>
   </pub-date> 
   <volume>
    14
   </volume> 
   <issue>
    03
   </issue>
   <fpage>
    164
   </fpage>
   <lpage>
    169
   </lpage>
   <history>
    <date date-type="received">
     <day>
      28,
     </day>
     <month>
      August
     </month>
     <year>
      2025
     </year>
    </date>
    <date date-type="published">
     <day>
      21,
     </day>
     <month>
      August
     </month>
     <year>
      2025
     </year> 
    </date> 
    <date date-type="accepted">
     <day>
      21,
     </day>
     <month>
      September
     </month>
     <year>
      2025
     </year> 
    </date>
   </history>
   <permissions>
    <copyright-statement>
     © Copyright 2014 by authors and Scientific Research Publishing Inc. 
    </copyright-statement>
    <copyright-year>
     2014
    </copyright-year>
    <license>
     <license-p>
      This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
     </license-p>
    </license>
   </permissions>
   <abstract>
    Precise positioning is available from global navigation satellite systems (GNSS). Unfortunately, satellite signals are weak and a strong interference signal can create a GNSS denial region. The solution requires spatially separating the valid signals from the interference signal. The traditional approach involves constructing a beampattern that puts a sidelobe null in the direction of the interference signal while putting valid signals into the mainlobe or sidelobes. This approach is seen as suboptimal because of array constraints on the beampattern. An alternative approach is presented here that uses linear algebra methods. Physically, all the signals are mapped onto a receive antenna array vector. The signal space approach inverts this mapping which results in a signal vector that completely decouples the valid signals from the interference signal. This allows only the valid signals to be used for positioning. Implementation of this alternative approach yields an adaptive set of antenna array weights calculated using linear algebra methods to decouple all the signals.
   </abstract>
   <kwd-group> 
    <kwd>
     GNSS Interference
    </kwd> 
    <kwd>
      Anti-Jam
    </kwd> 
    <kwd>
      Signal Space
    </kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <sec id="s1">
   <title>1. Introduction</title>
   <p>Beamforming attempts to spatially receive signals of interest and reject interference signals. Traditionally, large arrays have good resolution and have many sidelobe nulls which can be steered to reject interference signals. However, GNSS antennas tend to be small which can be problematic for resolution and use of nulls. Nevertheless, commercial companies <xref ref-type="bibr" rid="scirp.145940-1">
     [1]
    </xref> <xref ref-type="bibr" rid="scirp.145940-2">
     [2]
    </xref> produce anti-jam products that claim a 40 dB reduction of an interference signal using a controlled radiation pattern antenna, CRPA <xref ref-type="bibr" rid="scirp.145940-3">
     [3]
    </xref>.</p>
   <p>The approach used in this paper is based on a novel approach to exploit signal space for beamforming. The signal space viewpoint has been one of the foundations of modern digital communication theory <xref ref-type="bibr" rid="scirp.145940-4">
     [4]
    </xref> <xref ref-type="bibr" rid="scirp.145940-5">
     [5]
    </xref>. Signal space approaches have also been used for determining signal directions <xref ref-type="bibr" rid="scirp.145940-6">
     [6]
    </xref> <xref ref-type="bibr" rid="scirp.145940-7">
     [7]
    </xref>.</p>
   <p>For beamforming a signal space vector is constructed to include both valid signals and interference signals. It should be mentioned that signal space can have a large number of dimensions which is very useful compared to the limitations of three dimensions used in traditional beamforming. Since the signals in this signal space vector are all in their own dimension, they are decoupled from all the other signals. This simple mathematical property is the key to this signal space approach.</p>
  </sec><sec id="s2">
   <title>2. Beampattern Approach versus Signal Space Approach</title>
   <p>It is instructive to consider the performance of the two approaches in a simple array processing problem involving two antennas and two signal sources. In general, it is not possible to separate two signals with two antennas using a beampattern approach. The array geometry constrains the beampattern to have a wide mainlobe and one null. These are not independent. The mainlobe may be steered using a delay-and-sum method but this also moves the null. The mainlobe width and null locations are problematic even with more antennas.</p>
   <p>The signal space approach to array processing is purely based on the mathematics of linear algebra <xref ref-type="bibr" rid="scirp.145940-8">
     [8]
    </xref>. For the two antennas and two signals case, this approach puts the two signals into a vector, s. Although this may appear to be a trivial step, it creates a vector space that has useful properties. The physical interpretation can readily be seen where the signal vector, s, is mapped using delays, Δ, onto the antenna vector, a. This mapping is often called the delay or direction matrix, D. The mapping can be represented as:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <mtable> 
             <mtr> 
              <mtd> 
               <mn>
                 1 
               </mn> 
              </mtd> 
             </mtr> 
             <mtr> 
              <mtd> 
               <mrow> 
                <msub> 
                 <mi>
                   Δ 
                 </mi> 
                 <mrow> 
                  <mn>
                    12 
                  </mn> 
                 </mrow> 
                </msub> 
               </mrow> 
              </mtd> 
             </mtr> 
            </mtable> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtable> 
             <mtr> 
              <mtd> 
               <mn>
                 1 
               </mn> 
              </mtd> 
             </mtr> 
             <mtr> 
              <mtd> 
               <mrow> 
                <msub> 
                 <mi>
                   Δ 
                 </mi> 
                 <mrow> 
                  <mn>
                    22 
                  </mn> 
                 </mrow> 
                </msub> 
               </mrow> 
              </mtd> 
             </mtr> 
            </mtable> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
     </mrow> 
    </math>(1)</p>
   <p>Since a is measured and known, we need to invert the above equation to solve for s. This is easily done using the inverse of the delay matrix, D:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <msup> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msup> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
     </mrow> 
    </math>(2)</p>
   <p>This signal space approach accurately yields the two source signals using a linear algebra approach. It does not have any beampattern constraints such as the width and location of mainlobes, sidelobes, or nulls.</p>
  </sec><sec id="s3">
   <title>3. GNSS Interference Separation</title>
   <p>The above simple case can easily be extended to the GNSS case. Here there are N signals that correspond to a minimum of 4 valid GNSS signals and 1 or more unwanted interference signal. These arrive from N directions onto an antenna array with M elements. Each antenna element, a<sub>k</sub>(t), receives all of the N signals, s<sub>j</sub>(t), at various delays, Δ<sub>jk</sub>. This can be represented mathematically as the N-signal vector, s, mapped onto an M-antenna vector, a:</p>
   <p>
    <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mn>
               3 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               a 
             </mi> 
             <mi>
               M 
             </mi> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
      <mo>
        = 
      </mo> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mn>
             1 
           </mn> 
          </mtd> 
          <mtd> 
           <mn>
             1 
           </mn> 
          </mtd> 
          <mtd> 
           <mn>
             1 
           </mn> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mn>
             1 
           </mn> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                12 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                22 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                32 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mi>
                N 
              </mi> 
              <mn>
                2 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                13 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                23 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                33 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mi>
                N 
              </mi> 
              <mn>
                3 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋱ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                1 
              </mn> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                2 
              </mn> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mn>
                3 
              </mn> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               Δ 
             </mi> 
             <mrow> 
              <mi>
                N 
              </mi> 
              <mi>
                M 
              </mi> 
              <mo> 
              </mo> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               1 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               2 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mn>
               3 
             </mn> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <msub> 
             <mi>
               s 
             </mi> 
             <mi>
               N 
             </mi> 
            </msub> 
            <mrow> 
             <mo>
               ( 
             </mo> 
             <mi>
               t 
             </mi> 
             <mo>
               ) 
             </mo> 
            </mrow> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (3)</p>
   <p>where,</p>
   <p>s<sub>j</sub>(t) = j<sup>th</sup> valid signal or interference signal,</p>
   <p>a<sub>k</sub>(t) = k<sup>th</sup> antenna received signal,</p>
   <p>Δ<sub>jk</sub> = mapping (delay) of j<sup>th</sup> signal onto k<sup>th</sup> antenna.</p>
   <p>Equation (3) yields the antenna outputs, a, given the delay or direction matrix, D, and the signal vector, s. Since the antenna outputs, a, are known, it is necessary to invert this matrix equation to solve for the unknown signal vector, s.</p>
   <p>The Moore-Penrose inverse is a linear algebra method that can be applied to this problem. It should be mentioned that the Moore-Penrose inverse is the least-squares estimate for over-constrained matrices, such as when the number of antenna elements, M, is larger than the number of signals, N. If M = N, then this is a square matrix which can be inverted by a number of methods including the Moore-Penrose inverse.</p>
   <p>It is informative to show how the Moore-Penrose inverse works and how it relates to traditional beamforming. Equation (3) can be compactly represented as:</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        a 
      </mi> 
      <mo>
        = 
      </mo> 
      <mi>
        D 
      </mi> 
      <mi>
        s 
      </mi> 
     </mrow> 
    </math> (4)</p>
   <p>Equation (4) is then left multiplied by D<sup>†</sup>, which is the transpose of D with its delays reversed.</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msup> 
       <mi>
         D 
       </mi> 
       <mo>
         † 
       </mo> 
      </msup> 
      <mi>
        a 
      </mi> 
      <mo>
        = 
      </mo> 
      <msup> 
       <mi>
         D 
       </mi> 
       <mo>
         † 
       </mo> 
      </msup> 
      <mi>
        D 
      </mi> 
      <mi>
        s 
      </mi> 
     </mrow> 
    </math> (5)</p>
   <p>Equation (5) is then left multiplied by (D<sup>†</sup>D)<sup>−</sup><sup>1</sup>. This result is the Moore-Penrose inverse that yields the signal vector from the measured antenna outputs.</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        s 
      </mi> 
      <mo>
        = 
      </mo> 
      <msup> 
       <mrow> 
        <mrow> 
         <mo>
           ( 
         </mo> 
         <mrow> 
          <msup> 
           <mi>
             D 
           </mi> 
           <mo>
             † 
           </mo> 
          </msup> 
          <mi>
            D 
          </mi> 
         </mrow> 
         <mo>
           ) 
         </mo> 
        </mrow> 
       </mrow> 
       <mrow> 
        <mo>
          − 
        </mo> 
        <mn>
          1 
        </mn> 
       </mrow> 
      </msup> 
      <msup> 
       <mi>
         D 
       </mi> 
       <mo>
         † 
       </mo> 
      </msup> 
      <mi>
        a 
      </mi> 
     </mrow> 
    </math> (6)</p>
   <p>It is important to note that in this representation all of the signals are in their own dimensional space and are completely decoupled from other signals. This allows the valid GNSS signals to be separated from the interference signal(s). It is also important to note that for the one-signal case (D<sup>†</sup>D)<sup>−</sup><sup>1</sup> reduces to a normalization scalar and the D<sup>†</sup>a term is simple beam steering. However, this is not the case for multiple signals where the (D<sup>†</sup>D)<sup>−</sup><sup>1</sup> term must be included. This matrix is only poorly conditioned when the signals are spatially very close. Resulting errors could allow some of the interference into the valid signal dimension. Of incidental importance is that the (D<sup>†</sup>D)<sup>−</sup><sup>1</sup> term is the metric of this signal vector space. The practical importance of the (D<sup>†</sup>D)<sup>−</sup><sup>1</sup>D<sup>†</sup> term in equation (6) is that it can be considered the antenna weight matrix. These antenna weights allow a simple implementation of the signal space approach as a beamformer.</p>
  </sec><sec id="s4">
   <title>4. Signal Separation Simulation</title>
   <p>The directions-of-arrival of the GNSS signals are very accurately known due to the spacecraft broadcasting its almanac and ephemeris. The direction toward the interference signal needs to be accurately estimated to produce good results. This may be known a priori. The maximum likelihood method can produce a very good direction estimate of the interference signal, especially when that signal is strong.</p>
   <p>Some improvement to the direction estimate can be obtained by minimizing the leakage of the interference into valid signal dimensions. This is an ongoing research interest of the author and beyond the scope of this paper. However, it should be mentioned that even a fraction of a degree error in the interference direction will map some of the interference into the valid signal dimensions. This will lead to less than complete separation,</p>
   <p>Once the directions to all the signals are known, the time delay, Δ<sub>jk</sub>, associated with the j<sup>th</sup> signal onto the k<sup>th</sup> antenna is simply the dot product of the signal unit direction vector, d<sub>j</sub>, and the antenna geometry vector, x<sub>k</sub>, divided by the speed of light:</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mi>
         Δ 
       </mi> 
       <mrow> 
        <mi>
          j 
        </mi> 
        <mi>
          k 
        </mi> 
       </mrow> 
      </msub> 
      <mo>
        = 
      </mo> 
      <msub> 
       <mi>
         d 
       </mi> 
       <mi>
         j 
       </mi> 
      </msub> 
      <mo>
        ⋅ 
      </mo> 
      <mrow> 
       <mrow> 
        <msub> 
         <mi>
           x 
         </mi> 
         <mi>
           k 
         </mi> 
        </msub> 
       </mrow> 
       <mo>
         / 
       </mo> 
       <mi>
         c 
       </mi> 
      </mrow> 
     </mrow> 
    </math> (10)</p>
   <p>In the case of narrowband signals, it is useful to convert these time delays into phase shifts:</p>
   <p>
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <msub> 
       <mi>
         Θ 
       </mi> 
       <mrow> 
        <mi>
          j 
        </mi> 
        <mi>
          k 
        </mi> 
       </mrow> 
      </msub> 
      <mo>
        = 
      </mo> 
      <mn>
        2 
      </mn> 
      <mi>
        π 
      </mi> 
      <mtext>
          
      </mtext> 
      <mi>
        f 
      </mi> 
      <mi>
        r 
      </mi> 
      <mi>
        e 
      </mi> 
      <mi>
        q 
      </mi> 
      <mo>
        ⋅ 
      </mo> 
      <msub> 
       <mi>
         Δ 
       </mi> 
       <mrow> 
        <mi>
          j 
        </mi> 
        <mi>
          k 
        </mi> 
       </mrow> 
      </msub> 
     </mrow> 
    </math> (11)</p>
   <p>The delay matrix can then be expressed in terms of phase shifts:</p>
   <p>
    <xref ref-type="bibr" rid="scirp.145940-"></xref> 
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        D 
      </mi> 
      <mo>
        = 
      </mo> 
      <mi>
        exp 
      </mi> 
      <mrow> 
       <mo>
         ( 
       </mo> 
       <mrow> 
        <mtable> 
         <mtr> 
          <mtd> 
           <mn>
             0 
           </mn> 
          </mtd> 
          <mtd> 
           <mn>
             0 
           </mn> 
          </mtd> 
          <mtd> 
           <mn>
             0 
           </mn> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mn>
             0 
           </mn> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                12 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                22 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                32 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mi>
                N 
              </mi> 
              <mn>
                2 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                13 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                23 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                33 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mi>
                N 
              </mi> 
              <mn>
                3 
              </mn> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋱ 
           </mo> 
          </mtd> 
          <mtd> 
           <mo>
             ⋮ 
           </mo> 
          </mtd> 
         </mtr> 
         <mtr> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                1 
              </mn> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                2 
              </mn> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mn>
                3 
              </mn> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
          <mtd> 
           <mo>
             ⋯ 
           </mo> 
          </mtd> 
          <mtd> 
           <mrow> 
            <mtext>
              i 
            </mtext> 
            <msub> 
             <mi>
               Θ 
             </mi> 
             <mrow> 
              <mi>
                N 
              </mi> 
              <mi>
                M 
              </mi> 
             </mrow> 
            </msub> 
           </mrow> 
          </mtd> 
         </mtr> 
        </mtable> 
       </mrow> 
       <mo>
         ) 
       </mo> 
      </mrow> 
     </mrow> 
    </math> (12)</p>
   <p>A simulation of the GNSS denial problem is presented as proof-of-concept of this method. There are 4 simulated unit-amplitude 10-cycle signals used with azimuth/elevation coordinates of (60˚, 60˚), (110˚, 70˚), (210˚, 40˚), and (310˚, 50˚). An 80 dB interference signal is introduced with azimuth/elevation coordinates of (90˚, 10˚). A 7-element hexagonal antenna array with wavelength spacing was used to simulate reception of the 5 signals. Since this is a proof-of-concept paper, no noise was introduced.</p>
   <p>
    <xref ref-type="fig" rid="fig1">
     Figure 1
    </xref> shows only the first 2 unit-amplitude signals and the 80 dB interference signal in the top row. The middle row shows a simple delay-and-sum beamforming towards the signals (D<sup>†</sup>a). The 2 unit-amplitude signals are overwhelmed by the interference arriving through the simple beampattern sidelobes. The bottom row shows the Moore-Penrose inverse results. The 2 unit-amplitude signals shown are completely separated or decoupled from the strong interference signal. Likewise, the other 2 unit-amplitude signals, which are not shown, are also completely separated or decoupled from the strong interference signal.</p>
   <p>It should be noted that this method operates purely in the spatial domain and does not depend on the time domain structure of the signals. It should also be noted that noise and direction errors are not included in this example. It is purely the intent of this simulation example to demonstrate the concept and method and separation capability of the signal space approach.</p>
   <fig id="fig1" position="float">
    <label>Figure 1</label>
    <caption>
     <title>
      <xref ref-type="bibr" rid="scirp.145940-"></xref>Figure 1. Two weak signals and one strong interference signal.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2630432-rId31.jpeg?20250924025253" />
   </fig>
  </sec><sec id="s5">
   <title>5. Comments</title>
   <p>Denial of GNSS signals is a serious problem. Current beamforming methods can at best only mitigate interference. The seriousness of the problem can be seen in daily online GPS jamming maps <xref ref-type="bibr" rid="scirp.145940-9">
     [9]
    </xref> where very strong jamming exists around conflict areas. These jammers can defeat even military CRPA units. There is a clear need for a fundamentally better approach to prevent GNSS denial <xref ref-type="bibr" rid="scirp.145940-10">
     [10]
    </xref>.</p>
   <p>This signal space approach uses the concepts and methods of linear algebra to completely separate valid GNSS signals from strong interference signals <xref ref-type="bibr" rid="scirp.145940-11">
     [11]
    </xref>. Additionally, this signal space approach can be used in other spatial signal separation problems due to its simplicity and effectiveness and mathematical correctness.</p>
   <p>The computational complexity of this GNSS example is seen as small. For M antenna and N signals, calculation of the Moore-Penrose inverse involves inverting an N × N matrix and a couple of matrix multiplications.</p>
  </sec>
 </body><back>
  <ref-list>
   <title>References</title>
   <ref id="scirp.145940-ref1">
    <label>1</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Collins Aerospace (2025) NavHub GNSS Navigation System. &gt;https://www.collinsaerospace.com/what-we-do/industries/military-and-defense/navigation/ground-products/navhub-gnss-navigation-system 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref2">
    <label>2</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Novatel (2025) GAJT-710MS Anti-Jam Antenna. &gt;https://novatel.com/products/anti-jam-antenna-systems-gajt/gajt-710ms-anti-jam-antenna 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref3">
    <label>3</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Jones, M. (2017) Anti-Jam Technology: Demystifying the CRPA. GPS World. &gt;https://www.gpsworld.com/anti-jam-technology-demystifying-the-crpa/ 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref4">
    <label>4</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Gallager (2006) MIT Open Course Ware. 141. &gt;https://ocw.mit.edu/courses/6-450-principles-of-digital-communications-i-fall-2006/ 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref5">
    <label>5</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Wozencraft, J. and Jacobs, I. (1965) Principles of Communication Engineering. John Wiley and Sons.
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref6">
    <label>6</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Schmidt, R. (1986) Multiple Emitter Location and Signal Parameter Estimation. IEEE Transactions on Antennas and Propagation, 34, 276-280. &gt;https://ieeexplore.ieee.org/abstract/document/1143830 &gt;https://doi.org/10.1109/TAP.1986.1143830
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref7">
    <label>7</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Roy, R. and Kailath, T. (1989) ESPRIT—Estimation of Signal Parameters via Rotational Invariance Techniques. IEEE Transactions on Acoustics, Speech, and Signal Processing, 37, 984-993. &gt;https://ieeexplore.ieee.org/abstract/document/32276 &gt;https://doi.org/10.1109/29.32276
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref8">
    <label>8</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Piper, J. (2011) Beamforming Narrowband and Broadband Signals. In: Kolev, N.Z., Ed., Sonar Systems, Intech, 1-7. &gt;https://www.intechopen.com/chapters/18871 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref9">
    <label>9</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Wiseman, J. (2025) Daily Online Map of GPS Interference. &gt;https://gpsjam.org 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref10">
    <label>10</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     U.S. Code §2281 Global Positioning System. &gt;https://www.law.cornell.edu/uscode/text/10/2281 
    </mixed-citation>
   </ref>
   <ref id="scirp.145940-ref11">
    <label>11</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Piper, J. (2020) Method of Spatial Signal Separation for Satellite Navigation Systems. US Patent 10809383. &gt;https://patents.google.com/patent/US10809383B2/en?oq=10809383
    </mixed-citation>
   </ref>
  </ref-list>
 </back>
</article>