Computing the Matched Filter in Linear Time\\ \ {To Solomon Golomb for the occasion of his 80 birthday mazel tov}
\authorblockN{Alexander Fish} %\authorblockA{Department of Mathematics
%Madison, WI 53706, USA
%\authorblockN{Shamgar Gurevich} %\authorblockA{Department of Mathematics
%\authorblockN{Ronny Hadani} %\authorblockA{Department of Mathematics
%Austin, TX 78712, USA
%
%\authorblockN{Akbar Sayeed} %\authorblockA{Department of Electrical Engineering
%\authorblockN{Oded Schwartz} %\authorblockA{Department of Computer Science
%Berkeley, CA 94720, USA
}}% %BeginExpansion \begin{abstract}% %EndExpansion A fundamental problem in wireless communication is the % time-frequency shift (TFS) problem: Find the time-frequency shift of a signal in a noisy environment. The shift is the result of time asynchronization of a sender with a receiver, and of non-zero speed of a sender with respect to a receiver. A classical solution of a discrete analog of the TFS problem is called the matched filter algorithm. It uses a pseudo-random waveform $S(t)$ of the length $p,$ and its arithemtic complexity is $O(p^{2}\cdot \log (p))$, using fast Fourier transform. In these notes we introduce a novel approach of designing new waveforms that allow faster matched filter algorithm. We use techniques from group representation theory to design waveforms $S(t),$ which enable us to introduce two fast matched filter (FMF) algorithms, called the flag algorithm, and the cross algorithm. These methods solve the TFS problem in $O(p\cdot \log (p))$ operations. We discuss applications of the algorithms to mobile communication, GPS, and radar. %TCIMACRO{\TeXButton{End abstract}{
ISIT2012-Dec20-11.tex
%2multibyte Version: 5.50.0.2960 CodePage: 65001

\documentclass[conference]{IEEEtran}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}

\setcounter{MaxMatrixCols}{10}
%TCIDATA{OutputFilter=LATEX.DLL}
%TCIDATA{Version=5.50.0.2960}
%TCIDATA{Codepage=65001}
%TCIDATA{<META NAME="SaveForMode" CONTENT="1">}
%TCIDATA{BibliographyScheme=Manual}
%TCIDATA{Created=Tuesday, November 08, 2011 21:48:22}
%TCIDATA{LastRevised=Tuesday, December 20, 2011 23:04:48}
%TCIDATA{<META NAME="GraphicsSave" CONTENT="32">}
%TCIDATA{<META NAME="DocumentShell" CONTENT="Articles\SW\IEEE Transactions for Conferences">}
%TCIDATA{Language=American English}
%TCIDATA{CSTFile=IEEEtran.cst}

\newtheorem{theorem}{Theorem}
\newtheorem{acknowledgement}[theorem]{Acknowledgement}
\newtheorem{algorithm}[theorem]{Algorithm}
\newtheorem{axiom}[theorem]{Axiom}
\newtheorem{case}[theorem]{Case}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{conclusion}[theorem]{Conclusion}
\newtheorem{condition}[theorem]{Condition}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{criterion}[theorem]{Criterion}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{exercise}[theorem]{Exercise}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{notation}[theorem]{Notation}
\newtheorem{problem}[theorem]{Problem}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}[theorem]{Remark}
\newtheorem{solution}[theorem]{Solution}
\newtheorem{summary}[theorem]{Summary}
\numberwithin{equation}{section}
\numberwithin{theorem}{section}
\input{tcilatex}
\begin{document}

\title{Computing the Matched Filter in Linear Time\\
\textit{\ }{\small To Solomon Golomb for the occasion of his 80 birthday
mazel tov}}

%TCIMACRO{%
%\TeXButton{Author Information}{\author{\authorblockN{Alexander Fish}
%\authorblockA{Department of Mathematics\\
%University of Wisconsin\\
%Madison, WI 53706, USA\\
%Email: afish@math.wisc.edu}
%\and
%\authorblockN{Shamgar Gurevich}
%\authorblockA{Department of Mathematics\\
%University of Wisconsin\\
%Madison, WI 53706, USA\\
%Email: shamgar@math.wisc.edu}
%\and
%\authorblockN{Ronny Hadani}
%\authorblockA{Department of Mathematics\\
%University of Texas\\
%Austin,  TX 78712, USA\\
%Email: hadani@math.utexas.edu}
%\and
%\and
%\authorblockN{Akbar Sayeed}
%\authorblockA{Department of Electrical Engineering\\
%University of Wisconsin\\
%Madison, WI 53706, USA\\
%Email: akbar@engr.wisc.edu}
%\and
%\authorblockN{Oded Schwartz}
%\authorblockA{Department of Computer Science\\ 
%University of California\\
%Berkeley, CA 94720, USA\\
%Email: odedsc@eecs.berkeley.edu}
%}}}%
%BeginExpansion
\author{\authorblockN{Alexander Fish}
\authorblockA{Department of Mathematics\\
University of Wisconsin\\
Madison, WI 53706, USA\\
Email: afish@math.wisc.edu}
\and
\authorblockN{Shamgar Gurevich}
\authorblockA{Department of Mathematics\\
University of Wisconsin\\
Madison, WI 53706, USA\\
Email: shamgar@math.wisc.edu}
\and
\authorblockN{Ronny Hadani}
\authorblockA{Department of Mathematics\\
University of Texas\\
Austin,  TX 78712, USA\\
Email: hadani@math.utexas.edu}
\and
\and
\authorblockN{Akbar Sayeed}
\authorblockA{Department of Electrical Engineering\\
University of Wisconsin\\
Madison, WI 53706, USA\\
Email: akbar@engr.wisc.edu}
\and
\authorblockN{Oded Schwartz}
\authorblockA{Department of Computer Science\\ 
University of California\\
Berkeley, CA 94720, USA\\
Email: odedsc@eecs.berkeley.edu}
}%
%EndExpansion

%TCIMACRO{\TeXButton{Make Title}{\maketitle}}%
%BeginExpansion
\maketitle%
%EndExpansion

%TCIMACRO{\TeXButton{Begin abstract}{\begin{abstract}}}%
%BeginExpansion
\begin{abstract}%
%EndExpansion

A fundamental problem in wireless communication is the \textit{%
time-frequency shift} (TFS) problem: Find the time-frequency shift of a
signal in a noisy environment. The shift is the result of time
asynchronization of a sender with a receiver, and of non-zero speed of a
sender with respect to a receiver. A classical solution of a discrete analog
of the TFS problem is called the \textit{matched filter} algorithm. It uses
a pseudo-random waveform $S(t)$ of the length $p,$ and its arithemtic
complexity is $O(p^{2}\cdot \log (p))$, using fast Fourier transform. In
these notes we introduce a novel approach of designing new waveforms that
allow faster matched filter algorithm. We use techniques from group
representation theory to design waveforms $S(t),$ which enable us to
introduce two \textit{fast matched filter} (FMF) algorithms, called the 
\textit{flag algorithm}, and the \textit{cross algorithm.} These methods
solve the TFS problem in $O(p\cdot \log (p))$ operations. We discuss
applications of the algorithms to mobile communication, GPS, and radar.

%TCIMACRO{\TeXButton{End abstract}{\end{abstract}}}%
%BeginExpansion
\end{abstract}%
%EndExpansion

\section{\textbf{Introduction}}

Denote by $\mathcal{H}=%
%TCIMACRO{\U{2102} }%
%BeginExpansion
\mathbb{C}
%EndExpansion
(\mathbb{F}_{p})$ the vector space of complex valued functions on the finite
field $\mathbb{F}_{p}=\{0,1,...,p-1\},$ where addition and multiplication is
done modulo the odd prime number $p.$ The vector space $\mathcal{H}$ is
equipped with the standard inner product $\left\langle
f_{1},f_{2}\right\rangle =\tsum\limits_{t\in \mathbb{F}_{p}}f_{1}(t)%
\overline{f_{2}(t)}$, for $f_{1},f_{2}\in \mathcal{H}$, and will be referred
to as the \textit{Hilbert space of digital signals}.

Let us start with a motivational problem.

\subsection{\textbf{Mobile communication problem}}

We consider the following mathematical model of mobile communication \cite%
{TV}. There exists a collection of users $j=1,...,r$, each holding a bit $%
b_{j}\in \{\pm 1\},$ and a private signal $S_{j}\in \mathcal{H}$. User $j$
transmits its message $b_{j}\cdot S_{j}$ to a base station (antenna), and
the base station receives the superposition sum 
\begin{equation}
R(t)=\sum_{j=1}^{r}b_{j}\cdot e^{\frac{2\pi i}{p}\omega _{j}\cdot t}\cdot
S_{j}(t+\tau _{j})\text{ }+\mathcal{W}(t),\text{ \ \ }t\in \mathbb{F}_{p},
\label{RMC}
\end{equation}%
where $\mathcal{W}\in \mathcal{H}$ denotes a random white noise of mean
zero, $\tau _{j}$ encodes the time asynchronization of user $j$ with the
base station, $\omega _{j}$ encodes the radial velocity of user $j$ with
respect to the base station, and $i=\sqrt{-1}.$

The base station "knows" the signals $S_{j}$'s and $R$. The objective
is:\medskip\ 

\begin{problem}[Mobile communication problem]
\label{MC}Extract the bits $b_{j},$ $j=1,...,r.$ \medskip
\end{problem}

A resolution of Problem \ref{MC} will be deduced (see Section \ref{SMC})
from our solution to the following problem.

\subsection{\textbf{The time-frequency shift (TFS) problem}}

We have $r$ signals $S_{j}\in \mathcal{H}$, $j=1,...,r,$ called the \textit{%
sender} waveforms. Additionally, we are given the \textit{receiver} waveform 
$R\in \mathcal{H}$, which satisfies 
\begin{equation}
R(t)=\sum_{j=1}^{r}e^{\frac{2\pi i}{p}\omega _{j}\cdot t}\cdot S_{j}(t+\tau
_{j})\text{ }+\mathcal{W}(t),\text{ \ \ }t\in \mathbb{F}_{p},  \label{RTFS}
\end{equation}%
where $\mathcal{W}\in \mathcal{H}$ denotes a random white noise of mean
zero, and $\left( \tau _{j},\omega _{j}\right) \in \mathbb{F}_{p}\times 
\mathbb{F}_{p}$, $j=1,...,r.$ We will call the pairs $\left( \tau
_{j},\omega _{j}\right) $ the \textit{time-frequency shifts}, and the vector
space $V=\mathbb{F}_{p}\times \mathbb{F}_{p}$ the\ \textit{time-frequency
plane}.

The precise formulation of the \textit{time-frequency shift problem} is the
following:\medskip

\begin{problem}[TFS problem]
\label{TFS}Given the waveforms $S_{j},$ $j=1,...,r,$ and $R,$ extract the
time-frequency shifts $\left( \tau _{j},\omega _{j}\right) \in V$, $%
j=1,...,r.$ \medskip
\end{problem}

\subsection{\textbf{The matched filter (MF) algorithm}}

A classical solution \cite{GG,GHS1,GHS2,HCM,TV,V,WG} to Problem \ref{TFS},
is the \textit{matched filter algorithm}. For a fixed $k\in \{1,...,r\},$ we
define the following matched filter (MF) matrix of the sender $S_{k}$, and
the receiver $R$:%
\begin{equation}
\mathcal{M}[S_{k},R](\tau ,\omega )=\left\langle e^{\frac{2\pi i}{p}\omega
\cdot t}\cdot S_{k}(t+\tau ),R(t)\right\rangle ,\ \ (\tau ,\omega )\in V.
\label{MF}
\end{equation}%
A direct verification shows that for $\zeta _{j}=e^{\frac{2\pi i}{p}(\tau
\omega _{j}-\omega \tau _{j})}$, $j=1,...,r$, we have 
\begin{eqnarray}
\mathcal{M}[S_{k},R](\tau ,\omega ) &=&\zeta _{k}\cdot \mathcal{M}%
[S_{k},S_{k}](\tau -\tau _{k},\omega -\omega _{k})  \label{MFI} \\
&&+\sum_{j\neq k}\zeta _{j}\cdot \mathcal{M[}S_{k},S_{j}](\tau -\tau
_{j},\omega -\omega _{j})  \notag \\
&&+O(\frac{NSR}{\sqrt{p}}),  \notag
\end{eqnarray}%
where $NSR=\frac{1}{SNR}$ is the inverse of the signal-to-noise ratio
between the waveform $S_{k}$ and $\mathcal{W}.$ For simplicity, we assume
that the $NSR$ is not too large, and, for the rest of the paper, we will
omit the last term in (\ref{MFI}).

In order to extract the time-frequency shift $(\tau _{k},\omega _{k}),$
using the matched filter, it is "standard" (see \cite%
{GG,GHS1,GHS2,HCM,TV,V,WG}) to use almost-orthogonal pseudo-random signals $%
S_{j}\in \mathcal{H}$ of norm one. Namely, all the summands in right-hand
side of (\ref{MFI}) are of size $O(\frac{1}{\sqrt{p}})$, with the exception
that for $(\tau ,\omega )=(\tau _{k},\omega _{k})$ we have $\mathcal{M}%
[S_{k},S_{k}](\tau -\tau _{k},\omega -\omega _{k})=1.$ Hence,%
\begin{equation}
\left\vert \mathcal{M}[S_{k},R](\tau ,\omega )\right\vert =\left\{ 
\begin{array}{c}
1+\varepsilon _{r,p}\text{, if }(\tau ,\omega )=(\tau _{k},\omega _{k}); \\ 
\varepsilon _{r,p}\text{, \ \ \ \ \ if }(\tau ,\omega )\neq (\tau
_{k},\omega _{k}),%
\end{array}%
\right.  \label{Peak}
\end{equation}%
where $\varepsilon _{r,p}=O(\frac{r}{\sqrt{p}}).$\bigskip

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Peak.png}\\
\caption{$\left\vert \mathcal{M}%
[S_{1},R]\right\vert $\textit{\ with pseudo-random }$S_{1},S_{2}$\textit{,
and }$(\protect\tau _{1},\protect\omega _{1})=(50,50)$}
\end{figure}

%\begin{figure}[ht]
%\includegraphics[width=530pt]{pic4.pdf}
%\caption{Graph of  $f$. Even dimensions.}
%\label{pic1}
%\end{figure}



%\FRAME{fhFU}{9.8189cm}{5.1028cm}{0pt}{\Qcb{$\left\vert \mathcal{M}%
%[S_{1},R]\right\vert $\textit{\ with pseudo-random }$S_{1},S_{2}$\textit{,
%and }$(\protect\tau _{1},\protect\omega _{1})=(50,50)$}}{}{peak.png}{\special%
%{language "Scientific Word";type "GRAPHIC";maintain-aspect-ratio
%TRUE;display "USEDEF";valid_file "F";width 9.8189cm;height 5.1028cm;depth
%0pt;original-width 15.9869in;original-height 8.2538in;cropleft "0";croptop
%"1";cropright "1";cropbottom "0";filename 'Peak.png';file-properties
%"XNPEU";}}

Identity (\ref{Peak}) suggests the following "entry-by-entry" algorithmic
solution to TFS\ problem: Compute the matrix $\mathcal{M}[S_{k},R],$ and
choose $(\tau _{k},\omega _{k})$ for which $\left\vert \mathcal{M}%
[S_{k},R](\tau _{k},\omega _{k})\right\vert \approx 1.$ However, this
solution of TFS problem is very expensive in terms of arithmetic complexity,
i.e., the number of arithmetic (multiplication, and addition) is $O(r\cdot
p^{3}).$ One can do better using a "line-by-line" computation. This is due
to the next observation.\smallskip

\begin{remark}[FFT]
\label{FFT}The restriction of the matrix $\mathcal{M[}S_{k},R]$ to any line
(not necessarily through the origin) in the time-frequency plane $V,$ is a
convolution that can be computed, using the fast Fourier transform algorithm
(FFT), in $O(p\cdot \log (p))$ arithmetic operations.\smallskip
\end{remark}

As a consequence of Remark \ref{FFT}, one can solve TFS\ problem in $%
O(r\cdot p^{2}\cdot \log (p))$ arithmetic operations. To the best of our
knowledge, the "line-by-line" computation is also the fastest method which
exists in the literature \cite{OMB}. Note that computing one entry in $%
\mathcal{M[}S_{k},R]$ costs already $O(p)$ operations. This leads to the
following \textit{fast matched filter (FMF)} problem:\medskip

\begin{problem}[FMF problem]
\label{FMF}Design waveforms $S_{j}\in \mathcal{H}$, $j=1,...,r,$ to solve
TFS problem in almost linear time for shift.
\end{problem}

\subsection{\textbf{The flag method}}

We introduce the \textit{flag method} to propose a solution to FMF problem.
We will show how to associate with the $p+1$ lines, through $(0,0)$ in the
time-frequency plane, $L_{j},$ $j=1,...,p+1,$ a system of almost orthogonal
waveforms $S_{L_{j}}\in \mathcal{H},$ that we will call \textit{flags}. The
system satisfies 
\begin{equation}
\left\vert \mathcal{M}[S_{L_{k}},R](\tau ,\omega )\right\vert =\left\{ 
\begin{array}{c}
2+\varepsilon _{r,p}\text{, \ if }(\tau ,\omega )=(\tau _{k},\omega _{k});%
\text{ \ \ \ \ \ \ \ } \\ 
1+\varepsilon _{r,p}\text{, \ if }(\tau ,\omega )\in L_{k}^{\prime
}\smallsetminus (\tau _{k},\omega _{k}); \\ 
\varepsilon _{r,p}\text{,\ \ if }(\tau ,\omega )\in V\smallsetminus
L_{k}^{\prime },\text{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }%
\end{array}%
\right.  \label{flag}
\end{equation}%
where $\varepsilon _{r,p}=O(\frac{r}{\sqrt{p}}),$ $R$ is the receiver
waveform (\ref{RTFS}), defined with respect to any $r$ flags containing $%
S_{L_{k}},$ and $L_{k}^{\prime }$ is the shifted line $L_{k}+(\tau
_{k},\omega _{k})$.

\bigskip

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Example.png}\\
\caption{$\left\vert
M[S_{L_{1}},R]\right\vert $\textit{\ with two flags }$S_{L_{1}},S_{L_{2}}$%
\textit{, and }$(\protect\tau _{1},\protect\omega _{1})=(50,50)$}
\end{figure}

%\FRAME{fhFU}{10.2209cm}{5.3202cm}{0pt}{\Qcb{$\left\vert
%M[S_{L_{1}},R]\right\vert $\textit{\ with two flags }$S_{L_{1}},S_{L_{2}}$%
%\textit{, and }$(\protect\tau _{1},\protect\omega _{1})=(50,50)$}}{}{%
%example.png}{\special{language "Scientific Word";type
%"GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file "F";width
%10.2209cm;height 5.3202cm;depth 0pt;original-width 15.9869in;original-height
%8.2667in;cropleft "0";croptop "1";cropright "1";cropbottom "0";filename
%'Example.png';file-properties "XNPEU";}}

Identity (\ref{flag}) suggests the "flag" algorithmic solution to FMF\
problem in the case that the number of waveforms $r\ll \sqrt{p},$ and $p$ is
sufficiently large. In the following we assume that $R$ and $S_{L_{k}}$ are
as in (\ref{flag}).\smallskip \smallskip

\begin{algorithm}[Flag algorithm]
\begin{itemize}
\item Choose a line $L_{k}^{\bot }$ different from $L_{k}.$

\item Compute $\mathcal{M}[S_{L_{k}},R]$ on $L_{k}^{\bot }$. Find $(\tau
,\omega )$ such that $\left\vert \mathcal{M}[S_{L_{k}},R](\tau ,\omega
)\right\vert $ $\approx 1$, i.e., $(\tau ,\omega )$ on the shifted line $%
L_{k}+(\tau _{k},\omega _{k}).$

\item Compute $\mathcal{M}[S_{L_{k}},R]$ on $L_{k}+(\tau _{k},\omega _{k})$
and find $(\tau ,\omega )$ such that $\left\vert \mathcal{M}%
[S_{L_{k}},R](\tau ,\omega )\right\vert \approx 2.\smallskip $
\end{itemize}
\end{algorithm}

The arithmetic complexity of the flag algorithm is $O(r\cdot p\log (p)),$
using the FFT (Remark \ref{FFT}).

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Slide1.jpg}\\
\caption{Diagram of the flag algorithm}
\end{figure}

%\FRAME{fhFU}{3.5189in}{2.6524in}{0pt}{\Qcb{%
%Diagram of the flag algorithm}}{}{slide1.jpg}{\special{language "Scientific
%Word";type "GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file
%"F";width 3.5189in;height 2.6524in;depth 0pt;original-width
%3.4722in;original-height 2.6109in;cropleft "0";croptop "1";cropright
%"1";cropbottom "0";filename 'Slide1.jpg';file-properties "XNPEU";}}

\subsection{The cross method}

Another solution to the TFS problem, and subsequently to the mobile
communication problem\textit{,} is the \textit{cross method. }The idea is
similar to the flag method, i.e., first to find a line on which the
time-frequency shift is located, and then to search on the line to find the
time-frequency shift. We will show how to associate with the $\frac{p+1}{2}$
distinct pairs of lines $L,M\subset V$ a system of almost-orthogonal
waveforms $S_{_{L},_{M}},$ that we will call \textit{crosses. }The system
satisfies%
\begin{equation*}
\left\vert \mathcal{M[}S_{_{L},_{M}},R\mathcal{]}\right\vert {\small =}%
\left\{ 
\begin{array}{c}
_{2+\varepsilon _{r,p}\text{, \ if }(\tau ,\omega )=(\tau
_{_{L},_{M}},\omega _{_{L},_{M}});}\text{ \ \ \ \ \ \ \ \ \ } \\ 
_{1+\varepsilon _{r,p}\text{, \ if }(\tau ,\omega )\in (L^{\prime }\cup
M^{\prime })\smallsetminus (\tau _{_{L},_{M}},\omega _{_{L},_{M}});} \\ 
_{\varepsilon _{r,p}\text{,\ \ if }(\tau ,\omega )\in V\smallsetminus
(L^{\prime }\cup M^{\prime }),}\text{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }%
\end{array}%
\right.
\end{equation*}%
where $\varepsilon _{r,p}=O(\frac{r}{\sqrt{p}}),$ $R$ is the receiver
waveform (\ref{RTFS}), defined with respect to any $r$ different crosses
containing $S_{_{L},_{M}},$ and $L^{\prime }=L+(\tau _{_{L},_{M}},\omega
_{_{L},_{M}})$, $M^{\prime }=M+(\tau _{_{L},_{M}},\omega _{_{L},_{M}}).$

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Cross.png}\\
\caption{$|\mathcal{M}%
[S_{_{L_{1}},_{M_{1}}},R]|$\ with crosess $%
S_{_{L_{1}},_{M_{1}}},S_{_{L_{2}},_{M_{2}}}$, and $(\protect\tau _{1},%
\protect\omega _{1})=(50,50)$}
\end{figure}


%\FRAME{fhFU}{8.1912cm}{4.2966cm}{0pt}{\Qcb{$|\mathcal{M}%
%[S_{_{L_{1}},_{M_{1}}},R]|$\ with crosess $%
%S_{_{L_{1}},_{M_{1}}},S_{_{L_{2}},_{M_{2}}}$, and $(\protect\tau _{1},%
%\protect\omega _{1})=(50,50)$}}{}{cross.png}{\special{language "Scientific
%Word";type "GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file
%"F";width 8.1912cm;height 4.2966cm;depth 0pt;original-width
%15.9869in;original-height 8.3204in;cropleft "0";croptop "1";cropright
%"1";cropbottom "0";filename '../../../../Lectures/Fast Matched
%Filter/Cross.png';file-properties "XNPEU";}}

The arithmetic complexity of the cross method is $O(r\cdot p\log (p)),$
using the FFT (Remark \ref{FFT}).

\subsection{\textbf{Solution to the mobile communication problem\label{SMC}}}

Looking back to Problem \ref{MC}, we see that the flag and cross algorithms
suggest a fast $O(r\cdot p\cdot \log (p))$ solution to extract ALL the bits $%
b_{k}.$ Indeed, identity (\ref{MFI}) implies that $b_{k}\approx \mathcal{M}%
[S_{k},R](\tau _{k},\omega _{k})/2,$ \ $k=1,...,r,$ where $R$ is the
waveform (\ref{RMC}), with $S_{j}=S_{L_{j}}$, $j=1,...,r$, for the flag
method, or $S_{j}=S_{_{L_{j}},_{M_{j}}}$, $j=1,...,r$, for the cross method,
and $r\ll \sqrt{p}.$

\section{\textbf{The Heisenberg--Weil flag system}}

The flag waveforms, that play the main role in the flag algorithm, are of a
special form. \ Each of them is a sum of a pseudorandom signal and a
structural signal. The first has the MF matrix which is almost delta
function at the origin, and the MF matrix of the second is supported on a
line. The designs of these waveforms are done using group representation
theory. The pseudorandom signals are designed \cite{GHS1, GHS2, WG} using
the Weil representation, and will be called Weil (peak) signals\footnote{%
For the purpose of the Flag method, other pseudorandom signals may work.}.
The structural signals are designeded \cite{H, HCM} using the Heisenberg
representation, and will be called Heisenberg (lines) signals. We will call
the collection of all flag waveforms, the Heisenberg--Weil flag system. In
this section we briefly recall constructions, and properties of these
waveforms. A more comprehensive treatment, including proofs, will appear in 
\cite{FGHSS}.

\subsection{\textbf{The Heisenberg (lines) system\label{HS}}}

Consider the following collection of unitary operators, called Heisenberg
operators, that act on the Hilbert space of digital signals:%
\begin{equation}
\left\{ 
\begin{array}{c}
\pi (\tau ,\omega ):\mathcal{H\rightarrow \mathcal{H}},\text{ \ }\tau
,\omega \in \mathbb{F}_{p}; \\ 
\pi (\tau ,\omega )=\mathrm{M}_{\omega }\circ \mathrm{L}_{\tau },%
\end{array}%
\right. \text{ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }  \label{Heis}
\end{equation}%
where $\mathrm{L}_{\tau }[f](t)=f(t+\tau )$ is the time-shift operator, $%
\mathrm{M}_{\omega }[f](t)=e^{\frac{2\pi i}{p}\omega \cdot t}\cdot f(t)$ is
the frequency-shift operator, for every $f\in \mathcal{H}$, $t\in \mathbb{F}%
_{p},$ and $\circ $ denotes composition of operators.

The operators (\ref{Heis}) do not commute in general, but rather obey the
Heisenberg commutation relations $\pi (\tau ,\omega )\circ \pi (\tau
^{\prime },\omega ^{\prime })=e^{\frac{2\pi i}{p}(\tau \omega ^{\prime
}-\omega \tau ^{\prime })}\cdot \pi (\tau ^{\prime },\omega ^{\prime })\circ
\pi (\tau ,\omega ).$ The expression $\tau \omega ^{\prime }-\omega \tau
^{\prime }$ vanishes if $(\tau ,\omega )$, $(\tau ^{\prime },\omega ^{\prime
})$ belong to the same line. Hence, for a given line $L\subset V=\mathbb{F}%
_{p}\times \mathbb{F}_{p}$ we have a commutative collection of unitary
operators%
\begin{equation}
\pi (\ell ):\mathcal{H\rightarrow \mathcal{H}},\text{ }\ell \in L.
\label{piL}
\end{equation}%
We use the theorem from linear algebra about simultaneous diagonalization of
commuting unitary operators, and obtain \cite{H, HCM} a natural orthonormal
basis $\mathcal{B}_{L\text{ }}\subset \mathcal{H}$ consisting of common
eigenfunctions for all the operators (\ref{piL}). The system of all such
bases $\mathcal{B}_{L},$ where $L$ runs over all lines through the origin in 
$V,$ will be called the \textit{Heisenberg (lines) system}. We will need the
following result \cite{H, HCM}:\smallskip

\begin{theorem}
\label{HT}The Heisenberg system satisfies the properties

\begin{enumerate}
\item \textit{Line. }For every line $L\subset V$, and every $f_{L}\in 
\mathcal{B}_{L}$, we have 
\begin{equation*}
\left\vert \mathcal{M}[f_{L},f_{L}](\tau ,\omega )\right\vert =\left\{ 
\begin{array}{c}
1,\text{ if }\left( \tau ,\omega \right) \in L; \\ 
0,\text{ if }\left( \tau ,\omega \right) \notin L.%
\end{array}%
\right.
\end{equation*}

\item \textit{Almost-orthogonality.} For every two lines $L_{1}\neq
L_{2}\subset V$, and every $f_{L_{1}}\in \mathcal{B}_{L_{1}}$, $f_{L_{2}}\in 
\mathcal{B}_{L_{2}},$ we have%
\begin{equation*}
\left\vert \mathcal{M}[f_{L_{1}},f_{L_{2}}](\tau ,\omega )\right\vert =\frac{%
1}{\sqrt{p}},\text{ \ }
\end{equation*}%
for every $(\tau ,\omega )\in V.$
\end{enumerate}
\end{theorem}

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Diagonal.png}\\
\caption{$\left\vert \mathcal{M}%
[f_{L},f_{L}]\right\vert $ for $L=\{(\protect\tau ,\protect\tau );$ $\protect%
\tau \in \mathbb{F}_{p}\}$}
\end{figure}


%\FRAME{fhFU}{10.2187cm}{5.3114cm}{0pt}{\Qcb{$\left\vert \mathcal{M}%
%[f_{L},f_{L}]\right\vert $ for $L=\{(\protect\tau ,\protect\tau );$ $\protect%
%\tau \in \mathbb{F}_{p}\}$}}{}{diagonal.png}{\special{language "Scientific
%Word";type "GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file
%"F";width 10.2187cm;height 5.3114cm;depth 0pt;original-width
%15.9869in;original-height 8.2538in;cropleft "0";croptop "1";cropright
%"1";cropbottom "0";filename 'Diagonal.png';file-properties "XNPEU";}}

\subsection{\textbf{The Weil (peaks) system}}

Consider the following collection of matrices 
\begin{equation*}
G=SL_{2}(\mathbb{F}_{p})=\left\{ 
\begin{pmatrix}
a & b \\ 
c & d%
\end{pmatrix}%
;\text{ }a,b,c,d\in \mathbb{F}_{p},\text{ and }ad-bc=1\right\} .
\end{equation*}%
Note that $G$ is in a natural way a \textit{group} \cite{A} with respect to
the operation of matrix multiplication. It is called the \textit{special
linear group} of order two over $\mathbb{F}_{p}.$ Each element $g\in G$ acts
on the time-frequency plane $V$ via the change of coordinates $v\mapsto
g\cdot v.$ For every $g\in G$, let $\rho (g)$ be a linear operator on $%
\mathcal{H}$ which is a solution of the following system of $p^{2}$ linear
equations:%
\begin{equation}
\Sigma _{g}:\text{ }\rho (g)\circ \pi (\tau ,\omega )=\pi (g\cdot (\tau
,\omega ))\circ \rho (g),\text{\ \ }\tau ,\omega \in \mathbb{F}_{p},
\label{S}
\end{equation}%
where $\pi $ is defined by (\ref{Heis}). Denote by $\mathrm{Sol}(\Sigma
_{g}) $ the space of all solutions to System (\ref{S}). The following is a
basic result \cite{W}:

\begin{theorem}[Stone--von Neumann--Schur-Weil]
\label{S-vN}There exist a unique collection of solutions $\{\rho (g)\in 
\mathrm{Sol}(\Sigma _{g});$ $g\in G\},$ which are unitary operators, and
satisfy the homomorphism condition $\rho (g\cdot h)=\rho (g)\circ \rho
(h).\smallskip $
\end{theorem}

Denote by $U(\mathcal{H)}$ the collection of all unitary operators on the
Hilbert space of digital signals $\mathcal{H}$. Theorem \ref{S-vN}
establishes the map $\rho :G\rightarrow U(\mathcal{H})$, which is called the 
\textit{Weil representation }\cite{W}\textit{. }The group $G$ is not
commutative, but contains a special class of maximal commutative subgroups
called tori\footnote{%
There are order of $p^{2}$ tori in $SL_{2}(\mathbb{F}_{p}).$} \cite{GHS1,
GHS2}. Each torus $T\subset G$ acts via the Weil representation operators 
\begin{equation}
\rho (g):\mathcal{H\rightarrow \mathcal{H}}\text{, \ }g\in T.  \label{W}
\end{equation}%
This is a commutative collection of diagonalizable operators, and it admits 
\cite{GHS1, GHS2} a natural orthonormal basis $\mathcal{B}_{T}$ for $%
\mathcal{H}$, consisting of common eigenfunctions. The system of all such
bases $\mathcal{B}_{T},$ where $T$ runs over all tori in $G,$ will be called
the \textit{Weil (peaks) system}. We will need the following result \cite%
{GHS1, GHS2}:\smallskip

\begin{theorem}
\label{WPeak}The Weil system satisfies the properties

\begin{enumerate}
\item \textit{Peak. }For every torus $T\subset G$, and every $\varphi
_{T}\in \mathcal{B}_{T}$, we have%
\begin{equation*}
\left\vert \mathcal{M}[\varphi _{T},\varphi _{T}](\tau ,\omega )\right\vert
=\left\{ 
\begin{array}{c}
1,\text{ if }\left( \tau ,\omega \right) =(0,0); \\ 
\leq \frac{2}{\sqrt{p}},\text{ if }\left( \tau ,\omega \right) \neq (0,0).%
\end{array}%
\right.
\end{equation*}

\item \textit{Almost-orthogonality.} For every two tori $T_{1},$ $%
T_{2}\subset G$, and every $\varphi _{T_{1}}\in \mathcal{B}_{T_{1}}$, $%
\varphi _{T_{2}}\in \mathcal{B}_{T_{2}},$ with $\varphi _{T_{1}}\neq \varphi
_{T_{2}},$ we have%
\begin{equation*}
\left\vert \mathcal{M}[\varphi _{T_{1}},\varphi _{T_{2}}](\tau ,\omega
)\right\vert \leq \left\{ 
\begin{array}{c}
\frac{4}{\sqrt{p}},\text{ if }T_{1}\neq T_{2}; \\ 
\frac{2}{\sqrt{p}},\text{ if }T_{1}=T_{2},%
\end{array}%
\right. \text{ \ }
\end{equation*}%
for every $(\tau ,\omega )\in V.$
\end{enumerate}
\end{theorem}

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Weil.png}\\
\caption{$\mathcal{M}[\protect\varphi %
_{T},\protect\varphi _{T}]$ for $T=\{%
\protect\begin{pmatrix}
a & 0\protect \\ 
0 & a^{-1}%
\protect\end{pmatrix}%
;0\neq a\in \mathbb{F}_{p}\}$ }
\end{figure}



%\FRAME{fhFU}{10.2187cm}{5.3114cm}{0pt}{\Qcb{$\mathcal{M}[\protect\varphi %
%_{T},\protect\varphi _{T}]$ for $T=\{%
%\protect\begin{pmatrix}
%a & 0\protect \\ 
%0 & a^{-1}%
%\protect\end{pmatrix}%
%;0\neq a\in \mathbb{F}_{p}\}$ }}{}{weil.png}{\special{language "Scientific
%Word";type "GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file
%"F";width 10.2187cm;height 5.3114cm;depth 0pt;original-width
%15.9869in;original-height 8.2538in;cropleft "0";croptop "1";cropright
%"1";cropbottom "0";filename 'Weil.png';file-properties "XNPEU";}}

\subsection{\textbf{The Heisenberg--Weil system}}

We define the \textit{Heisenberg--Weil system} of waveforms. This is the
collection of signals in $\mathcal{H}$, which are of the form $%
S_{L}=f_{L}+\varphi _{T}$, where $f_{L}$ and $\varphi _{T}$ are Heisenberg
and Weil waveforms, respectively. The main technical result of this paper is:

\begin{theorem}
\label{HW}The Heisenberg--Weil system satisfies the properties

\begin{enumerate}
\item \textit{Flag. }For every line $L\subset V$, torus $T\subset G$, and
every flag $S_{L}=f_{L}+\varphi _{T},$ with $f_{L}\in \mathcal{B}_{L},$ $%
\varphi _{T}\in \mathcal{B}_{T}$, we have 
\begin{equation*}
\left\vert \mathcal{M}[S_{L},S_{L}](\tau ,\omega )\right\vert =\left\{ 
\begin{array}{c}
2+\epsilon _{p}\text{, \ if }(\tau ,\omega )=(0,0);\text{ \ \ \ \ \ \ \ } \\ 
1+\varepsilon _{p}\text{, \ if }(\tau ,\omega )\in L\smallsetminus (0,0);%
\text{ \ \ } \\ 
\text{ }\varepsilon _{p}\text{, \ if }(\tau ,\omega )\in V\smallsetminus L,%
\text{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }%
\end{array}%
\right.
\end{equation*}%
where $|\epsilon _{p}|\leq \frac{4}{\sqrt{p}},$ and $|\varepsilon _{p}|\leq 
\frac{6}{\sqrt{p}}.$

\item \textit{Almost-orthogonality.} For every two lines $L_{1}\neq
L_{2}\subset V$, tori $T_{1},$ $T_{2}\subset G,$ and every two flags $%
S_{L_{j}}=f_{L_{j}}+\varphi _{T_{j}},$ with $f_{L_{j}}\in \mathcal{B}%
_{L_{j}} $, $\varphi _{T_{j}}\in \mathcal{B}_{T_{j}}$, $j=1,2,$ $\varphi
_{T_{1}}\neq \varphi _{T_{2}},$ we have 
\begin{equation*}
\left\vert \mathcal{M}[S_{L_{1}},S_{L_{2}}](\tau ,\omega )\right\vert \leq
\left\{ 
\begin{array}{c}
\frac{9}{\sqrt{p}},\text{ if }T_{1}\neq T_{2}; \\ 
\frac{7}{\sqrt{p}},\text{ if }T_{1}=T_{2},%
\end{array}%
\right. \text{ \ }
\end{equation*}%
for every $(\tau ,\omega )\in V.$
\end{enumerate}
\end{theorem}

A proof of Theorem \ref{HW} will appear in \cite{FGHSS}.

\begin{figure}[ht]
\includegraphics[clip,height=4cm]{H-W-F-2.png}\\
\caption{$\left\vert \mathcal{M}[S_{L},S_{L}]\right\vert $ for
Heisenberg--Weil flag with $L=\{(\protect\tau ,\protect\tau );$ $\protect%
\tau \in \mathbb{F}_{p}\}$ }
\end{figure}

%\FRAME{fhFU}{3.2249in%
%}{1.6942in}{0pt}{\Qcb{$\left\vert \mathcal{M}[S_{L},S_{L}]\right\vert $ for
%Heisenberg--Weil flag with $L=\{(\protect\tau ,\protect\tau );$ $\protect%
%\tau \in \mathbb{F}_{p}\}$ }}{}{h-w-f.png}{\special{language "Scientific
%Word";type "GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file
%"F";width 3.2249in;height 1.6942in;depth 0pt;original-width
%15.9869in;original-height 8.3333in;cropleft "0";croptop "1";cropright
%"1";cropbottom "0";filename '../../../../Lectures/Fast Matched
%Filter/H-W-F.png';file-properties "XNPEU";}}
\smallskip

\begin{remark}
As a consequence of Theorem \ref{HW} we obtain families of $p+1$
almost-orthogonal flag waveforms which can be used for solving the TFS and
mobile communication problems in almost linear time.
\end{remark}

\section{\textbf{The Heisenberg cross system}}

We define the \textit{Heisenberg cross system} of waveforms. This is the
collection of signals in $\mathcal{H}$, which are of the form $%
S_{_{L},_{M}}=f_{L}+f_{M}$, where $f_{L},f_{M},$ $L\neq M,$ are Heisenberg
waveforms defined in Section \ref{HS}. The following follows immediately
from Theorem \ref{HT}:

\begin{theorem}
\label{HC}The Heisenberg cross system satisfies the properties

\begin{enumerate}
\item \textit{Cross. }For every pair of distinct lines $L,M\subset V$, and
every cross $S_{_{L},_{M}}=f_{L}+f_{M}$, with $f_{L}\in \mathcal{B}_{L},$ $%
f_{M}\in \mathcal{B}_{M}$, we have%
\begin{equation*}
\left\vert \mathcal{M}[S_{_{L},_{M}},S_{_{L},_{M}}](\tau ,\omega
)\right\vert =\left\{ 
\begin{array}{c}
_{2+\varepsilon _{p}\text{, \ if }(\tau ,\omega )=(0,0);}\text{ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ } \\ 
_{1+\varepsilon _{p}\text{, \ if }(\tau ,\omega )\in (L\cup M)\smallsetminus
(0,0);}\text{ \ \ \ \ \ \ \ } \\ 
\text{ }_{\varepsilon _{p}\text{, \ if }(\tau ,\omega )\in V\smallsetminus
(L\cup M),}\text{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }%
\end{array}%
\right.
\end{equation*}%
where $|\varepsilon _{p}|\leq \frac{2}{\sqrt{p}}.$

\item \textit{Almost-orthogonality.} For every four distinct lines $%
L_{1},M_{1},L_{2},M_{2}\subset V$, and every two crosses $%
S_{_{L_{j}},_{M_{j}}}=f_{L_{j}}+f_{M_{j}},$ $j=1,2,$ we have 
\begin{equation*}
\left\vert \mathcal{M}[S_{_{L_{1}},_{M_{1}}},S_{_{L_{2}},_{M_{2}}}](\tau
,\omega )\right\vert \leq \frac{4}{\sqrt{p}}.\text{\ }
\end{equation*}%
for every $(\tau ,\omega )\in V.$
\end{enumerate}
\end{theorem}

\begin{remark}
As a consequence of Theorem \ref{HC} we obtain families of $\frac{p+1}{2}$
almost-orthogonal cross waveforms which can be used for solving the TFS and
mobile communication problems in almost linear time.
\end{remark}

\section{\textbf{Applications to GPS and radar}}

In the introduction we described application of flag and cross methods to
mobile communication. In this section we demonstrate applications to global
positioning system (GPS), and discrete radar.

\subsection{\textbf{Application to global positioning system (GPS)}}

The model of GPS works as follows \cite{K}. A client on the earth surface
wants to know his geographical location. Satellites $j=1,...,r$ send to
earth their location. For simplicity, the location of satellite $j$ is a bit 
$b_{j}\in \{\pm 1\}.$ Satellite $j$ transmits to the earth its signal $%
S_{j}\in \mathcal{H}$ multiplied by its location $b_{j}.$ The client
receives the signal 
\begin{equation*}
R(t)=\sum_{j=1}^{r}b_{j}\cdot e^{\frac{2\pi i}{p}\omega _{j}\cdot t}\cdot
S_{j}(t+\tau _{j})\text{ }+\mathcal{W}(t),
\end{equation*}%
where $\omega _{j}$ encodes the radial velocity of satellite $j$ with
respect to the client, $\tau _{j}$ encodes the distance between satellite $j$
and the client\footnote{%
From the $\tau _{j}$ we can find \cite{K} the distance between satellite $j$
and the client, given that $r\geq 4$ and the clocks of all satellites are
synchronized.}, and $\mathcal{W}$ is a random white noise of mean
zero.\smallskip

\begin{problem}[GPS problem]
\bigskip Find $(b_{j},\tau _{j}),$ $j=1,...,r.$ \smallskip
\end{problem}

By using Heisenberg--Weil or Heisenberg cross waveforms we find the pairs $%
(b_{j},\tau _{j})$ in $O(r\cdot p\log (p))$ arithmetical operations.

\subsection{\textbf{Application to discrete radar}}

The model of discrete radar works as follows \cite{HCM}. A radar sends a
waveform $S\in \mathcal{H}$ which bounds back by $r$ targets. The signal $%
R\in \mathcal{H}$ which is received as an echo has the form\footnote{%
In practice there are intensity coefficients $0\leq \alpha _{j}\leq 1$ such
that $R(t)=\sum_{j=1}^{r}\alpha _{j}\cdot e^{\frac{2\pi i}{p}\omega
_{j}\cdot t}\cdot S(t+\tau _{j})$ $+\mathcal{W}(t).$ Assuming that $\alpha
_{j}$'s are sufficiently large our methods are applicable verbatim.}%
\begin{equation*}
R(t)=\sum_{j=1}^{r}e^{\frac{2\pi i}{p}\omega _{j}\cdot t}\cdot S(t+\tau _{j})%
\text{ }+\mathcal{W}(t),
\end{equation*}%
where $\omega _{j}$ encodes the radial velocity of target $j$ with respect
to the radar, $\tau _{j}$ encodes the distance between target $j$ and the
radar, and $\mathcal{W}$ is a random white noise of mean zero.\smallskip
\smallskip

\begin{problem}[Discrete radar problem]
Find $(\tau _{j},\omega _{j}),$ $j=1,...,r.\smallskip \smallskip $
\end{problem}

By sending Heisenberg--Weil waveform $S_{L}=f_{L}+\varphi _{T}$ we get%
\footnote{%
For simplicity we assume that all the shifted lines $L+(\tau _{j},\omega
_{j})$'s are distinct. The general case is treated similarly.} 
\begin{equation*}
\left\vert \mathcal{M}[S_{L},R](\tau ,\omega )\right\vert =\left\{ 
\begin{array}{c}
2+\varepsilon _{r,p}\text{, if }(\tau ,\omega )\in \{(\tau _{j},\omega
_{j})\};\text{ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } \\ 
1+\varepsilon _{r,p}\text{, if }(\tau ,\omega )\in L+(\tau _{j},\omega
_{j})\smallsetminus (\tau _{j},\omega _{j});\text{ \ } \\ 
\varepsilon _{r,p}\text{, otherwise, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ }%
\end{array}%
\right.
\end{equation*}%
where $\varepsilon _{r,p}=O(\frac{r}{\sqrt{p}}).$

This means that by using the flag algorithm we solve the radar problem in $%
O(r\cdot p\log (p))$ arithmetical operations.  



\begin{figure}[ht]
\includegraphics[clip,height=4cm]{Multi-Flag.png}\\
\caption{$\left\vert \mathcal{M}[S_{L},R]\right\vert $ with $L=\{(%
\protect\tau ,0);$ $\protect\tau \in \mathbb{F}_{p}\}$, and shifts $\left(
50,50\right) ,$ $\left( 100,100\right) ,$ $\left( 150,150\right) $}
\end{figure}



%\FRAME{fhFU}{4.0248in}{%
%2.098in}{0pt}{\Qcb{$\left\vert \mathcal{M}[S_{L},R]\right\vert $ with $L=\{(%
%\protect\tau ,0);$ $\protect\tau \in \mathbb{F}_{p}\}$, and shifts $\left(
%50,50\right) ,$ $\left( 100,100\right) ,$ $\left( 150,150\right) $}}{}{%
%rav-matrot.png}{\special{language "Scientific Word";type
%"GRAPHIC";maintain-aspect-ratio TRUE;display "USEDEF";valid_file "F";width
%4.0248in;height 2.098in;depth 0pt;original-width 15.9869in;original-height
%8.2806in;cropleft "0";croptop "1";cropright "1";cropbottom "0";filename
%'../../../../Lectures/Fast Matched Filter/Rav-Matrot.png';file-properties
%"XNPEU";}}

\begin{remark}[Important]
Note that the cross method is not applicable for the discrete radar problem
if the number of targets $r>1.\smallskip $
\end{remark}

\textbf{Acknowledgement. }Warm thanks to Joseph Bernstein for his support
and encouragement in interdisciplinary research. We are grateful to Anant
Sahai, for sharing with us his thoughts, and ideas on many aspects of signal
processing and wireless communication. The project described in this paper
was initiated by a question of Mark Goresky and Andy Klapper during the
conference SETA2008, we thank them very much. We appreciate the support and
encouragement of Nigel Boston, Robert Calderbank, Solomon Golomb, Guang
Gong, Olga Holtz, Roger Howe, Peter Sarnak, Nir Sochen, and Alan Weinstein.

\begin{thebibliography}{99}
\bibitem{A} Artin M., Algebra. \textit{Prentice Hall, Inc., Englewood
Cliffs, NJ} (1991).

\bibitem{FGHSS} Fish A., Gurevich S., Hadani R., Sayeed A., Schwartz O.,
Fast matched filter and group representation theory. \textit{In \
preparation (2011).}

\bibitem{GG} Golomb, S.W. and Gong G., Signal design for good correlation.
For wireless communication, cryptography, and radar. \textit{Cambridge
University Press, Cambridge (2005).}

\bibitem{GHS1} Gurevich S., Hadani R., Sochen N., The finite harmonic
oscillator and its associated sequences. \textit{PNAS, July 22, 2008 vol.
105 no. 29 9869--9873.}

\bibitem{GHS2} Gurevich S., Hadani R., Sochen N., The finite harmonic
oscillator and its applications to sequences, communication and radar . 
\textit{IEEE Transactions on Information Theory, vol. 54, no. 9, September
2008.}

\bibitem{H} Howe R., Nice error bases, mutually unbiased bases, induced
representations, the Heisenberg group and finite geometries. \textit{Indag.
Math. (N.S.) 16 (2005), no. 3--4, 553--583.}

\bibitem{HCM} Howard, S. D., Calderbank, R., and Moran W., The finite
Heisenberg--Weyl groups in radar and communications. \textit{EURASIP J.
Appl. Signal Process (2006).}

\bibitem{K} Kaplan E., Understanding GPS Principles and Applications.\textit{%
\ Artech house, INC (1996).}

\bibitem{OMB} O'Toole J.M., Mesbah M., and Boashash B., Accurate and
efficient implementation of the time--frequency matched filter. \textit{IET
Signal Process., 2010, Vol. 4, Iss. 4, pp. 428--437.}

\bibitem{TV} Tse D., and Viswanath P., Fundamentals of Wireless
Communication. \textit{Cambridge University Press (2005).}

\bibitem{V} Verdu S., Multiuser Detection, \textit{Cambridge University
Press (1998).}

\bibitem{WG} Wang Z., and Gong G., New Sequences Design From Weil
Representation With Low Two-Dimensional Correlation in Both Time and Phase
Shifts. \textit{IEEE Transactions on Information Theory, vol. 57, no. 7,
July 2011. }

\bibitem{W} Weil A., Sur certains groupes d'operateurs unitaires. \textit{%
Acta Math. 111, 143-211 (1964).}
\end{thebibliography}

\end{document}

tcilatex.tex
% Macros for Scientific Word 4.0 documents saved with the LaTeX filter.
% Copyright (C) 2002 Mackichan Software, Inc.

\typeout{TCILATEX Macros for Scientific Word 5.0 <13 Feb 2003>.}
\typeout{NOTICE:  This macro file is NOT proprietary and may be
freely copied and distributed.}
%
\makeatletter

%%%%%%%%%%%%%%%%%%%%%
% pdfTeX related.
\ifx\pdfoutput\relax\let\pdfoutput=\undefined\fi
\newcount\msipdfoutput
\ifx\pdfoutput\undefined
\else
 \ifcase\pdfoutput
 \else
    \msipdfoutput=1
    \ifx\paperwidth\undefined
    \else
      \ifdim\paperheight=0pt\relax
      \else
        \pdfpageheight\paperheight
      \fi
      \ifdim\paperwidth=0pt\relax
      \else
        \pdfpagewidth\paperwidth
      \fi
    \fi
  \fi
\fi

%%%%%%%%%%%%%%%%%%%%%
% FMTeXButton
% This is used for putting TeXButtons in the
% frontmatter of a document. Add a line like
% \QTagDef{FMTeXButton}{101}{} to the filter
% section of the cst being used. Also add a
% new section containing:
%     [f_101]
%     ALIAS=FMTexButton
%     TAG_TYPE=FIELD
%     TAG_LEADIN=TeX Button:
%
% It also works to put \defs in the preamble after
% the \input tcilatex
\def\FMTeXButton#1{#1}
%
%%%%%%%%%%%%%%%%%%%%%%
% macros for time
\newcount\@hour\newcount\@minute\chardef\@x10\chardef\@xv60
\def\tcitime{
\def\@time{%
  \@minute\time\@hour\@minute\divide\@hour\@xv
  \ifnum\@hour<\@x 0\fi\the\@hour:%
  \multiply\@hour\@xv\advance\@minute-\@hour
  \ifnum\@minute<\@x 0\fi\the\@minute
  }}%

%%%%%%%%%%%%%%%%%%%%%%
% macro for hyperref and msihyperref
%\@ifundefined{hyperref}{\def\hyperref#1#2#3#4{#2\ref{#4}#3}}{}

\def\x@hyperref#1#2#3{%
   % Turn off various catcodes before reading parameter 4
   \catcode`\~ = 12
   \catcode`\$ = 12
   \catcode`\_ = 12
   \catcode`\# = 12
   \catcode`\& = 12
   \y@hyperref{#1}{#2}{#3}%
}

\def\y@hyperref#1#2#3#4{%
   #2\ref{#4}#3
   \catcode`\~ = 13
   \catcode`\$ = 3
   \catcode`\_ = 8
   \catcode`\# = 6
   \catcode`\& = 4
}

\@ifundefined{hyperref}{\let\hyperref\x@hyperref}{}
\@ifundefined{msihyperref}{\let\msihyperref\x@hyperref}{}




% macro for external program call
\@ifundefined{qExtProgCall}{\def\qExtProgCall#1#2#3#4#5#6{\relax}}{}
%%%%%%%%%%%%%%%%%%%%%%
%
% macros for graphics
%
\def\FILENAME#1{#1}%
%
\def\QCTOpt[#1]#2{%
  \def\QCTOptB{#1}
  \def\QCTOptA{#2}
}
\def\QCTNOpt#1{%
  \def\QCTOptA{#1}
  \let\QCTOptB\empty
}
\def\Qct{%
  \@ifnextchar[{%
    \QCTOpt}{\QCTNOpt}
}
\def\QCBOpt[#1]#2{%
  \def\QCBOptB{#1}%
  \def\QCBOptA{#2}%
}
\def\QCBNOpt#1{%
  \def\QCBOptA{#1}%
  \let\QCBOptB\empty
}
\def\Qcb{%
  \@ifnextchar[{%
    \QCBOpt}{\QCBNOpt}%
}
\def\PrepCapArgs{%
  \ifx\QCBOptA\empty
    \ifx\QCTOptA\empty
      {}%
    \else
      \ifx\QCTOptB\empty
        {\QCTOptA}%
      \else
        [\QCTOptB]{\QCTOptA}%
      \fi
    \fi
  \else
    \ifx\QCBOptA\empty
      {}%
    \else
      \ifx\QCBOptB\empty
        {\QCBOptA}%
      \else
        [\QCBOptB]{\QCBOptA}%
      \fi
    \fi
  \fi
}
\newcount\GRAPHICSTYPE
%\GRAPHICSTYPE 0 is for TurboTeX
%\GRAPHICSTYPE 1 is for DVIWindo (PostScript)
%%%(removed)%\GRAPHICSTYPE 2 is for psfig (PostScript)
\GRAPHICSTYPE=\z@
\def\GRAPHICSPS#1{%
 \ifcase\GRAPHICSTYPE%\GRAPHICSTYPE=0
   \special{ps: #1}%
 \or%\GRAPHICSTYPE=1
   \special{language "PS", include "#1"}%
%%%\or%\GRAPHICSTYPE=2
%%%  #1%
 \fi
}%
%
\def\GRAPHICSHP#1{\special{include #1}}%
%
% \graffile{ body }                                  %#1
%          { contentswidth (scalar)  }               %#2
%          { contentsheight (scalar) }               %#3
%          { vertical shift when in-line (scalar) }  %#4

\def\graffile#1#2#3#4{%
%%% \ifnum\GRAPHICSTYPE=\tw@
%%%  %Following if using psfig
%%%  \@ifundefined{psfig}{\input psfig.tex}{}%
%%%  \psfig{file=#1, height=#3, width=#2}%
%%% \else
  %Following for all others
  % JCS - added BOXTHEFRAME, see below
    \bgroup
	   \@inlabelfalse
       \leavevmode
       \@ifundefined{bbl@deactivate}{\def~{\string~}}{\activesoff}%
        \raise -#4 \BOXTHEFRAME{%
           \hbox to #2{\raise #3\hbox to #2{\null #1\hfil}}}%
    \egroup
}%
%
% A box for drafts
\def\draftbox#1#2#3#4{%
 \leavevmode\raise -#4 \hbox{%
  \frame{\rlap{\protect\tiny #1}\hbox to #2%
   {\vrule height#3 width\z@ depth\z@\hfil}%
  }%
 }%
}%
%
\newcount\@msidraft
\@msidraft=\z@
\let\nographics=\@msidraft
\newif\ifwasdraft
\wasdraftfalse

%  \GRAPHIC{ body }                                  %#1
%          { draft name }                            %#2
%          { contentswidth (scalar)  }               %#3
%          { contentsheight (scalar) }               %#4
%          { vertical shift when in-line (scalar) }  %#5
\def\GRAPHIC#1#2#3#4#5{%
   \ifnum\@msidraft=\@ne\draftbox{#2}{#3}{#4}{#5}%
   \else\graffile{#1}{#3}{#4}{#5}%
   \fi
}
%
\def\addtoLaTeXparams#1{%
    \edef\LaTeXparams{\LaTeXparams #1}}%
%
% JCS -  added a switch BoxFrame that can
% be set by including X in the frame params.
% If set a box is drawn around the frame.

\newif\ifBoxFrame \BoxFramefalse
\newif\ifOverFrame \OverFramefalse
\newif\ifUnderFrame \UnderFramefalse

\def\BOXTHEFRAME#1{%
   \hbox{%
      \ifBoxFrame
         \frame{#1}%
      \else
         {#1}%
      \fi
   }%
}


\def\doFRAMEparams#1{\BoxFramefalse\OverFramefalse\UnderFramefalse\readFRAMEparams#1\end}%
\def\readFRAMEparams#1{%
 \ifx#1\end%
  \let\next=\relax
  \else
  \ifx#1i\dispkind=\z@\fi
  \ifx#1d\dispkind=\@ne\fi
  \ifx#1f\dispkind=\tw@\fi
  \ifx#1t\addtoLaTeXparams{t}\fi
  \ifx#1b\addtoLaTeXparams{b}\fi
  \ifx#1p\addtoLaTeXparams{p}\fi
  \ifx#1h\addtoLaTeXparams{h}\fi
  \ifx#1X\BoxFrametrue\fi
  \ifx#1O\OverFrametrue\fi
  \ifx#1U\UnderFrametrue\fi
  \ifx#1w
    \ifnum\@msidraft=1\wasdrafttrue\else\wasdraftfalse\fi
    \@msidraft=\@ne
  \fi
  \let\next=\readFRAMEparams
  \fi
 \next
 }%
%
%Macro for In-line graphics object
%   \IFRAME{ contentswidth (scalar)  }               %#1
%          { contentsheight (scalar) }               %#2
%          { vertical shift when in-line (scalar) }  %#3
%          { draft name }                            %#4
%          { body }                                  %#5
%          { caption}                                %#6


\def\IFRAME#1#2#3#4#5#6{%
      \bgroup
      \let\QCTOptA\empty
      \let\QCTOptB\empty
      \let\QCBOptA\empty
      \let\QCBOptB\empty
      #6%
      \parindent=0pt
      \leftskip=0pt
      \rightskip=0pt
      \setbox0=\hbox{\QCBOptA}%
      \@tempdima=#1\relax
      \ifOverFrame
          % Do this later
          \typeout{This is not implemented yet}%
          \show\HELP
      \else
         \ifdim\wd0>\@tempdima
            \advance\@tempdima by \@tempdima
            \ifdim\wd0 >\@tempdima
               \setbox1 =\vbox{%
                  \unskip\hbox to \@tempdima{\hfill\GRAPHIC{#5}{#4}{#1}{#2}{#3}\hfill}%
                  \unskip\hbox to \@tempdima{\parbox[b]{\@tempdima}{\QCBOptA}}%
               }%
               \wd1=\@tempdima
            \else
               \textwidth=\wd0
               \setbox1 =\vbox{%
                 \noindent\hbox to \wd0{\hfill\GRAPHIC{#5}{#4}{#1}{#2}{#3}\hfill}\\%
                 \noindent\hbox{\QCBOptA}%
               }%
               \wd1=\wd0
            \fi
         \else
            \ifdim\wd0>0pt
              \hsize=\@tempdima
              \setbox1=\vbox{%
                \unskip\GRAPHIC{#5}{#4}{#1}{#2}{0pt}%
                \break
                \unskip\hbox to \@tempdima{\hfill \QCBOptA\hfill}%
              }%
              \wd1=\@tempdima
           \else
              \hsize=\@tempdima
              \setbox1=\vbox{%
                \unskip\GRAPHIC{#5}{#4}{#1}{#2}{0pt}%
              }%
              \wd1=\@tempdima
           \fi
         \fi
         \@tempdimb=\ht1
         %\advance\@tempdimb by \dp1
         \advance\@tempdimb by -#2
         \advance\@tempdimb by #3
         \leavevmode
         \raise -\@tempdimb \hbox{\box1}%
      \fi
      \egroup%
}%
%
%Macro for Display graphics object
%   \DFRAME{ contentswidth (scalar)  }               %#1
%          { contentsheight (scalar) }               %#2
%          { draft label }                           %#3
%          { name }                                  %#4
%          { caption}                                %#5
\def\DFRAME#1#2#3#4#5{%
  \vspace\topsep
  \hfil\break
  \bgroup
     \leftskip\@flushglue
	 \rightskip\@flushglue
	 \parindent\z@
	 \parfillskip\z@skip
     \let\QCTOptA\empty
     \let\QCTOptB\empty
     \let\QCBOptA\empty
     \let\QCBOptB\empty
	 \vbox\bgroup
        \ifOverFrame
           #5\QCTOptA\par
        \fi
        \GRAPHIC{#4}{#3}{#1}{#2}{\z@}%
        \ifUnderFrame
           \break#5\QCBOptA
        \fi
	 \egroup
  \egroup
  \vspace\topsep
  \break
}%
%
%Macro for Floating graphic object
%   \FFRAME{ framedata f|i tbph x F|T }              %#1
%          { contentswidth (scalar)  }               %#2
%          { contentsheight (scalar) }               %#3
%          { caption }                               %#4
%          { label }                                 %#5
%          { draft name }                            %#6
%          { body }                                  %#7
\def\FFRAME#1#2#3#4#5#6#7{%
 %If float.sty loaded and float option is 'h', change to 'H'  (gp) 1998/09/05
  \@ifundefined{floatstyle}
    {%floatstyle undefined (and float.sty not present), no change
     \begin{figure}[#1]%
    }
    {%floatstyle DEFINED
	 \ifx#1h%Only the h parameter, change to H
      \begin{figure}[H]%
	 \else
      \begin{figure}[#1]%
	 \fi
	}
  \let\QCTOptA\empty
  \let\QCTOptB\empty
  \let\QCBOptA\empty
  \let\QCBOptB\empty
  \ifOverFrame
    #4
    \ifx\QCTOptA\empty
    \else
      \ifx\QCTOptB\empty
        \caption{\QCTOptA}%
      \else
        \caption[\QCTOptB]{\QCTOptA}%
      \fi
    \fi
    \ifUnderFrame\else
      \label{#5}%
    \fi
  \else
    \UnderFrametrue%
  \fi
  \begin{center}\GRAPHIC{#7}{#6}{#2}{#3}{\z@}\end{center}%
  \ifUnderFrame
    #4
    \ifx\QCBOptA\empty
      \caption{}%
    \else
      \ifx\QCBOptB\empty
        \caption{\QCBOptA}%
      \else
        \caption[\QCBOptB]{\QCBOptA}%
      \fi
    \fi
    \label{#5}%
  \fi
  \end{figure}%
 }%
%
%
%    \FRAME{ framedata f|i tbph x F|T }              %#1
%          { contentswidth (scalar)  }               %#2
%          { contentsheight (scalar) }               %#3
%          { vertical shift when in-line (scalar) }  %#4
%          { caption }                               %#5
%          { label }                                 %#6
%          { name }                                  %#7
%          { body }                                  %#8
%
%    framedata is a string which can contain the following
%    characters: idftbphxFT
%    Their meaning is as follows:
%             i, d or f : in-line, display, or floating
%             t,b,p,h   : LaTeX floating placement options
%             x         : fit contents box to contents
%             F or T    : Figure or Table.
%                         Later this can expand
%                         to a more general float class.
%
%
\newcount\dispkind%

\def\makeactives{
  \catcode`\"=\active
  \catcode`\;=\active
  \catcode`\:=\active
  \catcode`\'=\active
  \catcode`\~=\active
}
\bgroup
   \makeactives
   \gdef\activesoff{%
      \def"{\string"}%
      \def;{\string;}%
      \def:{\string:}%
      \def'{\string'}%
      \def~{\string~}%
      %\bbl@deactivate{"}%
      %\bbl@deactivate{;}%
      %\bbl@deactivate{:}%
      %\bbl@deactivate{'}%
    }
\egroup

\def\FRAME#1#2#3#4#5#6#7#8{%
 \bgroup
 \ifnum\@msidraft=\@ne
   \wasdrafttrue
 \else
   \wasdraftfalse%
 \fi
 \def\LaTeXparams{}%
 \dispkind=\z@
 \def\LaTeXparams{}%
 \doFRAMEparams{#1}%
 \ifnum\dispkind=\z@\IFRAME{#2}{#3}{#4}{#7}{#8}{#5}\else
  \ifnum\dispkind=\@ne\DFRAME{#2}{#3}{#7}{#8}{#5}\else
   \ifnum\dispkind=\tw@
    \edef\@tempa{\noexpand\FFRAME{\LaTeXparams}}%
    \@tempa{#2}{#3}{#5}{#6}{#7}{#8}%
    \fi
   \fi
  \fi
  \ifwasdraft\@msidraft=1\else\@msidraft=0\fi{}%
  \egroup
 }%
%
% This macro added to let SW gobble a parameter that
% should not be passed on and expanded.

\def\TEXUX#1{"texux"}

%
% Macros for text attributes:
%
\def\BF#1{{\bf {#1}}}%
\def\NEG#1{\leavevmode\hbox{\rlap{\thinspace/}{$#1$}}}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% macros for user - defined functions
\def\limfunc#1{\mathop{\rm #1}}%
\def\func#1{\mathop{\rm #1}\nolimits}%
% macro for unit names
\def\unit#1{\mathord{\thinspace\rm #1}}%

%
% miscellaneous
\long\def\QQQ#1#2{%
     \long\expandafter\def\csname#1\endcsname{#2}}%
\@ifundefined{QTP}{\def\QTP#1{}}{}
\@ifundefined{QEXCLUDE}{\def\QEXCLUDE#1{}}{}
\@ifundefined{Qlb}{\def\Qlb#1{#1}}{}
\@ifundefined{Qlt}{\def\Qlt#1{#1}}{}
\def\QWE{}%
\long\def\QQA#1#2{}%
\def\QTR#1#2{{\csname#1\endcsname {#2}}}%
\long\def\TeXButton#1#2{#2}%
\long\def\QSubDoc#1#2{#2}%
\def\EXPAND#1[#2]#3{}%
\def\NOEXPAND#1[#2]#3{}%
\def\PROTECTED{}%
\def\LaTeXparent#1{}%
\def\ChildStyles#1{}%
\def\ChildDefaults#1{}%
\def\QTagDef#1#2#3{}%

% Constructs added with Scientific Notebook
\@ifundefined{correctchoice}{\def\correctchoice{\relax}}{}
\@ifundefined{HTML}{\def\HTML#1{\relax}}{}
\@ifundefined{TCIIcon}{\def\TCIIcon#1#2#3#4{\relax}}{}
\if@compatibility
  \typeout{Not defining UNICODE  U or CustomNote commands for LaTeX 2.09.}
\else
  \providecommand{\UNICODE}[2][]{\protect\rule{.1in}{.1in}}
  \providecommand{\U}[1]{\protect\rule{.1in}{.1in}}
  \providecommand{\CustomNote}[3][]{\marginpar{#3}}
\fi

\@ifundefined{lambdabar}{
      \def\lambdabar{\errmessage{You have used the lambdabar symbol.
                      This is available for typesetting only in RevTeX styles.}}
   }{}

%
% Macros for style editor docs
\@ifundefined{StyleEditBeginDoc}{\def\StyleEditBeginDoc{\relax}}{}
%
% Macros for footnotes
\def\QQfnmark#1{\footnotemark}
\def\QQfntext#1#2{\addtocounter{footnote}{#1}\footnotetext{#2}}
%
% Macros for indexing.
%
\@ifundefined{TCIMAKEINDEX}{}{\makeindex}%
%
% Attempts to avoid problems with other styles
\@ifundefined{abstract}{%
 \def\abstract{%
  \if@twocolumn
   \section*{Abstract (Not appropriate in this style!)}%
   \else \small
   \begin{center}{\bf Abstract\vspace{-.5em}\vspace{\z@}}\end{center}%
   \quotation
   \fi
  }%
 }{%
 }%
\@ifundefined{endabstract}{\def\endabstract
  {\if@twocolumn\else\endquotation\fi}}{}%
\@ifundefined{maketitle}{\def\maketitle#1{}}{}%
\@ifundefined{affiliation}{\def\affiliation#1{}}{}%
\@ifundefined{proof}{\def\proof{\noindent{\bfseries Proof. }}}{}%
\@ifundefined{endproof}{\def\endproof{\mbox{\ \rule{.1in}{.1in}}}}{}%
\@ifundefined{newfield}{\def\newfield#1#2{}}{}%
\@ifundefined{chapter}{\def\chapter#1{\par(Chapter head:)#1\par }%
 \newcount\c@chapter}{}%
\@ifundefined{part}{\def\part#1{\par(Part head:)#1\par }}{}%
\@ifundefined{section}{\def\section#1{\par(Section head:)#1\par }}{}%
\@ifundefined{subsection}{\def\subsection#1%
 {\par(Subsection head:)#1\par }}{}%
\@ifundefined{subsubsection}{\def\subsubsection#1%
 {\par(Subsubsection head:)#1\par }}{}%
\@ifundefined{paragraph}{\def\paragraph#1%
 {\par(Subsubsubsection head:)#1\par }}{}%
\@ifundefined{subparagraph}{\def\subparagraph#1%
 {\par(Subsubsubsubsection head:)#1\par }}{}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% These symbols are not recognized by LaTeX
\@ifundefined{therefore}{\def\therefore{}}{}%
\@ifundefined{backepsilon}{\def\backepsilon{}}{}%
\@ifundefined{yen}{\def\yen{\hbox{\rm\rlap=Y}}}{}%
\@ifundefined{registered}{%
   \def\registered{\relax\ifmmode{}\r@gistered
                    \else$\m@th\r@gistered$\fi}%
 \def\r@gistered{^{\ooalign
  {\hfil\raise.07ex\hbox{$\scriptstyle\rm\text{R}$}\hfil\crcr
  \mathhexbox20D}}}}{}%
\@ifundefined{Eth}{\def\Eth{}}{}%
\@ifundefined{eth}{\def\eth{}}{}%
\@ifundefined{Thorn}{\def\Thorn{}}{}%
\@ifundefined{thorn}{\def\thorn{}}{}%
% A macro to allow any symbol that requires math to appear in text
\def\TEXTsymbol#1{\mbox{$#1$}}%
\@ifundefined{degree}{\def\degree{{}^{\circ}}}{}%
%
% macros for T3TeX files
\newdimen\theight
\@ifundefined{Column}{\def\Column{%
 \vadjust{\setbox\z@=\hbox{\scriptsize\quad\quad tcol}%
  \theight=\ht\z@\advance\theight by \dp\z@\advance\theight by \lineskip
  \kern -\theight \vbox to \theight{%
   \rightline{\rlap{\box\z@}}%
   \vss
   }%
  }%
 }}{}%
%
\@ifundefined{qed}{\def\qed{%
 \ifhmode\unskip\nobreak\fi\ifmmode\ifinner\else\hskip5\p@\fi\fi
 \hbox{\hskip5\p@\vrule width4\p@ height6\p@ depth1.5\p@\hskip\p@}%
 }}{}%
%
\@ifundefined{cents}{\def\cents{\hbox{\rm\rlap c/}}}{}%
\@ifundefined{tciLaplace}{\def\tciLaplace{\ensuremath{\mathcal{L}}}}{}%
\@ifundefined{tciFourier}{\def\tciFourier{\ensuremath{\mathcal{F}}}}{}%
\@ifundefined{textcurrency}{\def\textcurrency{\hbox{\rm\rlap xo}}}{}%
\@ifundefined{texteuro}{\def\texteuro{\hbox{\rm\rlap C=}}}{}%
\@ifundefined{euro}{\def\euro{\hbox{\rm\rlap C=}}}{}%
\@ifundefined{textfranc}{\def\textfranc{\hbox{\rm\rlap-F}}}{}%
\@ifundefined{textlira}{\def\textlira{\hbox{\rm\rlap L=}}}{}%
\@ifundefined{textpeseta}{\def\textpeseta{\hbox{\rm P\negthinspace s}}}{}%
%
\@ifundefined{miss}{\def\miss{\hbox{\vrule height2\p@ width 2\p@ depth\z@}}}{}%
%
\@ifundefined{vvert}{\def\vvert{\Vert}}{}%  %always translated to \left| or \right|
%
\@ifundefined{tcol}{\def\tcol#1{{\baselineskip=6\p@ \vcenter{#1}} \Column}}{}%
%
\@ifundefined{dB}{\def\dB{\hbox{{}}}}{}%        %dummy entry in column
\@ifundefined{mB}{\def\mB#1{\hbox{$#1$}}}{}%   %column entry
\@ifundefined{nB}{\def\nB#1{\hbox{#1}}}{}%     %column entry (not math)
%
\@ifundefined{note}{\def\note{$^{\dag}}}{}%
%
\def\newfmtname{LaTeX2e}
% No longer load latexsym.  This is now handled by SWP, which uses amsfonts if necessary
%
\ifx\fmtname\newfmtname
  \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
  \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
  \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
  \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
  \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
  \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
  \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\fi

%
% Greek bold macros
% Redefine all of the math symbols
% which might be bolded	 - there are
% probably others to add to this list

\def\alpha{{\Greekmath 010B}}%
\def\beta{{\Greekmath 010C}}%
\def\gamma{{\Greekmath 010D}}%
\def\delta{{\Greekmath 010E}}%
\def\epsilon{{\Greekmath 010F}}%
\def\zeta{{\Greekmath 0110}}%
\def\eta{{\Greekmath 0111}}%
\def\theta{{\Greekmath 0112}}%
\def\iota{{\Greekmath 0113}}%
\def\kappa{{\Greekmath 0114}}%
\def\lambda{{\Greekmath 0115}}%
\def\mu{{\Greekmath 0116}}%
\def\nu{{\Greekmath 0117}}%
\def\xi{{\Greekmath 0118}}%
\def\pi{{\Greekmath 0119}}%
\def\rho{{\Greekmath 011A}}%
\def\sigma{{\Greekmath 011B}}%
\def\tau{{\Greekmath 011C}}%
\def\upsilon{{\Greekmath 011D}}%
\def\phi{{\Greekmath 011E}}%
\def\chi{{\Greekmath 011F}}%
\def\psi{{\Greekmath 0120}}%
\def\omega{{\Greekmath 0121}}%
\def\varepsilon{{\Greekmath 0122}}%
\def\vartheta{{\Greekmath 0123}}%
\def\varpi{{\Greekmath 0124}}%
\def\varrho{{\Greekmath 0125}}%
\def\varsigma{{\Greekmath 0126}}%
\def\varphi{{\Greekmath 0127}}%

\def\nabla{{\Greekmath 0272}}
\def\FindBoldGroup{%
   {\setbox0=\hbox{$\mathbf{x\global\edef\theboldgroup{\the\mathgroup}}$}}%
}

\def\Greekmath#1#2#3#4{%
    \if@compatibility
        \ifnum\mathgroup=\symbold
           \mathchoice{\mbox{\boldmath$\displaystyle\mathchar"#1#2#3#4$}}%
                      {\mbox{\boldmath$\textstyle\mathchar"#1#2#3#4$}}%
                      {\mbox{\boldmath$\scriptstyle\mathchar"#1#2#3#4$}}%
                      {\mbox{\boldmath$\scriptscriptstyle\mathchar"#1#2#3#4$}}%
        \else
           \mathchar"#1#2#3#4%
        \fi
    \else
        \FindBoldGroup
        \ifnum\mathgroup=\theboldgroup % For 2e
           \mathchoice{\mbox{\boldmath$\displaystyle\mathchar"#1#2#3#4$}}%
                      {\mbox{\boldmath$\textstyle\mathchar"#1#2#3#4$}}%
                      {\mbox{\boldmath$\scriptstyle\mathchar"#1#2#3#4$}}%
                      {\mbox{\boldmath$\scriptscriptstyle\mathchar"#1#2#3#4$}}%
        \else
           \mathchar"#1#2#3#4%
        \fi
	  \fi}

\newif\ifGreekBold  \GreekBoldfalse
\let\SAVEPBF=\pbf
\def\pbf{\GreekBoldtrue\SAVEPBF}%
%

\@ifundefined{theorem}{\newtheorem{theorem}{Theorem}}{}
\@ifundefined{lemma}{\newtheorem{lemma}[theorem]{Lemma}}{}
\@ifundefined{corollary}{\newtheorem{corollary}[theorem]{Corollary}}{}
\@ifundefined{conjecture}{\newtheorem{conjecture}[theorem]{Conjecture}}{}
\@ifundefined{proposition}{\newtheorem{proposition}[theorem]{Proposition}}{}
\@ifundefined{axiom}{\newtheorem{axiom}{Axiom}}{}
\@ifundefined{remark}{\newtheorem{remark}{Remark}}{}
\@ifundefined{example}{\newtheorem{example}{Example}}{}
\@ifundefined{exercise}{\newtheorem{exercise}{Exercise}}{}
\@ifundefined{definition}{\newtheorem{definition}{Definition}}{}


\@ifundefined{mathletters}{%
  %\def\theequation{\arabic{equation}}
  \newcounter{equationnumber}
  \def\mathletters{%
     \addtocounter{equation}{1}
     \edef\@currentlabel{\theequation}%
     \setcounter{equationnumber}{\c@equation}
     \setcounter{equation}{0}%
     \edef\theequation{\@currentlabel\noexpand\alph{equation}}%
  }
  \def\endmathletters{%
     \setcounter{equation}{\value{equationnumber}}%
  }
}{}

%Logos
\@ifundefined{BibTeX}{%
    \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
                 T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}%
\@ifundefined{AmS}%
    {\def\AmS{{\protect\usefont{OMS}{cmsy}{m}{n}%
                A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}}{}%
\@ifundefined{AmSTeX}{\def\AmSTeX{\protect\AmS-\protect\TeX\@}}{}%
%

% This macro is a fix to eqnarray
\def\@@eqncr{\let\@tempa\relax
    \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}%
      \else \def\@tempa{&}\fi
     \@tempa
     \if@eqnsw
        \iftag@
           \@taggnum
        \else
           \@eqnnum\stepcounter{equation}%
        \fi
     \fi
     \global\tag@false
     \global\@eqnswtrue
     \global\@eqcnt\z@\cr}


\def\TCItag{\@ifnextchar*{\@TCItagstar}{\@TCItag}}
\def\@TCItag#1{%
    \global\tag@true
    \global\def\@taggnum{(#1)}}
\def\@TCItagstar*#1{%
    \global\tag@true
    \global\def\@taggnum{#1}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\QATOP#1#2{{#1 \atop #2}}%
\def\QTATOP#1#2{{\textstyle {#1 \atop #2}}}%
\def\QDATOP#1#2{{\displaystyle {#1 \atop #2}}}%
\def\QABOVE#1#2#3{{#2 \above#1 #3}}%
\def\QTABOVE#1#2#3{{\textstyle {#2 \above#1 #3}}}%
\def\QDABOVE#1#2#3{{\displaystyle {#2 \above#1 #3}}}%
\def\QOVERD#1#2#3#4{{#3 \overwithdelims#1#2 #4}}%
\def\QTOVERD#1#2#3#4{{\textstyle {#3 \overwithdelims#1#2 #4}}}%
\def\QDOVERD#1#2#3#4{{\displaystyle {#3 \overwithdelims#1#2 #4}}}%
\def\QATOPD#1#2#3#4{{#3 \atopwithdelims#1#2 #4}}%
\def\QTATOPD#1#2#3#4{{\textstyle {#3 \atopwithdelims#1#2 #4}}}%
\def\QDATOPD#1#2#3#4{{\displaystyle {#3 \atopwithdelims#1#2 #4}}}%
\def\QABOVED#1#2#3#4#5{{#4 \abovewithdelims#1#2#3 #5}}%
\def\QTABOVED#1#2#3#4#5{{\textstyle
   {#4 \abovewithdelims#1#2#3 #5}}}%
\def\QDABOVED#1#2#3#4#5{{\displaystyle
   {#4 \abovewithdelims#1#2#3 #5}}}%
%
% Macros for text size operators:
%
\def\tint{\mathop{\textstyle \int}}%
\def\tiint{\mathop{\textstyle \iint }}%
\def\tiiint{\mathop{\textstyle \iiint }}%
\def\tiiiint{\mathop{\textstyle \iiiint }}%
\def\tidotsint{\mathop{\textstyle \idotsint }}%
\def\toint{\mathop{\textstyle \oint}}%
\def\tsum{\mathop{\textstyle \sum }}%
\def\tprod{\mathop{\textstyle \prod }}%
\def\tbigcap{\mathop{\textstyle \bigcap }}%
\def\tbigwedge{\mathop{\textstyle \bigwedge }}%
\def\tbigoplus{\mathop{\textstyle \bigoplus }}%
\def\tbigodot{\mathop{\textstyle \bigodot }}%
\def\tbigsqcup{\mathop{\textstyle \bigsqcup }}%
\def\tcoprod{\mathop{\textstyle \coprod }}%
\def\tbigcup{\mathop{\textstyle \bigcup }}%
\def\tbigvee{\mathop{\textstyle \bigvee }}%
\def\tbigotimes{\mathop{\textstyle \bigotimes }}%
\def\tbiguplus{\mathop{\textstyle \biguplus }}%
%
%
%Macros for display size operators:
%
\def\dint{\mathop{\displaystyle \int}}%
\def\diint{\mathop{\displaystyle \iint}}%
\def\diiint{\mathop{\displaystyle \iiint}}%
\def\diiiint{\mathop{\displaystyle \iiiint }}%
\def\didotsint{\mathop{\displaystyle \idotsint }}%
\def\doint{\mathop{\displaystyle \oint}}%
\def\dsum{\mathop{\displaystyle \sum }}%
\def\dprod{\mathop{\displaystyle \prod }}%
\def\dbigcap{\mathop{\displaystyle \bigcap }}%
\def\dbigwedge{\mathop{\displaystyle \bigwedge }}%
\def\dbigoplus{\mathop{\displaystyle \bigoplus }}%
\def\dbigodot{\mathop{\displaystyle \bigodot }}%
\def\dbigsqcup{\mathop{\displaystyle \bigsqcup }}%
\def\dcoprod{\mathop{\displaystyle \coprod }}%
\def\dbigcup{\mathop{\displaystyle \bigcup }}%
\def\dbigvee{\mathop{\displaystyle \bigvee }}%
\def\dbigotimes{\mathop{\displaystyle \bigotimes }}%
\def\dbiguplus{\mathop{\displaystyle \biguplus }}%

\if@compatibility\else
  % Always load amsmath in LaTeX2e mode
  \RequirePackage{amsmath}
\fi

\def\ExitTCILatex{\makeatother\endinput}

\bgroup
\ifx\ds@amstex\relax
   \message{amstex already loaded}\aftergroup\ExitTCILatex
\else
   \@ifpackageloaded{amsmath}%
      {\if@compatibility\message{amsmath already loaded}\fi\aftergroup\ExitTCILatex}
      {}
   \@ifpackageloaded{amstex}%
      {\if@compatibility\message{amstex already loaded}\fi\aftergroup\ExitTCILatex}
      {}
   \@ifpackageloaded{amsgen}%
      {\if@compatibility\message{amsgen already loaded}\fi\aftergroup\ExitTCILatex}
      {}
\fi
\egroup

%Exit if any of the AMS macros are already loaded.
%This is always the case for LaTeX2e mode.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% NOTE: The rest of this file is read only if in LaTeX 2.09 compatibility
% mode. This section is used to define AMS-like constructs in the
% event they have not been defined.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\typeout{TCILATEX defining AMS-like constructs in LaTeX 2.09 COMPATIBILITY MODE}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Macros to define some AMS LaTeX constructs when
%  AMS LaTeX has not been loaded
%
% These macros are copied from the AMS-TeX package for doing
% multiple integrals.
%
\let\DOTSI\relax
\def\RIfM@{\relax\ifmmode}%
\def\FN@{\futurelet\next}%
\newcount\intno@
\def\iint{\DOTSI\intno@\tw@\FN@\ints@}%
\def\iiint{\DOTSI\intno@\thr@@\FN@\ints@}%
\def\iiiint{\DOTSI\intno@4 \FN@\ints@}%
\def\idotsint{\DOTSI\intno@\z@\FN@\ints@}%
\def\ints@{\findlimits@\ints@@}%
\newif\iflimtoken@
\newif\iflimits@
\def\findlimits@{\limtoken@true\ifx\next\limits\limits@true
 \else\ifx\next\nolimits\limits@false\else
 \limtoken@false\ifx\ilimits@\nolimits\limits@false\else
 \ifinner\limits@false\else\limits@true\fi\fi\fi\fi}%
\def\multint@{\int\ifnum\intno@=\z@\intdots@                          %1
 \else\intkern@\fi                                                    %2
 \ifnum\intno@>\tw@\int\intkern@\fi                                   %3
 \ifnum\intno@>\thr@@\int\intkern@\fi                                 %4
 \int}%                                                               %5
\def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@\else\intkern@\fi
 \ifnum\intno@>\tw@\intop\intkern@\fi
 \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}%
\def\intic@{%
    \mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}%
\def\negintic@{\mathchoice
 {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}}%
\def\ints@@{\iflimtoken@                                              %1
 \def\ints@@@{\iflimits@\negintic@
   \mathop{\intic@\multintlimits@}\limits                             %2
  \else\multint@\nolimits\fi                                          %3
  \eat@}%                                                             %4
 \else                                                                %5
 \def\ints@@@{\iflimits@\negintic@
  \mathop{\intic@\multintlimits@}\limits\else
  \multint@\nolimits\fi}\fi\ints@@@}%
\def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}%
\def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}}%
\def\intdots@{\mathchoice{\plaincdots@}%
 {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%
 {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
 {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}%
%
%
%  These macros are for doing the AMS \text{} construct
%
\def\RIfM@{\relax\protect\ifmmode}
\def\text{\RIfM@\expandafter\text@\else\expandafter\mbox\fi}
\let\nfss@text\text
\def\text@#1{\mathchoice
   {\textdef@\displaystyle\f@size{#1}}%
   {\textdef@\textstyle\tf@size{\firstchoice@false #1}}%
   {\textdef@\textstyle\sf@size{\firstchoice@false #1}}%
   {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}%
   \glb@settings}

\def\textdef@#1#2#3{\hbox{{%
                    \everymath{#1}%
                    \let\f@size#2\selectfont
                    #3}}}
\newif\iffirstchoice@
\firstchoice@true
%
%These are the AMS constructs for multiline limits.
%
\def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi}%
\def\vspace@{\def\vspace##1{\crcr\noalign{\vskip##1\relax}}}%
\def\multilimits@{\bgroup\vspace@\Let@
 \baselineskip\fontdimen10 \scriptfont\tw@
 \advance\baselineskip\fontdimen12 \scriptfont\tw@
 \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
 \lineskiplimit\lineskip
 \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}%
\def\Sb{_\multilimits@}%
\def\endSb{\crcr\egroup\egroup\egroup}%
\def\Sp{^\multilimits@}%
\let\endSp\endSb
%
%
%These are AMS constructs for horizontal arrows
%
\newdimen\ex@
\ex@.2326ex
\def\rightarrowfill@#1{$#1\m@th\mathord-\mkern-6mu\cleaders
 \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill
 \mkern-6mu\mathord\rightarrow$}%
\def\leftarrowfill@#1{$#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
 \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill\mkern-6mu\mathord-$}%
\def\leftrightarrowfill@#1{$#1\m@th\mathord\leftarrow
\mkern-6mu\cleaders
 \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill
 \mkern-6mu\mathord\rightarrow$}%
\def\overrightarrow{\mathpalette\overrightarrow@}%
\def\overrightarrow@#1#2{\vbox{\ialign{##\crcr\rightarrowfill@#1\crcr
 \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}%
\let\overarrow\overrightarrow
\def\overleftarrow{\mathpalette\overleftarrow@}%
\def\overleftarrow@#1#2{\vbox{\ialign{##\crcr\leftarrowfill@#1\crcr
 \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}%
\def\overleftrightarrow{\mathpalette\overleftrightarrow@}%
\def\overleftrightarrow@#1#2{\vbox{\ialign{##\crcr
   \leftrightarrowfill@#1\crcr
 \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}%
\def\underrightarrow{\mathpalette\underrightarrow@}%
\def\underrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil
  $\crcr\noalign{\nointerlineskip}\rightarrowfill@#1\crcr}}}%
\let\underarrow\underrightarrow
\def\underleftarrow{\mathpalette\underleftarrow@}%
\def\underleftarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil
  $\crcr\noalign{\nointerlineskip}\leftarrowfill@#1\crcr}}}%
\def\underleftrightarrow{\mathpalette\underleftrightarrow@}%
\def\underleftrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th
  \hfil#1#2\hfil$\crcr
 \noalign{\nointerlineskip}\leftrightarrowfill@#1\crcr}}}%
%%%%%%%%%%%%%%%%%%%%%

\def\qopnamewl@#1{\mathop{\operator@font#1}\nlimits@}
\let\nlimits@\displaylimits
\def\setboxz@h{\setbox\z@\hbox}


\def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr
 \hfil$#1\m@th\operator@font lim$\hfil\crcr
 \noalign{\nointerlineskip}#2#1\crcr
 \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}

 \def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
  $#1\copy\z@\mkern-6mu\cleaders
  \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
  \mkern-6mu\mathord\rightarrow$}
\def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
  $#1\mathord\leftarrow\mkern-6mu\cleaders
  \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
  \mkern-6mu\box\z@$}


\def\projlim{\qopnamewl@{proj\,lim}}
\def\injlim{\qopnamewl@{inj\,lim}}
\def\varinjlim{\mathpalette\varlim@\rightarrowfill@}
\def\varprojlim{\mathpalette\varlim@\leftarrowfill@}
\def\varliminf{\mathpalette\varliminf@{}}
\def\varliminf@#1{\mathop{\underline{\vrule\@depth.2\ex@\@width\z@
   \hbox{$#1\m@th\operator@font lim$}}}}
\def\varlimsup{\mathpalette\varlimsup@{}}
\def\varlimsup@#1{\mathop{\overline
  {\hbox{$#1\m@th\operator@font lim$}}}}

%
%Companion to stackrel
\def\stackunder#1#2{\mathrel{\mathop{#2}\limits_{#1}}}%
%
%
% These are AMS environments that will be defined to
% be verbatims if amstex has not actually been
% loaded
%
%
\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12
|gdef|@alignverbatim#1\end{align}[#1|end[align]]
|gdef|@salignverbatim#1\end{align*}[#1|end[align*]]

|gdef|@alignatverbatim#1\end{alignat}[#1|end[alignat]]
|gdef|@salignatverbatim#1\end{alignat*}[#1|end[alignat*]]

|gdef|@xalignatverbatim#1\end{xalignat}[#1|end[xalignat]]
|gdef|@sxalignatverbatim#1\end{xalignat*}[#1|end[xalignat*]]

|gdef|@gatherverbatim#1\end{gather}[#1|end[gather]]
|gdef|@sgatherverbatim#1\end{gather*}[#1|end[gather*]]

|gdef|@gatherverbatim#1\end{gather}[#1|end[gather]]
|gdef|@sgatherverbatim#1\end{gather*}[#1|end[gather*]]


|gdef|@multilineverbatim#1\end{multiline}[#1|end[multiline]]
|gdef|@smultilineverbatim#1\end{multiline*}[#1|end[multiline*]]

|gdef|@arraxverbatim#1\end{arrax}[#1|end[arrax]]
|gdef|@sarraxverbatim#1\end{arrax*}[#1|end[arrax*]]

|gdef|@tabulaxverbatim#1\end{tabulax}[#1|end[tabulax]]
|gdef|@stabulaxverbatim#1\end{tabulax*}[#1|end[tabulax*]]


|endgroup



\def\align{\@verbatim \frenchspacing\@vobeyspaces \@alignverbatim
You are using the "align" environment in a style in which it is not defined.}
\let\endalign=\endtrivlist

\@namedef{align*}{\@verbatim\@salignverbatim
You are using the "align*" environment in a style in which it is not defined.}
\expandafter\let\csname endalign*\endcsname =\endtrivlist




\def\alignat{\@verbatim \frenchspacing\@vobeyspaces \@alignatverbatim
You are using the "alignat" environment in a style in which it is not defined.}
\let\endalignat=\endtrivlist

\@namedef{alignat*}{\@verbatim\@salignatverbatim
You are using the "alignat*" environment in a style in which it is not defined.}
\expandafter\let\csname endalignat*\endcsname =\endtrivlist




\def\xalignat{\@verbatim \frenchspacing\@vobeyspaces \@xalignatverbatim
You are using the "xalignat" environment in a style in which it is not defined.}
\let\endxalignat=\endtrivlist

\@namedef{xalignat*}{\@verbatim\@sxalignatverbatim
You are using the "xalignat*" environment in a style in which it is not defined.}
\expandafter\let\csname endxalignat*\endcsname =\endtrivlist




\def\gather{\@verbatim \frenchspacing\@vobeyspaces \@gatherverbatim
You are using the "gather" environment in a style in which it is not defined.}
\let\endgather=\endtrivlist

\@namedef{gather*}{\@verbatim\@sgatherverbatim
You are using the "gather*" environment in a style in which it is not defined.}
\expandafter\let\csname endgather*\endcsname =\endtrivlist


\def\multiline{\@verbatim \frenchspacing\@vobeyspaces \@multilineverbatim
You are using the "multiline" environment in a style in which it is not defined.}
\let\endmultiline=\endtrivlist

\@namedef{multiline*}{\@verbatim\@smultilineverbatim
You are using the "multiline*" environment in a style in which it is not defined.}
\expandafter\let\csname endmultiline*\endcsname =\endtrivlist


\def\arrax{\@verbatim \frenchspacing\@vobeyspaces \@arraxverbatim
You are using a type of "array" construct that is only allowed in AmS-LaTeX.}
\let\endarrax=\endtrivlist

\def\tabulax{\@verbatim \frenchspacing\@vobeyspaces \@tabulaxverbatim
You are using a type of "tabular" construct that is only allowed in AmS-LaTeX.}
\let\endtabulax=\endtrivlist


\@namedef{arrax*}{\@verbatim\@sarraxverbatim
You are using a type of "array*" construct that is only allowed in AmS-LaTeX.}
\expandafter\let\csname endarrax*\endcsname =\endtrivlist

\@namedef{tabulax*}{\@verbatim\@stabulaxverbatim
You are using a type of "tabular*" construct that is only allowed in AmS-LaTeX.}
\expandafter\let\csname endtabulax*\endcsname =\endtrivlist

% macro to simulate ams tag construct


% This macro is a fix to the equation environment
 \def\endequation{%
     \ifmmode\ifinner % FLEQN hack
      \iftag@
        \addtocounter{equation}{-1} % undo the increment made in the begin part
        $\hfil
           \displaywidth\linewidth\@taggnum\egroup \endtrivlist
        \global\tag@false
        \global\@ignoretrue
      \else
        $\hfil
           \displaywidth\linewidth\@eqnnum\egroup \endtrivlist
        \global\tag@false
        \global\@ignoretrue
      \fi
     \else
      \iftag@
        \addtocounter{equation}{-1} % undo the increment made in the begin part
        \eqno \hbox{\@taggnum}
        \global\tag@false%
        $$\global\@ignoretrue
      \else
        \eqno \hbox{\@eqnnum}% $$ BRACE MATCHING HACK
        $$\global\@ignoretrue
      \fi
     \fi\fi
 }

 \newif\iftag@ \tag@false

 \def\TCItag{\@ifnextchar*{\@TCItagstar}{\@TCItag}}
 \def\@TCItag#1{%
     \global\tag@true
     \global\def\@taggnum{(#1)}}
 \def\@TCItagstar*#1{%
     \global\tag@true
     \global\def\@taggnum{#1}}

  \@ifundefined{tag}{
     \def\tag{\@ifnextchar*{\@tagstar}{\@tag}}
     \def\@tag#1{%
         \global\tag@true
         \global\def\@taggnum{(#1)}}
     \def\@tagstar*#1{%
         \global\tag@true
         \global\def\@taggnum{#1}}
  }{}

\def\tfrac#1#2{{\textstyle {#1 \over #2}}}%
\def\dfrac#1#2{{\displaystyle {#1 \over #2}}}%
\def\binom#1#2{{#1 \choose #2}}%
\def\tbinom#1#2{{\textstyle {#1 \choose #2}}}%
\def\dbinom#1#2{{\displaystyle {#1 \choose #2}}}%

% Do not add anything to the end of this file.
% The last section of the file is loaded only if
% amstex has not been.
\makeatother
\endinput

1112.4883.extracted_bib
\begin{thebibliography}{99}
\bibitem{A} Artin M., Algebra. \textit{Prentice Hall, Inc., Englewood
Cliffs, NJ} (1991).

\bibitem{FGHSS} Fish A., Gurevich S., Hadani R., Sayeed A., Schwartz O.,
Fast matched filter and group representation theory. \textit{In \
preparation (2011).}

\bibitem{GG} Golomb, S.W. and Gong G., Signal design for good correlation.
For wireless communication, cryptography, and radar. \textit{Cambridge
University Press, Cambridge (2005).}

\bibitem{GHS1} Gurevich S., Hadani R., Sochen N., The finite harmonic
oscillator and its associated sequences. \textit{PNAS, July 22, 2008 vol.
105 no. 29 9869--9873.}

\bibitem{GHS2} Gurevich S., Hadani R., Sochen N., The finite harmonic
oscillator and its applications to sequences, communication and radar . 
\textit{IEEE Transactions on Information Theory, vol. 54, no. 9, September
2008.}

\bibitem{H} Howe R., Nice error bases, mutually unbiased bases, induced
representations, the Heisenberg group and finite geometries. \textit{Indag.
Math. (N.S.) 16 (2005), no. 3--4, 553--583.}

\bibitem{HCM} Howard, S. D., Calderbank, R., and Moran W., The finite
Heisenberg--Weyl groups in radar and communications. \textit{EURASIP J.
Appl. Signal Process (2006).}

\bibitem{K} Kaplan E., Understanding GPS Principles and Applications.\textit{%
\ Artech house, INC (1996).}

\bibitem{OMB} O'Toole J.M., Mesbah M., and Boashash B., Accurate and
efficient implementation of the time--frequency matched filter. \textit{IET
Signal Process., 2010, Vol. 4, Iss. 4, pp. 428--437.}

\bibitem{TV} Tse D., and Viswanath P., Fundamentals of Wireless
Communication. \textit{Cambridge University Press (2005).}

\bibitem{V} Verdu S., Multiuser Detection, \textit{Cambridge University
Press (1998).}

\bibitem{WG} Wang Z., and Gong G., New Sequences Design From Weil
Representation With Low Two-Dimensional Correlation in Both Time and Phase
Shifts. \textit{IEEE Transactions on Information Theory, vol. 57, no. 7,
July 2011. }

\bibitem{W} Weil A., Sur certains groupes d'operateurs unitaires. \textit{%
Acta Math. 111, 143-211 (1964).}
\end{thebibliography}