Patent ID: 12189051

DETAILED DESCRIPTION

The invention will be further illustrated with reference to the following specific examples. It is understood that these examples are given by way of illustration and are not meant to limit the claimed inventions.

FIG.3is a schematic illustration of a signal transmission system300in which a complex signal is processed by a notch filter340according to aspects of the present invention to attenuate a complex noise component from the signal. It is to be understood that, although the illustrated filter is capable of attenuating a complex noise component, the signal may be complex or real, and the noise component to be attenuated may be real or complex.

The illustrated system300comprises a modulator310which modulates a baseband signal BBS in a conventional manner using a mixer312to mix the baseband signal BBS with a sinusoidal carrier signal (e.g., cos(2πfct)) of a selected carrier frequency fcto form a modulated signal to be transmitted. Transmission system300transmits the modulated signal from a first location to a second location using antennas322,324. Upon receipt of the signal at the second location, a demodulator330is used to demodulate the signal back to the baseband. During any of transmission, modulation or demodulation, noise tones N may be introduced into the signal by one or more noise sources N. Although illustrated as external to system300, a noise source N may be external to system300or internal (i.e., noise arises from the components of system300).

Typically, upon demodulation, an in-phase component (I) and a quadrature component (Q) of the received signal are obtained and added together to form a complex demodulated baseband signal. Typically, each of the in-phase and the quadrature components are afflicted with noise. As set forth in greater detail below, a filter according to aspects of the present invention is capable of attenuating a noise component (possibly a complex noise component) from the complex signal to produce a baseband signal having a higher signal-to-noise ratio. For example, demodulation may be achieved by mixing the modulated signal with a first signal from a first signal generator, and mixing the modulated signal with a second signal (from a second signal generator) 90-degrees out of phase with the first signal.

The signal may be sampled (i.e., digitized) at any time and location prior to filtering by filter340to form a discretely-sampled signal. For example the signal may be sampled at the carrier frequency or at an intermediate frequency prior to demodulation or at the baseband after demodulation by demodulator330. It will be appreciated that, if the signal is digitized before demodulation, demodulation can be achieved using a discrete Hilbert transform. Although system300is illustrated with two antennas322and324at two different locations, it is to be understood that, in some embodiments of systems (e.g., radar system embodiments), the two locations may be at a same location or substantially a same location. In some instances, a single antenna may be multiplexed to send and receive the modulated signal.

The invention can also apply to signal systems providing modulation and demodulation but not using antennas to transmit signals (e.g., systems to communicate data over cable or fiberoptic lines) and including a modem. Demodulation may be achieved in any manner that generates a complex signal. For example, in an optical system, demodulation may be achieved using one or more interferometers.

In typical applications, the phase of the modulated signal is unknown as demodulation occurs. In some systems, the phase can contain useful information (e.g., quadrature amplitude modulation (QAM) communications schemes).

According to aspects of the invention, filter340has a transfer function as set forth in Equation 3.

H(Z-1)=1+a1⁢z-1+a2⁢z-2+…+aN⁢z-N1+ρ⁢a1⁢z-1+ρ2⁢a2⁢z-2+…+ρN⁢aN⁢z-NEquation⁢3

Like the transfer function of Equation 2, a filter having a transfer function as shown in Equation 3, is capable of eliminating N frequencies; however, because the number of zeros is also equal to N, it is not necessary to eliminate, both, a component and a complex conjugate of that component. Accordingly, filter340can attenuate complex noise signals and avoid distortion as would arise if both a signal component and the complex conjugate of the component were attenuated. According to Equation 3, the N coefficients a1. . . aNdefine the locations of the zeros and the coefficients a1. . . aNmultiplied by a factor ρ (where ρ<1) define the location of the poles.

FIGS.4A and4Bshow two possible implementations of IIR filter400and450described by Equation 3. Filters400and450filter a discrete-time input signal x[n] in which delays410a-410fprovide selected amounts of delay to implement feedback and feedforward, and amplifiers420a-420hprovide attenuation factors a1and a2and −ρ2a2. Adders430a-430gcombine the amplified signals to form an output signal y[n]. It is understood that the numbers of delays and amplifiers are selected to implement the filter of4A and4B, and the numbers can be varied to implement a selected filter. Also, it is understood that the topologies shown inFIGS.4A and4Ballow for different implementations of a filter having a same transfer function.

Filters as described byFIGS.4A and4Bcan be implemented using conventional electronic components. For example, a general purpose microprocessor or a microcontroller may be programmed to embody filter340corresponding to the filters ofFIGS.4A and4Band to produce a filtered output signal, or the filters may be embodied and a filtered output signal produced by a more specialized component such as a field-programmable gate array (FPGA) or an application specific integrated circuit (ASIC) or a digital signal processor (DSP) using conventional digital filtering techniques. Realization and application of a filter typically includes peripheral components such as memory to store filter coefficients or signal data or intermediate calculated information. Such peripheral components are not shown to avoid obfuscation.

It is well understood that a digital filter can be made to be an adaptive filter by modifying the coefficients of the digital filter depending on information extracted from the signal input into the filter or any other suitable source of information. In some embodiments, the coefficients are modified based on a signal after demodulation by demodulator330; in such embodiments, a determination of the signal components to be attenuated is made based on the frequency components of the complex signal output after demodulation. Calculation of the coefficients can be made using a conventional technique or using a technique according to aspects of the present invention set forth below.

FIG.5is a partial schematic illustration of a filter subsystem500including a coefficient calculation subsystem510to be used to implement a coefficient calculation aspect of the invention. For example, such a filter subsystem may be used in a system such as the system ofFIG.3. In an embodiment of a signal transmission system including adaptive filtering according to aspects of the present invention, subsystem500replaces filter340in system300(shown inFIG.3). Filter520may be a filter340as described above or any other suitable digital filter capable of adaptive variation.

Filter subsystem500comprises at least one processor configured to: receive the discrete-time signal (comprised of components I and Q, as described above) and calculate the filter coefficients; and filter the discrete-time signal based on the coefficients. In the illustrated embodiment, a coefficient calculation subsystem510receives the discrete-time signal and calculates autocorrelation values512and calculates the filter coefficients of a discrete-time, digital filter520by solving a system of equations514in a manner as set forth below. Filter520is configured to receive the discrete-time signal and filter the signal based on the filter coefficients.

FIG.6is a flowchart600illustrating an example of a method of generating filter coefficients of a discrete-time digital filter.

At step610, a predetermined number of signal samples (uniformly spaced in time) are identified in a discrete-time signal and the signal samples identified are used to calculate autocorrelation values sufficient to calculate the filter coefficients as set forth below. The number of samples L to be used is selected to be greater than the number of autocorrelation values M to be calculated; however, it will be appreciated that, in instances where the filter is to be adaptive to changing noise content of the signal, the number of samples to be used should be selected to be small enough that the most-current signal samples can substantially influence the coefficient calculations.

The number of coefficients is equal to the number of frequencies N to be attenuated. The number of frequencies to be attenuated is a predetermined number chosen according to the anticipated number of noise tones. While selecting a larger predetermined number allows for a larger number of tones to be filtered, a larger number results in increased calculation time and potential distortion of a signal. Autocorrelation calculation are made in a conventional manner using the Equation 4.

Rxx(τ)=∑n=1L-Mx⁡(n)⁢x*(n+τ)⁢τ=0,TagBox[",", "NumberComma", Rule[SyntaxForm, "0"]]1,…,MEquation⁢4

In some instances, for adaptive processes, the number of signal samples used to calculate the coefficients is at least 5 times the number of coefficients N. In the case of the notch filter of Equation 3, the number of coefficients is equal to the number of frequencies to be removed. For example, a notch filter designed to remove2frequencies should use a number of samples of at least L=10.

To be sufficient to allow calculation of the filter coefficients, the number autocorrelation values M is at least equal to the number of coefficients N. For example, the number of autocorrelation values M can be selected to provide a unique solution (i.e., the number of autocorrelation values M equals the number of coefficients N); however an over-constrained system of equations can be implemented where the number of autocorrelation values M is greater than N.

At step620, a system of equations is solved, the system of equations defined by a Toeplitz matrix and a vector to determine the coefficient values. The Toeplitz matrix is defined using the autocorrelation values as shown in Equation 5; and the vector is defined as the autocorrelation values of a white noise signal as shown in Equation 5. For example, the white noise signal may be an ideal, discrete-time, white-noise signal with variance equal to Rxx(τ=0); however, it will be appreciated that other white-noise signals may be used to generate the autocorrelation values which may result in less efficient calculations.

For example, solving the system of equations can be accomplished by performing an inversion of correlation numbers in the Toeplitz matrix or by populating a model of the inverted matrix with appropriately-calculated numbers.

[Rxx(0)Rxx⋆(1)…Rxx⋆(N)Rxx(1)Rxx⁢(0)…Rxx⋆(N-1)Rxx(2)Rxx(1)…Rxx⋆(N-2)⋮⋮⋮Rxx(M)Rxx(M-1)…Rxx⁢(0)][1a1a2⋮aN]=[Rxx(0)00⋮0]Equation⁢5where R*xx(n) is the complex conjugate of Rxx(n)
Alternatively, if M>N, a pseudo-inversion technique may be used to solve for the coefficients.

If an inverted Toeplitz matrix is obtained, it will be appreciated that the coefficients of discrete-time digital filter can be calculated as a product of an autocorrelation of white noise input and the inverse Toeplitz matrix as shown in Equation 6.

[1a1a2⋮aN]=[Rxx(0)Rxx⋆(1)…Rxx⋆(N)Rxx(1)Rxx⁢(0)…Rxx⋆(N-1)Rxx(2)Rxx(1)…Rxx⋆(N-2)⋮⋮⋮Rxx(M)Rxx(M-1)…Rxx⁢(0)]-1[Rxx(0)00⋮0]Equation⁢6where column vector [Rxx(0), 0, 0 . . . 0] is recognized as an autocorrelation of white noise signal.
However, alternative techniques for solving the system of equations may be used, such as, Cramer's rule.

Referring again toFIG.5, the coefficient calculation subsystem510is configured to receive the discrete-time signal and to carry out the tasks as identified inFIG.6. In addition to performing the tasks ofFIG.6, the at least one processor is configured to receive the discrete-time signal and to apply the filter to the discrete-time signal based on the coefficients. The filter is applied to the signal in a conventional manner using a difference equation.

It will be understood that each of the various tasks can be carried out by one or more processors and divided among the one or more processors in an suitable manner. The at least one processor may comprise a general purpose microprocessor or a microcontroller (i.e., using software), or may be implemented in a more specialized component such as a field-programmable gate array (FPGA) or an application specific integrated circuit (ASIC) or a digital signal processor (DSP). Realization and application of a filter typically includes peripheral components such as memory to store filter coefficients or signal data or intermediate calculated information. Since use of these peripheral components would be readily implemented by one of ordinary skill, they are omitted fromFIG.5to avoid obfuscation.

It is generally known that, to achieve complete nulling of a complex frequency (z) (corresponding to an angular location in the z plane), a zero should be located on the on the unit circle (i.e., /z/=1) in the z-plane. It will be understood that coefficient calculation using the transfer equations of Equation 3 and the techniques set forth above may give rise to a filter having zeros located inside the unit circle in the plane thus providing less than complete nulling of the frequency.

Although in some instances complete nulling is not necessary, in some instance it may be desirable to modify the zeros and coefficients of a filter such that the zeros of filter are closer to the unit circle than as specified by the process set forth above.FIG.7is a flow chart illustrating an example of a method700of generating filter coefficients of a discrete-time digital filter according to aspects of the present invention such that filter coefficients can be modified to provide zeros closer to or onto the unit circle. At step710, the location(s) of the filter's zero(s) is/are found (e.g., the roots of the polynomial formed by the filter coefficients are found using Equation 3). For example, finding roots from a polynomial's coefficients can be done using Newton's method or other root-finding algorithm, such as the quadratic formula, if the polynomial is a second order polynomial.

At step720, each complex root is multiplied by the inverse of its magnitude (i.e., the square root of the sum of the squares of each of the real component and imaginary component) to get a new root at the same angle in the z-plane as the original root, but that lies on the unit circle (i.e. have a magnitude equal to one). At step730, new filter coefficients are calculated from the new roots by performing an inverse transform of the resultant transfer function (e.g., using discrete convolution).

It will be appreciated that, due to limitations of digital calculation, performing the steps of method700may not result in a filter having zeros precisely located on the unit circle, or distortion to the angle of the new roots in the z-plane (which impacts the accuracy of the frequency that is notched out). Specifically, while step710and step720can each involve iterative calculations (i.e. root finding and division) to improve accuracy, the iterations may not provide a desired level of accuracy in a reasonable amount of time.

While method700provides a technique for locating zeros of a filter closer to or on the unit circle and thereby decreasing the residual noise in a signal, the increased calculations associated with a such a technique may result in an unacceptable increase in latency in providing a filtered output signal or an unacceptable increase in computational resource usage, which can negatively impact performance or cost. In such instances, it may be beneficial to implement processes that constrain the locations of the filter's zeros as the filter coefficients are calculated using Equation 6 (i.e., such that methodFIG.7is not necessary).

For example, in instances where two tones (N=2) are to be removed, and the two tones are spaced apart in frequency by an interval equal to the Nyquist frequency (i.e. half the sampling frequency of the discrete time input x[n]), coefficients can be calculated using the following technique to obtain coefficients of a filter having zeros on the unit circle. It is to be appreciated that noise tones having such a spacing of frequencies commonly arise in instances when demodulation is performed using a Hilbert transform and the signal prior to demodulation is subject to a DC bias.

In such instances, the locations of the zeros of a filter in z-plane can be constrained to the unit circle by calculating auto-correlation values using Equations 7-9.

Rxx[0]=1Equation⁢7Rxx[1]=0Equation⁢8Rxx[2]=∑n=1L-2x[n]⁢x⋆[n+2]❘"\[LeftBracketingBar]"∑n=1L-2x[n]⁢x⋆[n+2]❘"\[RightBracketingBar]"Equation⁢9

Accordingly, step610of flowchart600discussed above is modified by Equations 7-9. After calculating the autocorrelation values using Equations 7-9, the remainder of the process as described with reference toFIG.6is used to calculate the filter coefficients.

Although various embodiments have been depicted and described in detail herein, it will be apparent to those skilled in the relevant art that various modifications, additions, substitutions, and the like can be made without departing from the spirit of the invention and these are therefore considered to be within the scope of the invention as defined in the claims which follow.