The present application relates generally to methods and apparatuses for adaptive filtering.
Smartphones have become ubiquitous in modern life. Smartphones connect to each other and other devices over a cellular network. Early cellular networks were limited to relatively slow communications. In fact, first generation (“1G”) cellular networks did not account for data transfer. The first second-generation (“2G”) cellular network appeared in 1991 and allowed for simple data services, namely short message services (SMS). 2G offered a theoretical maximum transfer speed of just 40 kbit/s. Today, fifth-generation (“5G”) networks have been deployed with download speeds of up to 1.0 Gbit/s. In-band full duplex (IBFD) communications has the potential to nearly double the spectrum efficiency of existing 5G communications. Full duplex communications means that data can be sent and received at the same time, as opposed to being limited to sending or receiving at one time. Full duplex communications typically require some form of digital cancellation to mitigate interference that is created by transmitting and receiving signals at the same time using the same frequency band. 5G presents some unique challenges to conventional cancellation techniques. First, wireless data transfer must occur in as much as 400 MHz of instantaneous bandwidth. With the potential for root mean square (RMS) delay spreads of 100-300 ns and sample rates in excess of 1.0 gigasamples per second (Gsps), a digital canceler using a finite impulse response (FIR) filter with several hundred coefficients may be needed to suppress self-interference. These difficulties, along with a relatively short coherence time, make the task of implementing a real-time canceler in digital hardware that is capable of tracking a rapidly changing channel a significant challenge and one that conventional implementations have been unable to satisfactorily address. Thus, it would be desirable to have a system for cancelling unwanted signals that can mitigate or overcome some of these challenges.
One or more of the above limitations may be diminished by the structures and methods described herein.
In one embodiment, a method is provided. In another embodiment, an apparatus is provided. An over-the-air signal comprising a signal-of-interest and a self-interfering signal is received and sampled to generate a digital over-the-air signal. A transmitted signal is sampled to generate a digital transmitted signal. The self-interfering signal is correlated to the transmitted signal. A series of steps are repeated to allow a mean-square error to converge to a steady-state value. A plurality of error signals respectively corresponding to R samples of the digital over-the-air signal are generated by, for each of the R samples, subtracting an approximation of the over-the-air signal from the corresponding digital over-the-air signal. The plurality of error signals and the digital transmitted signal are sub-banded, in parallel, using an analysis filter for N sub-bands to generate a plurality of sub-banded digital error signals and a plurality of sub-banded digital transmitted signals. The plurality of sub-banded digital error signals are then downsampled by N to generate a plurality of downsampled sub-banded digital error signals. A plurality of adaptive filter coefficients are then updated based on: (i) the plurality of downsampled sub-banded digital error signals, (ii) the plurality of sub-banded digital transmitted signals, and a step-size coefficient. The approximation of the over-the-air signal is then updated. When the mean square error converges to a steady-state value, an approximation of the signal-of-interest is generated by subtracting a current approximation of the over-the-air signal from the digital over-the-air signal.
The teachings claimed and/or described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
Different ones of the Figures may have at least some reference numerals that are the same in order to identify the same components, although a detailed description of each such component may not be provided below with respect to each Figure.
In accordance with example aspects, described herein are methods and apparatuses for adaptive filtering.
In the case where system 300 is constructed for interactive operation with a user (e.g., a smartphone, computer or table), system 300 may include a display interface 304 (or other output interface) that forwards video, graphics, text, and other data from the communication infrastructure 301 (or from a frame buffer (not shown)) for display on a display 306. For example, the display interface 304 can include a graphics card with a graphics processing unit.
System 300 may also include an input unit 308 that can be used by a user to send information to controller 302 via the communication infrastructure 301. In one example embodiment herein, the input unit 308 can include a physical or virtual keyboard and/or a mouse device or other input device. In one exemplary embodiment, the input unit 308 and display 306 can be combined to form a user interface, e.g., a touchscreen. In such an embodiment, a user touching the display 306 can cause corresponding signals to be sent from the display 306 to the display interface 304, which can forward those signals to controller 302 for processing.
System 300 includes memory 310. Depending on the intended use of system 300, the type and size of memory 310 may vary. For example, if system 300 is a smartphone, computer, or tablet, memory 310 may be random access memory (“RAM”). System 300 may also include secondary memory 312. The secondary memory 312 can include one or more of, for example, hard disk drives, solid state drives, or a removable-storage drive (e.g., a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory drive, and the like). In one embodiment, program instructions for operating system 300 may be stored in main memory 310, second memory 312, or both. Main memory 310 and second memory 312 may also be used to store data or other information generated during execution of those program instructions, or received from an external source.
To facilitate communication with external sources and devices, system 300 may also include one or more communications interfaces 314. The communication interface 314 allows for software, data, program instructions, and other information or signals to be sent or received. Exemplary communication interfaces that may be provided include: a modem, a cellular modem, a network interface (e.g., an Ethernet card or an IEEE 802.11 wireless LAN interface), a communications port (e.g., a Universal Serial Bus (“USB”) port or a FireWire® port), a Personal Computer Memory Card International Association (“PCMCIA”) interface, and the like. As shown in
As shown in
e(n)=d(n)−ŵT(n−1)x(n) Equation 1
In Equation 1, ŵ denotes the vector of adaptive filter coefficients employed by the adaptive filter 516, and T denotes the vector transpose operation. In a preferred embodiment, the error signal e(n) is then subjected to subbanding and downsampling operations. As one of ordinary skill will appreciate, subbanding refers to the process of dividing a signal corresponding to a certain overall bandwidth into a plurality of signals respectively corresponding to different segments of the overall bandwidth. Downsampling refers to discarding a specified number of digital samples in a digital signal so as to reduce its data rate while retaining sufficient information to reconstruct the original analog signal.
where k∈[0, N−1] denotes the subband index, hp(n) is the prototype filter from Creusere, and L denotes the number of coefficients in hp(n). It should be noted that hk(n) only represents the analysis filter bank. The synthesis filter bank is unnecessary for the real-time operation of system 200 and is omitted to simplify and reduce computational complexity.
After passing through the analysis filters 602A . . . 602N−1, each of the sub-banded error signals e0(n) . . . eN−1(n) is then passed through a corresponding downsampler 604A . . . 604N−1 where the sub-banded error signal ek(n) is downsampled by a factor of N. Thus, if N is 4, only every 4th digital sample is kept while the rest are discarded. The downsampled sub-banded error signals e0,D(n) . . . eN−1,D(n) are then provided to a multiplexer 508 where they are concatenated into a vector of error values Se(n). The vector of error values Se(n) is then passed to the adaptive filtering operation 516.
Returning to
In the adaptive filtering operation 516, the digital transmitted signal 108A is passed through a filter comprising filter coefficients ŵ(n). The goal is to transform the digital transmitted signal 108A, x(n), into a digital approximation {circumflex over (d)}(n) of the self-interfering signal 108B. Thus, when the digital approximation {circumflex over (d)}(n) of the self-interfering signal 108B is subtracted from the digital version d(n) of the OA signal, the resulting signal is the SOI 110. As discussed above, however, the error signal is also defined as the difference between the digital version d (n) of the OA signal and the digital approximation {circumflex over (d)}(n) of the self-interfering signal 108B. Thus, the error signal e(n) is the approximation of the SOI 110. As explained below, the process outlined in
The initial values of the vector of adaptive filter coefficients ŵ(n) may be set to zero. The adaptive filter coefficients ŵ(n) are then updated by Equation 2 below:
In Equation 2, N denotes the number of sub-bands,
x
k(n)=[xk(nN)xk(nN−1) . . . xk(nN−M+1)]T
is the system input vector for the kth sub-band, ek,D(n) is the downsampled error signal for the kth subband, M denotes the number of coefficients of the adaptive filter ŵ(n), and μ denotes the step-size. As one of ordinary skill will appreciate, the terms xk(n) and ek,D(n) are realized by the vectors Sx(n) and Se(n) provided by multiplexers 508 and 514, respectively. Thus, the adaptive filter coefficients w(n) are updated based the previous coefficients and the outputs of multiplexers 508 and 514. The digital version, x(n), of the transmitted signal 108A is then passed through the filtering operation 516 which now has the updated adaptive filter coefficients ŵ(n) resulting in a new digital approximation {circumflex over (d)}(n) of the self-interfering signal 108B. The new digital approximation {circumflex over (d)}(n) of the self-interfering signal 108B is then used to generate a new error signal e(n) and the process repeats until the error signal e(n) converges to a minimum. One of the advantages of this approach is that the sub-banding and downsampling operation reduces the computational complexity and improves convergence speed.
Having explained the sub-banding and downsampling operation and how the received signals are processed by system 200 to eliminate a self-interfering signal 108B, attention will now be directed to additional embodiments of system 200. In the embodiment described above, the step-size μ dictates how quickly system 200 will converge to a minimum, or in other words how quickly system 200 will eliminate the self-interfering signal 108B to reveal the SOI 110. In conventional least means square (LMS) filtering systems, the step-size is derived from the gradient of the error signal, and it is expected and desirable for the error signal to converge to zero. However, in the presence of other in-band signals, such as SOI 110, the error signal should not converge to zero but rather to SOI 110. An approach from W.-P. Ang et al. A new class of gradient adaptive step-size LMS algorithms, IEEE Transactions on Signal Processing, vol. 49, no. 4, pp. 805-810, 2001, the contents of which are incorporated by reference herein in their entirety, is adapted for the situation of a self-interfering signal 108B and a SOI 110.
The fixed step-size μ in Equation 2 is replaced, in this embodiment, with
μ(n)=μ(n−1)+ρe(n)xT(n)φ(n)
where ρ denotes a small positive constant. In a preferred embodiment, ρ is greater than 0 but less than or equal to 0.01. An exemplary value is ρ=0.005. and
φ(n)=αφ(n−1)+e(n−1)x(n−1)
where α is a constant smaller than but close to 1. In a preferred embodiment, α is equal to or greater than 0.99 but less than 1. An exemplary value is α=0.999. To ensure stability, i.e. that system 200 converges to the SOI 110, the variable step-size μ(n) is bounded. Specifically, a step-size:
where μmin and μmax denote the lower and upper bounds of μ(n), respectively. The benefit of this variable step-size approach is that it is able to dynamically increase or decrease the step-size as necessary in non-stationary channel conditions. In other words, if the error grows as a result of a time-varying channel, the step-size can increase accordingly to improve convergence and then subsequently decrease to maintain low misadjustment error. As one of ordinary skill will appreciate, misadjustment error occurs if the step-size is too large causing the filter to overshoot the optimal value and thus not converge properly to the minimal value. The error will oscillate around the optimal value without obtaining it. The difference between the value that the filter oscillates at and the true optimal value is known as the misadjustment error.
In yet another embodiment, the sub-banding and variable step-size features described above may be further combined with parallel processing of the OA signal and the transmitted signal 108A, as explained below. In the exemplary embodiments described above, only one sample of the OA signal and the transmitted signal 108A is processed at a time. A SAF that is able to process just one sample per each clock may be insufficient for 5G communications. For example, a typical maximum clock rate for an FPGA is approximately 775 MHz. Assuming that the FPGA can process one sample per clock cycle, then the maximum number of samples the FPGA can process is 775 Msps—far less than what 5G networks are capable of. When one considers that 5G communications may allow for data rates in excess of 1 Gsps, it becomes clear that an FPGA implementation of SAF 220 may be insufficient if only one data sample is processed per clock cycle. Accordingly, in another embodiment, each of the sub-band analysis filters 602A . . . 602N−1 and 702A . . . 702N−1 and the adaptive filter 516 are replaced by equivalent parallel finite impulse response (FIR) architectures that can process R samples per clock cycle.
Returning to
h
s,r(n)=[hs(r)hs(r+R)hs(r+2R) . . . ]T
where hs(n) represents the serial FIR filter coefficients to be implemented in parallel. Equivalently, hs(n) is the impulse response for the analysis filters 702n. In
Having described the subbanding, variable step-size, and parallelized processing steps, attention will now be directed to exemplary hardware for implementing SAF 220. In a preferred embodiment, SAF 220 is a real-time implementation which invites the use of an FPGA. As discussed above, the theoretical maximum FPGA clock rate, at the time of this application, is approximately 775 MHz, far too slow to achieve a data rate of 2.0 Gsps. But even if the data rate requirement was closer to 775 Msps, it is difficult to achieve the theoretical maximum FPGA clock rate when the FPGA is highly utilized. The design of system 200, however, includes several features to overcome these limitations. First, by instantiating the adaptive filter 516 only once (as shown in
There are many feasible combinations of R and clock rate that could achieve a desired data rate. For example, if the desired data rate is 2.0 Gsps, selecting R=5 and a clock of 400 MHz or R=8 and a clock rate of 250 MHz would both achieve a data rate of 2.0 Gsps. But, as discussed above, there are tradeoffs that must be considered. Meeting FPGA timing constraints becomes more challenging as the clock rate increases. Reducing the clock rate may alleviate this, but that comes at the expense of increase the FPGA area. As FPGA area consumption increase, meeting timing constraints also becomes more challenging. Therefore, in a preferred embodiment, a clock rate of 500 MHz and R=4 samples per clock cycle is used to achieve the data rate of 2.0 Gsps by achieving an acceptable balance of clock rate and FPGA area. Additionally, in the preferred embodiment, the number of subbands N may be chosen such that N=R. In that case, the downsampling operations simply discard R−1 of the R samples being processed simultaneously, eliminating the need for multiple clock domains and clock domain crossing logic. This will be explained in further detail below.
Consider the situation where N=R=4. Four samples of the error signal e(1), e(2), e(3), and e(4) are provided to each of four filter banks H0(z), H1(z), H2(z), and H3(z), as shown in
As noted above, in a preferred embodiment, the output of SAF 220 is a real-time output which invites the use of a FPGA. An exemplary FPGA is a Xilinx Virtex UltraScale+XCVU13P or XCZU28DR, either of which may be programmed to perform the operations described above using MathWorks HDL Coder which allows a user to program the FPGA in a high-level language and automatically generate the equivalent low-level hardware description language (HDL) code. The resulting HDL code is then used by Xilinx tools to create an FPGA bitstream file. As a result, the entire design may be implemented in real-time hardware without manually writing any HDL code.
To show the performance of system 200 in various embodiments compared to conventional algorithms, a test was employed whereby two S-band radios operating with 1.0 GHz of instantaneous bandwidth were placed at opposite ends of a 10 m×5 m anechoic chamber. A reflector mounted on a pedestal rotating at 30°/sec. was placed 3 meters away from one of the radios. The multipath delay spread due to this reflector, as well as the chamber's walls, was roughly 0.12 microseconds and thus required a 256-coefficient cancellation filter at 2.0 Gsps. System 200 was configured with the following parameters: N=4, L=32, M=256, R=4, ρ=0.005, α=0.999, μmin=0.001, and μmax=0.1. A user may use these values or change them depending on the FPGA hardware they are implementing system 200 on, the characteristics of the environment(s) in which signals are transmitted and received, and the desired self-interference cancellation performance. For example, when system 200 is implemented on a smartphone, tablet, computer, or other user interactive environment, values may be chosen on the assumption that the implementing hardware will likely be used in a dense urban environment thus ensuring adequate performance in the most challenging environment.
Finally,
Described above is a system 200 that employs one or more of the following features: sub-banding, variable step-size, and parallelization to mitigate self-interference in a communication device that employs full-duplex communications. By employing sub-banding and parallelization, it is now possible to processes data at a rate of, in a preferred embodiment, 2.0 Gsps, and as shown in
While various example embodiments of the invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It is apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made therein. Thus, the disclosure should not be limited by any of the above described example embodiments, but should be defined only in accordance with the following claims and their equivalents.
In addition, it should be understood that the figures are presented for example purposes only. The architecture of the example embodiments presented herein is sufficiently flexible and configurable, such that it may be utilized and navigated in ways other than that shown in the accompanying figures.
Further, the purpose of the Abstract is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The Abstract is not intended to be limiting as to the scope of the example embodiments presented herein in any way. It is also to be understood that the procedures recited in the claims need not be performed in the order presented.
This application claims the benefit of U.S. Provisional Patent Application No. 63/156,552, filed Mar. 4, 2021, the contents of which are incorporated by reference herein in their entirety.
Number | Date | Country | |
---|---|---|---|
63156552 | Mar 2021 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US22/18922 | Mar 2022 | US |
Child | 18242128 | US |