METHODS AND APPARATUSES FOR ADAPTIVE SUB-BAND FILTERING
20230421190 ยท 2023-12-28
Inventors
Cpc classification
International classification
Abstract
Methods and systems for identifying a signal-of-interest in an over-the-air signal that includes a self-interfering signal. The over-the-air signal and the transmitted signal are sampled and passed to an adaptive filter. The adaptive filter processes a plurality of samples in parallel. The samples are subbanded by passing through an analysis filter, downsampled, and then used to update the adaptive filter coefficients. The updated filter coefficients may be updated based on a variable step-size that decreases as the system converges or a fixed step-size.
Claims
1. A method, comprising: receiving an over-the-air signal comprising a signal-of-interest and a self-interfering signal; digitally sampling the over-the-air signal to generate a digital over-the-air signal; digitally sampling a transmitted signal to generate a digital transmitted signal, where the self-interfering signal is correlated to the transmitted signal; repeating, until a mean-square error converges to a predetermined minimum, (i) generating a plurality of error signals respectively corresponding to R samples of the digital over-the-air signal by, for each of the R samples, subtracting an approximation of the over-the-air signal from the corresponding digital over-the-air signal; (i) sub-banding, in parallel, the plurality of error signals and the digital transmitted signal 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, (ii) downsampling the plurality of sub-banded digital error signals by N to generate a plurality of downsampled sub-banded digital error signals, (iii) updating a plurality of adaptive filter coefficients 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, and (iv) updating the approximation of the over-the-air signal; and generating, when the mean square error converges to a predetermined minimum, an approximation of the signal-of-interest by subtracting a current approximation of the over-the-air signal from the digital over-the-air signal.
2. The method of claim 1, wherein the step-size coefficient is variable.
3. The method of claim 1, wherein the step-size coefficient is fixed.
4. The method of claim 1, wherein R=N.
5. An apparatus, comprising: a field-programmable-gate-array constructed to: receive an over-the-air signal comprising a signal-of-interest and a self-interfering signal; digitally sample the over-the-air signal to generate a digital over-the-air signal; digitally sample a transmitted signal to generate a digital transmitted signal, where the self-interfering signal is correlated to the transmitted signal; repeating, until a mean-square error converges to a predetermined minimum, (i) generate a plurality of error signals respectively corresponding to R samples of the digital over-the-air signal by, for each of the R samples, subtracting an approximation of the over-the-air signal from the corresponding digital over-the-air signal; (i) sub-band, in parallel, the plurality of error signals and the digital transmitted signal 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, (ii) downsample the plurality of sub-banded digital error signals by N to generate a plurality of downsampled sub-banded digital error signals, (iii) update a plurality of adaptive filter coefficients 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, and (iv) update the approximation of the over-the-air signal; and generate, when the mean square error converges to a predetermined minimum, an approximation of the signal-of-interest by subtracting a current approximation of the over-the-air signal from the digital over-the-air signal.
6. The apparatus of claim 5, wherein the step-size coefficient is variable.
7. The apparatus of claim 5, wherein the step-size coefficient is fixed.
8. The apparatus of claim 5, wherein R=N.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] 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:
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019] 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.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0020] In accordance with example aspects, described herein are methods and apparatuses for adaptive filtering.
[0021]
[0022]
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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
[0027] As shown in
[0028]
e(n)=d(n).sup.T(n1)x(n)Equation 1
[0029] 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.
[0030]
where k[0, N1] denotes the subband index, h.sub.p(n) is the prototype filter from Creusere, and L denotes the number of coefficients in h.sub.p(n). It should be noted that h.sub.k(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.
[0031] After passing through the analysis filters 602.sub.A . . . 602.sub.N1, each of the sub-banded error signals e.sub.0(n) . . . e.sub.N1(n) is then passed through a corresponding downsampler 604.sub.A . . . 604.sub.N1 where the sub-banded error signal e.sub.k(n) is downsampled by a factor of N. Thus, if N is 4, only every 4.sup.th digital sample is kept while the rest are discarded. The downsampled sub-banded error signals e.sub.0,D(n) . . . e.sub.N1,D(n) are then provided to a multiplexer 508 where they are concatenated into a vector of error values S.sub.e(n). The vector of error values S.sub.e(n) is then passed to the adaptive filtering operation 516.
[0032] Returning to
[0033] 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
[0034] 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:
[0035] In Equation 2, N denotes the number of sub-bands,
x.sub.k(n)=[x.sub.k(nN)x.sub.k(nN1) . . . x.sub.k(nNM+1)].sup.T
is the system input vector for the kth sub-band, e.sub.k,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 x.sub.k(n) and e.sub.k,D(n) are realized by the vectors S.sub.x(n) and S.sub.e(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.
[0036] 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.
[0037] The fixed step-size in Equation 2 is replaced, in this embodiment, with
(n)=(n1)+e(n)x.sup.T(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)=(n1)+e(n1)x(n1)
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 .sub.min and .sub.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.
[0038] 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 Mspsfar 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 602.sub.A . . . 602.sub.N1 and 702.sub.A . . . 702.sub.N1 and the adaptive filter 516 are replaced by equivalent parallel finite impulse response (FIR) architectures that can process R samples per clock cycle.
[0039]
[0040] Returning to
h.sub.s,r(n)=[h.sub.s(r)h.sub.s(r+R)h.sub.s(r+2R) . . . ].sup.T
where h.sub.s(n) represents the serial FIR filter coefficients to be implemented in parallel. Equivalently, h.sub.s(n) is the impulse response for the analysis filters 702.sub.n. In
[0041]
[0042] 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
[0043] 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 R1 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.
[0044] 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 H.sub.0(z), H.sub.1(z), H.sub.2(z), and H.sub.3(z), as shown in
[0045] 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.
[0046] 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 m5 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, .sub.min=0.001, and .sub.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.
[0047]
[0048] Finally,
[0049] 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
[0050] 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.
[0051] 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.
[0052] 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.