Aspects of embodiments of the present disclosure are directed to self-interference cancelation systems and methods.
In simultaneous receiving and transmitting systems, signals can be received and transmitted at the same time with each other, for example, on different bands from each other if a receiving band is different from a transmitting band. In such systems, when there is a transmission on an uplink and a reception on a downlink, the uplink transmission may interfere with a received signal on the downlink reception.
The above information disclosed in this Background section is for enhancement of understanding of the background of the present disclosure, and therefore, it may contain information that does not constitute prior art.
Embodiments of the present disclosure are directed to systems and methods for adaptive selection of estimation taps for self-interference cancelation.
According to one or more embodiments of the present disclosure a system includes: a first transmitter configured to transmit a first signal; a second transmitter configured to transmit a second signal; a receiver configured to receive a downlink signal, the downlink signal comprising a desired signal and an interference signal corresponding to the first signal and the second signal; a processor; and memory including instructions that, when executed by the processor, cause the processor to: select an interference function based on center frequencies of the first transmitter, the second transmitter, and the receiver; calculate correlation values based on a first delay between the receiver and a reference transmitter from among the first and second transmitters, and a second delay between the first and second transmitters; select one or more filter taps based on the calculated correlation values; estimate the interference signal based on the selected one or more filter taps and the interference function; determine the desired signal from the downlink signal according to the estimated interference signal; and transmit the desired signal.
In an embodiment, the calculated correlation values may be stored in a 2D structure, and the stored correlation values may be used by the processor to select the one or more filter taps.
In an embodiment, the 2D structure may include: a plurality of first time delay offset candidates for the first delay between the receiver and the reference transmitter along a first axis; a plurality of second time delay offset candidates for the second delay between the first and second transmitters along a second axis; and a correlation value from among the calculated correlation values for each pair of the first and second time delay offset candidates.
In an embodiment, to generate the 2D structure, the instructions may further cause the processor to: calculate the correlation values for a plurality of first time delay offset candidates stored in a first buffer based on one second time delay offset candidate stored in a second buffer for a first time instance; determine a current peak correlation value from among the calculated correlation values for the first time instance; compare a difference between the current peak correlation value for the first time instance and a previous correlation value stored in the 2D structure for a previous time instance with a threshold; and store the current peak correlation value in the 2D structure based on the compare.
In an embodiment, in response to a determination that the difference is greater than the threshold, the 2D structure may be reset, and at least the current peak correlation value may be stored in the 2D structure; and in response to a determination that the difference is less than the threshold, the current peak correlation value may be added to the 2D structure including at least the previous correlation value.
In an embodiment, to select the one or more filter taps, the instructions may further cause the processor to: identify n number of strongest correlation values from the 2D structure, where n may be a natural number; determine tap indices of the n number of strongest correlation values; select terms for the interference function based on the tap indices; estimate channel coefficients based on the tap indices and the selected terms; and estimate the interference signal based on the estimated channel coefficients.
In an embodiment, to select the one or more filter taps, the instructions may further cause the processor to: identify a peak correlation value from the 2D structure; select a first pattern of a group of taps including a peak tap corresponding to the peak correlation value at the center of the first pattern of the group of taps, select a second pattern of a group of taps including the peak tap corresponding to the peak correlation value at the center of the second pattern of the group of taps; calculate a sum of the correlation values of the group of taps for each of the first pattern and the second pattern; and select the one or more filter taps based on the sum of the correlation values.
According to one or more embodiments of the present disclosure, a method includes: selecting an interference function based on center frequencies of a first transmitter configured to transmit a first signal, a second transmitter configured to transmit a second signal, and a receiver configured to receive a downlink signal, the downlink signal including a desired signal and an interference signal corresponding to the first signal and the second signal; calculating correlation values based on a first delay between the receiver and a reference transmitter from among the first and second transmitters, and a second delay between the first and second transmitters; selecting one or more filter taps based on the calculated correlation values; estimating the interference signal based on the selected one or more filter taps and the interference function; determining the desired signal from the downlink signal according to the estimated interference signal; and transmitting the desired signal.
In an embodiment, the method may further include storing the calculated correlation values in a 2D structure, and the stored correlation values may be used for the selecting of the one or more filter taps.
In an embodiment, the 2D structure may include: a plurality of first time delay offset candidates for the first delay between the receiver and the reference transmitter along a first axis; a plurality of second time delay offset candidates for the second delay between the first and second transmitters along a second axis; and a correlation value from among the calculated correlation values for each pair of the first and second time delay offset candidates.
In an embodiment, to generate the 2D structure, the method may further include: calculating the correlation values for a plurality of first time delay offset candidates stored in a first buffer based on one second time delay offset candidate stored in a second buffer for a first time instance; determining a current peak correlation value from among the calculated correlation values for the first time instance; comparing a difference between the current peak correlation value for the first time instance and a previous correlation value stored in the 2D structure for a previous time instance with a threshold; and storing the current peak correlation value in the 2D structure based on the comparing.
In an embodiment, in response to a determination that the difference is greater than the threshold, the 2D structure may be reset, and at least the current peak correlation value may be stored in the 2D structure; and in response to a determination that the difference is less than the threshold, the current peak correlation value may be added to the 2D structure including at least the previous correlation value.
In an embodiment, the selecting the one or more filter taps may include: identifying n number of strongest correlation values from the 2D structure, where n may be a natural number; determining tap indices of the n number of strongest correlation values; selecting terms for the interference function based on the tap indices; estimating channel coefficients based on the tap indices and the selected terms; and estimating the interference signal based on the estimated channel coefficients.
In an embodiment, the selecting of the one or more filter taps may include: identifying a peak correlation value from the 2D structure; selecting a first pattern of a group of taps including a peak tap corresponding to the peak correlation value at the center of the first pattern of the group of taps, selecting a second pattern of a group of taps including the peak tap corresponding to the peak correlation value at the center of the second pattern of the group of taps; calculating a sum of the correlation values of the group of taps for each of the first pattern and the second pattern; and selecting the one or more filter taps based on the sum of the correlation values.
According to one or more embodiments of the present disclosure, non-transitory computer readable medium is provided to store instructions that, when executed, cause a communication device to: select an interference function based on center frequencies of a first transmitter configured to transmit a first signal, a second transmitter configured to transmit a second signal, and a receiver configured to receive a downlink signal, the downlink signal including a desired signal and an interference signal corresponding to the first signal and the second signal; calculate correlation values based on a first delay between the receiver and a reference transmitter from among the first and second transmitters, and a second delay between the first and second transmitters; store the calculated correlation values in a 2D structure; select one or more filter taps based on the correlation values stored in the 2D structure; estimate the interference signal based on the selected one or more filter taps and the interference function; determine the desired signal from the downlink signal according to the estimated interference signal; and transmit the desired signal.
In an embodiment, the 2D structure may include: a plurality of first time delay offset candidates for the first delay between the receiver and the reference transmitter along a first axis; a plurality of second time delay offset candidates for the second delay between the first and second transmitters along a second axis; and a correlation value from among the calculated correlation values for each pair of the first and second time delay offset candidates.
In an embodiment, to generate the 2D structure, the instructions may further cause the communication device to: calculate the correlation values for a plurality of first time delay offset candidates stored in a first buffer based on one second time delay offset candidate stored in a second buffer for a first time instance; determine a current peak correlation value from among the calculated correlation values for the first time instance; compare a difference between the current peak correlation value for the first time instance and a previous correlation value stored in the 2D structure for a previous time instance with a threshold; and store the current peak correlation value in the 2D structure based on the compare.
In an embodiment, to generate the 2D structure, the instructions may further cause the communication device to: in response to a determination that the difference is greater than the threshold, rest the 2D structure, and store at least the current peak correlation value in the 2D structure; and in response to a determination that the difference is less than the threshold, add the current peak correlation value to the 2D structure including at least the previous correlation value.
In an embodiment, to select the one or more filter taps, the instructions may further cause the communication device to: identify n number of strongest correlation values from the 2D structure, where n may be a natural number; determine tap indices of the n number of strongest correlation values; select terms for the interference function based on the tap indices; estimate channel coefficients based on the tap indices and the selected terms; and estimate the interference signal based on the estimated channel coefficients.
In an embodiment, to select the one or more filter taps, the instructions may further cause the communication device to: identify a peak correlation value from the 2D structure; select a first pattern of a group of taps including a peak tap corresponding to the peak correlation value at the center of the first pattern of the group of taps, select a second pattern of a group of taps including the peak tap corresponding to the peak correlation value at the center of the second pattern of the group of taps; calculate a sum of the correlation values of the group of taps for each of the first pattern and the second pattern; and select the one or more filter taps based on the sum of the correlation values.
The above and other aspects and features of the present disclosure will be more clearly understood from the following detailed description of the illustrative, non-limiting embodiments with reference to the accompanying drawings, in which:
Hereinafter, embodiments will be described in more detail with reference to the accompanying drawings, in which like reference numbers refer to like elements throughout. The present disclosure, however, may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present disclosure to those skilled in the art. Accordingly, processes, elements, and techniques that are not necessary to those having ordinary skill in the art for a complete understanding of the aspects and features of the present disclosure may not be described. Unless otherwise noted, like reference numerals denote like elements throughout the attached drawings and the written description, and thus, redundant description thereof may not be repeated.
When a certain embodiment may be implemented differently, a specific process order may be different from the described order. For example, two consecutively described processes may be performed at the same or substantially at the same time, or may be performed in an order opposite to the described order.
It will be understood that, although the terms “first,” “second,” “third,” etc., may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are used to distinguish one element, component, region, layer or section from another element, component, region, layer or section. Thus, a first element, component, region, layer or section described below could be termed a second element, component, region, layer or section, without departing from the spirit and scope of the present disclosure.
It will be understood that when an element or layer is referred to as being “on,” “connected to,” or “coupled to” another element or layer, it can be directly on, connected to, or coupled to the other element or layer, or one or more intervening elements or layers may be present. Similarly, when a layer, an area, or an element is referred to as being “electrically connected” to another layer, area, or element, it may be directly electrically connected to the other layer, area, or element, and/or may be indirectly electrically connected with one or more intervening layers, areas, or elements therebetween. In addition, it will also be understood that when an element or layer is referred to as being “between” two elements or layers, it can be the only element or layer between the two elements or layers, or one or more intervening elements or layers may also be present.
The terminology used herein is for the purpose of describing particular embodiments and is not intended to be limiting of the present disclosure. As used herein, the singular forms “a” and “an” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” “including,” “has,” “have,” and “having,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. For example, the expression “A and/or B” denotes A, B, or A and B. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list. For example, the expression “at least one of a, b, or c,” “at least one of a, b, and c,” and “at least one selected from the group consisting of a, b, and c” indicates only a, only b, only c, both a and b, both a and c, both b and c, all of a, b, and c, or variations thereof.
As used herein, the term “substantially,” “about,” and similar terms are used as terms of approximation and not as terms of degree, and are intended to account for the inherent variations in measured or calculated values that would be recognized by those of ordinary skill in the art. Further, the use of “may” when describing embodiments of the present disclosure refers to “one or more embodiments of the present disclosure.” As used herein, the terms “use,” “using,” and “used” may be considered synonymous with the terms “utilize,” “utilizing,” and “utilized,” respectively.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification, and should not be interpreted in an idealized or overly formal sense, unless expressly so defined herein.
In simultaneous receiving and transmitting systems, an uplink transmission may cause an interference or distortion in a downlink of a received signal. However, the impact of the interference or distortion caused on the received signal by the uplink transmission may not be accurately determined based simply on knowledge of what data is being sent in the uplink transmission or how an output signal (e.g., a transmitted signal) in the uplink transmission is constructed. For example, in the context of a handset, RF components (e.g., power amplifiers, duplexers, mixers, and the like) of the handset may interfere with a transmission path of the uplink transmission to introduce non-linearities that generate harmonics and noise. Further, temperature variations, vibrations, and the like may also have various effects on the uplink transmission.
Self-interference cancelation methods based on recursive least square (RLS) may enable the receiver to remove (e.g., filter) the interference or distortion in the received signal, so that a desired signal may be extracted from the received signal. For example, an adaptive filter (e.g., a finite impulse response (FIR) filter) may be used to remove (e.g., filter) the distortion from the received signal, such that the desired signal can be extracted. In this case, non-linear self-interference channel coefficients (e.g., taps or filter taps) of the common filter may be estimated recursively to determine suitable weights to be applied to an output signal of the uplink transmission (e.g., to minimize or reduce a weighted linear least squares cost function) according to an interference or distortion model, so that the filter may be configured to suitably filter or remove the interference or distortion from the received signal. The number of taps to be estimated may be an indication of the amount of memory required to implement the filters, the number of calculations required, and the amount of desired filtering. Generally, the more the number of taps to be estimated may mean more stopband attenuation, less ripples, narrower filters, and the like.
However, when there are two or more transmitters, each transmitting an output signal in the uplink transmission, one common filter alone may be unable to accurately estimate the distortion caused by the output signal of each of the two or more transmitters. Accordingly, in some embodiments, a filter (e.g., a FIR filter) may be used for each of the two or more output signals of the two or more transmitters, so that the interference or distortion caused by the transmitted output signals of the two or more transmitters in the uplink transmission may be suitably estimated and removed (e.g., filtered) from the received signal. In this case, the number of taps to be estimated may also be increased according to the increased number of filters.
However, not all of the taps may significantly contribute to the self-interference for each given time instance. Further, RLS algorithms and methods may typically require highly computational inversion calculations of matrixes, or alternatively, an iterative method with a high number of iterations and calculations. Accordingly, reducing the number of estimated taps may be desired to reduce the amount of computational resources used to estimate the interference or distortion from the received signal.
Embodiments of the present disclosure may provide systems and methods for selecting a reduced number of estimated taps (e.g., a subset of taps), without adversely affecting the performance of removing (e.g., filtering) the interference or distortion from a received signal. As such, according to embodiments, from among all of the estimated taps for all of the filters, a subset of estimated taps may be selected to estimate the interference or distortion on the received signal. Accordingly, computational resources may be reduced, while improving self-interference cancelation characteristics.
Referring to
As a representative example, the first transmitter 120 may transmit the first output signal X1 over a first transmission path (e.g., a first antenna), and the second transmitter 125 may transmit the second output signal X2 over a second transmission path (e.g., a second antenna) different from the first transmission path. Accordingly, the first output signal X1 and the second output signal X2 may be output in the uplink signal Y at the same or substantially the same time as each other or at different times from each other via the different transmission paths, and thus, may experience interference or distortion from the RF components of the system 100 differently from each other. The receiver 115 may receive the received signal Z over a reception path at any time, even during the transmission of the first output signal X1 and/or the second output signal X2 in the uplink signal Y. Accordingly, the transmission of the uplink signal Y including the first output signal X1 and/or the second output signal X2 may interfere with or distort the received signal Z.
For example, in some embodiments, the received signal Z may be defined as z[t] based on Equation (1) below.
In Equation (1), for a time sample t, z[t] denotes the received signal Z, y[t] denotes the transmitted interfering signal (e.g., self-interfering signal) by the uplink signal Y, which may be an output of nonlinearity by the transmitters 120 and 125 for the time sample t, d[t] denotes the desired received baseband signal, and w[t] represents additive white Gaussian noise.
According to embodiments, as described in more detail below, the receiver 115 and/or the processor 105 may implement a transmitter-self-interference cancelation (TSIC) method to estimate the transmitted interfering signal y[t], and remove it (e.g., filter it) from the received signal z[t] before demodulation to extract the desired received baseband signal d[t]. Once the desired received baseband signal d[t] is extracted, it may be demodulated and decoded.
The processor 105 may be a general-purpose processor or a specific-purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. The processor 105 may be integrated within a single device or distributed across multiple separate systems, servers, or devices (e.g., computers). For example, the processor 105 may be an internal processor with respect to the system 100, or one or more of the processors may be an external processor, for example, implemented as part of one or more servers or as a cloud-based computing system. The processor 105 may be configured to execute computer code or instructions stored in the memory 110, and/or received from other computer readable media (e.g., CDROM, network storage, a remote server, and/or the like).
The memory 110 may include one or more devices (e.g., memory units, memory devices, storage devices, and/or the like) for storing data and/or computer code for performing and/or facilitating the various processes described in the present disclosure. The memory 110 may include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memory 110 may include database components, object code components, script components, and/or any other kinds of information structures for supporting the various activities and information structures described in the present disclosure. The memory 110 may be communicably connected to the one or more processors via one or more processing circuits, and may include computer code for executing (e.g., by the one or more processors) one or more of the processes described herein.
While the processor 105 and the memory 110 are shown as separate components from the receiver 115, the first transmitter 120, and the second transmitter 125, the present disclosure is not limited thereto, and the processor 105 and/or the memory 110 may be a part of at least the receiver 115. For example, the processor 105 may be implemented as one or more integrated circuits of the receiver 115, or as one or more integrated circuits of a transceiver that includes at least the receiver 115. As such, the various processes described hereinafter may be performed by the processor 105 and memory 110, by one or more integrated circuits of the receiver 115, or by one or more integrated circuits of a transceiver including at least the receiver 115.
Referring to
As shown in Equation (2) with reference to
Referring to
In other words, the input vector x(i) may be provided from a selected kernel 204 as an interference function x(t) of the samples of the first and second output signals X1 and X2 of the first and second transmitters 120 and 125 as shown in the right side of the lookup table 300. The selected kernel 204 may be determined based on the center frequency frx of the received signal Z (e.g., the receiver 115), the center frequency ftx,1 of the first output signal X1 (e.g., the first transmitter 120), and the center frequency ftx,2 of the second output signal X2 (e.g., the second transmitter 125) as shown in the left side of the lookup table 300.
For example, as shown in the left side of the lookup table 300 in
Once the interference function x(t) of the input vector x(i) is determined, the corresponding weight vector ĥ(i−1) may be estimated recursively to calculate the transmitted signal y(i) as a product between the transpose of the input vector x(i) and the weight vector ĥ(i−1). After the transmitted signal y(i) is estimated, it may be compared with the received signal z(i) to extract the desired received baseband signal d[t] as shown in Equation (1) above.
A tap may be a function of the number of samples t being considered for the input vector x(i) and the weight vector ĥ(i−1). The size of the weight vector ĥ(i−1) is a function of the input vector x(i), and the size of the input vector x(i) may be M×N (e.g., a function of the lengths of FIR filters w and v shown in
Further, as described in more detail with reference to
Referring to
However, when the two transmitted output signals TX1 and TX2 are decoupled signals so that they experience their own separate frequency response from the RF components (e.g., power amplifier, duplexer, and the like) of the system 100, the single common filter wl may be unable to accurately track the impulse response of each of the two output signals TX1 and TX2, and thus, may not be able to accurately estimate and remove (e.g., filter) the interference or distortion therefrom from the received signal. For example, if the transmitters 120 and 125 transmit the output signals X1 and X2 through their own separate antennas of the system 100, such that each of the output signals X1 and X2 travel through its own path to experience distortion within the system 100 differently, then the single common filter wl may not be able to sufficiently remove (e.g., filter) such distortion from the received signal.
Referring to
In this case, assuming the kernel is selected for the direct product interference function x(t) for IMD2 (e.g., x(t)=x1(t)x2(t)) shown in
In Equation (3), wl, (l=−L, . . . , L) are the nonlinear self-interference channel coefficients (e.g., taps) for the common filter wl, wl,i, (i=0, . . . , M) are the nonlinear self-interference channel coefficients (e.g., taps) for the first filter w1 of the first transmitter 120, and w2,j, (j=0, . . . , N) are the nonlinear self-interference channel coefficients (e.g., taps) for the second filter w2 of the second transmitter 125. x1[t], x2[t] are the baseband uplink signals from the transmitters 120 and 125 at the time sample t. y[t] is the resulting baseband non-linear interference (e.g., the self-interfering signal or the transmitted interfering signal). cl+i,l+j represents the total channel coefficients to be estimated through combination of the channel coefficients for the three filters above, with l, i, and j being tap indices for the channel coefficients (e.g., the taps) of the respective filters wl, w1, and w2.
Returning to the representative example above with reference to
In some embodiments, estimating taps for all three filters may cause the number of computational resources needed for such estimations to be undesirably increased. Accordingly, in some embodiments, the number of estimated taps may be further reduced by reducing the number of filters, while still suitably estimating the transmitted interfering signal y[t] from the received signal Z.
For example, referring to
In Equation (4),
are the nonlinear self-interference channel coefficients (e.g., taps) for the first filter w of the first transmitter 120 and v,j,
are the nonlinear self-interference channel coefficients (e.g., taps) for the second filter v of the second transmitter 125. x1[t], x2[t] are the baseband uplink signals from the transmitters 120 and 125 at the time sample t. y[t] is the resulting baseband non-linear interference (e.g., the self-interfering signal or the transmitted interfering signal). ci,j represents the total channel coefficients to be estimated through combination of the channel coefficients for the two filters above, with i and j being tap indices for the channel coefficients (e.g., the taps) of the respective filters w and v.
In this case, as shown in Equation (4), the number of taps to be estimated for the common filter wl based on Equation (3) above may be equal to 0, such that the total number of taps to be estimated for the first and second filters w and v based on Equation (4) may be reduced to M×N, or in other words, the number of channel coefficients ci,j to estimate may be reduced to an order of M×N for IMD2, for example. Thus, as a representative example, assuming that M equals 5 and N equals 5, the number of estimated taps may be reduced to 25 taps (when considering cross-terms) for IMD2 interference, and 75 taps to estimate for IMD3 interference. For example, still assuming the direct product function x(t) for the IMD2 interference, the 25 taps to be estimated (when considering the cross-terms) may be defined by x1[−2]x2[−2]; x1[−2]x2[−1]; x1[−2]x2[0]; x1[−2]x2[1]; x1[−2]x2[2]; x1[−1]x2[−2]; . . . ; x1[−1]x2[2]; x1[0]x2[−2]; . . . ; x1[0]x2[2]; x1[1]x2[−2]; . . . ; x1[2]x2[2].
However, not all the taps may significantly contribute to the self-interference for each given time instance t, and thus, according to one or more embodiments, the number of estimated taps may be further reduced by selecting a subset of taps from among the total number of estimated taps (e.g., M×N for IMD2) for the filters w and v, or in other words, to select a subset of the length of the input vector x(i) for the estimation of the corresponding weight vector ĥ(i−1). The subset of estimated taps may be used to estimate the transmitted interfering signal y[t] to extract the desired signal from the received signal.
According to one or more embodiments of the present disclosure, the subset of taps may be selected according to correlation values (e.g., cross-correlation values) calculated based on delays between the transmitters 120 and 125 and the receiver 125. For example, there may be a delay (e.g., a first time delay or an absolute delay) between the reception of the received signal Z and the transmission of an output signal (e.g., a transmitted signal) that distorted the received signal Z. Further, because there are two transmitters 120 and 125, there may be a delay (e.g., a second time delay or a relative delay) between the first output signal X1 and the second output signal X2 that distorted the received signal Z. Thus, to determine how many samples (e.g., time samples t) may have passed between a time instance of a transmission of the output signals X1 and X2 and a time instance of a the reception of the received signal Z, a synchronization may be performed between the received signals and the transmitted signals, for example, by correlating a large vector of transmitted signals from the transmitters 120 and 125 with a large vector of received signals by the receiver 115, such as through a product (e.g., a multiplication) of the samples in the vectors of the transmitted and received signals.
The correlation values may be calculated for a plurality of first and second delay offset pair candidates to determine a first offset (e.g., an absolute offset) corresponding to the first delay (e.g., the absolute delay) between a reference transmitter from among the first and second transmitters 120 and 125 and the receiver 115, and a second offset (e.g., a relative offset) corresponding to the second delay (e.g., the relative delay) between the first and second transmitters 120 and 125. The correlation value calculated for each first and second delay offset pair candidate may represent the power of one specific tap (e.g., filter tap). Accordingly, the first and second delay offset pair candidate(s) having the strongest (e.g., largest) correlation value in terms of magnitude may indicate that the corresponding tap contributes strongly to the self-interference, and thus, should be used in the estimation of the transmitted interfering signal y[t].
For example, to estimate the transmitted interfering signal y[t] according to the first and second time delays, Equation (4) above may be rewritten as Equation (5) below.
In Equation (5), Δt0 represents the first time delay (e.g., the absolute delay) between the reference transmitter from among the first and second transmitters 120 and 125 and the receiver 115, Δt1 represents the second time delay (e.g., the relative delay) between the first and second transmitters 120 and 125, and w and v represent the filters (e.g., the FIR filters) representing the frequency responses of the first and second transmitters 120 and 125, respectively. Further, n(t) represents the noise vector at the receiver.
The correlation value for each first and second delay offset pair candidate (e.g., for each particular first and second time delay Δt0 and Δt1 combination) at a time sample t may be calculated based on a first correlation (e.g., a direct correlation) according to Equation 6 below, when the kernel 204 is selected for the direct product interference function x(t) for IMD2 shown in
As shown in Equation (6), by calculating the correlation value (e.g., the first or direct correlation value) for each first and second delay offset pair candidate (e.g., for each particular combination of Δt0 and Δt1), the power contribution w[i]v[j] of a particular tap having a particular combination of tap indices i and j may be determined. Thus, by calculating the correlation values based on the time delays Δt0 and Δt1, those taps (e.g., tap indices i and j) that are deemed to have the strongest (e.g., the largest) power contributions w[i]v[j] according to Equation 6 above may be selected for estimating the transmitted interfering signal y[t] based on Equation (5) above. In other words, the larger the correlation value (e.g., in terms of magnitude) of a corresponding tap having a particular combination of tap indices i and j in w[i]v[j] for a particular combination of time delays Δt0 and Δt1, the more important the corresponding tap is in estimating the transmitted interfering signal y[t].
While the correlation values calculated according to Equation (6) above may be used to determine the tap indices i and j according to an interference function x(t) for IMD2, it does not allow for the determination of a third tap index k for an interference function x(t) for a selected IMD3 kernel 204. For example, assuming that the kernel 204 is selected for the fourth interference function x(t) for IMD3 in
In this case, the different tap index candidates for i and j may be determined based on Equation (8) below.
As shown in Equation (8), while the power contribution w[i]v2[j] of the tap indices i and j may be determined, Equation (8) does not allow for the third tap index k to be determined. As such, for IMD3 interference functions x(t), a second correlation (e.g., a product correlation) value may be calculated for different i, j, and k candidate values based on Equation (9) below.
As shown in Equation (9), for an IMD3 interference or distortion, the second correlation value (e.g., the product correlation value) provides an estimate of the power contribution |w[i]|2|v[j]|2|v[k]|2 of a particular tap having a particular combination of tap indices i, j, and k for a particular combination of time delays Δt0 and Δt1.
As discussed in more detail below, once the correlation values (e.g., the first or second correlation values) are calculated based on the first and second delays (e.g., for each first and second delay offset pair candidate), the subset of taps may be selected according to one or more peak (e.g., maximum) correlation values from among the calculated correlation values.
Referring to
Center frequencies of a receiving band of the downlink signal and transmitting bands of the first and second output signals may be determined at block 610, and an interference function may be identified based on the center frequencies at block 615. For example, the center frequencies may be determined according to the left side of the table 300 shown in
Correlation values may be calculated based on the interference function and delay offsets between the downlink signal and the first and second output signals at block 620. For example, the correlation values may be calculated for each first and second delay offset pair candidate (e.g., for each particular Δt0 and Δt1 combination) based on Equation (6) above (e.g., if an IMD2 interference) or based on Equations (8) and/or (9) above (e.g., if an IMD3 interference).
A subset of taps may be selected according to the calculated correlation values at block 625, and the interference signal may be estimated based on the selected subset of taps and the interference function at block 630. For example, the subset of taps may be selected based on one or more peak or maximum correlation values from among the calculated correlation values, as discussed in more detail below. The interference signal may correspond to the transmitted interfering signal y[t], and may be estimated according to Equation (5) or Equation (7) described above based on the correlation values and the first and second time delays Δt0 and Δt1.
The desired signal may be extracted from the downlink signal based on the estimated interference signal at block 635. The desired signal may be transmitted at block 640, and the method 600 may end. For example, the desired signal may be transmitted to a demodulator and/or decoder for demodulation and/or decoding.
Referring to
For each first and second delay offset pair candidate (e.g., for each pair of Δt0 along the horizontal axis and Δt1 along the vertical axis of the 2D structure 700), a corresponding correlation value calculated based on the interference function x(t) of the selected kernel 204 may be stored therein. For example, the corresponding correlation value may be calculated based on a direct correlation such as in Equation (6) above, assuming the direct product interference function x(t) for IMD2 shown in
Once the correlation values have been calculated for each of the first and second delay offset pair candidates according to their corresponding first and second time delays Δt0 and Δt1, the subset of taps may be selected from among those first and second delay offset pair candidates having the maximum or peak correlation values. For example,
Referring to
A plurality of second time delay offset candidates corresponding to a second delay (e.g., a relative delay) between the first and second transmitters 120 and 125 may be determined at block 815. The plurality of second time delay offset candidates may be sequentially arranged along a second axis of the 2D structure crossing the first axis at block 820. For example, as shown in
A correlation value may be calculated for each first and second delay offset pair candidate in the 2D structure at block 825. For example, for each pair of a first delay candidate along the first axis and a second delay candidate along the second axis of the 2D structure, a corresponding correlation value may be calculated based on a first correlation (e.g., a direct correlation), for example, according to Equation (6) above, or based on a second correlation (e.g., a product correlation), for example, according to Equations (8) and/or (9) above.
One or more maximum or peak correlation values may be determined from among the calculated correlation values at block 830. For example, in some embodiments, after all of the correlation values have been calculated and stored in the 2D structure 700, the resulting 2D structure 700 may be searched to identify one or more first and second delay offset pair candidates having the largest (in terms of magnitude) correlation value(s).
Values of tap indices (e.g., i and j for IMD2 and i, j, and k for IMD3) of the one or more maximum peak correlation values may be determined at block 835. For example, the values of the tap indices may be determined based on the calculated one or more maximum peak correlation values and according to Equation (5) above (e.g., for IMD2 interference), or according to Equation (7) above (e.g., for IMD3 interference).
The values of the tap indices of the one or more maximum peak correlation values may be used to estimate the transmitted interfering signal y[t] at block 840, and the method 800 may end. For example, the values of the tap indices may be used to select the corresponding terms of the selected kernel 204 (e.g., the corresponding terms of the corresponding interference function x(t)), so that the corresponding channel coefficients (e.g., ci,j for IMD2 and ci,j,k for IMD3) may be estimated, for example, using an RLS algorithm or method, to estimate the transmitted interfering signal y[t] according to the corresponding interference function x(t) of the selected kernel 204 (e.g., such as based on Equation (4) above for IMD2 interference).
According to some embodiments, the subset of taps (e.g., the tap indices) may be selected according to a dynamic approach based on the calculated correlation values stored in the 2D structure 700. For example, in some embodiments, in the dynamic approach, the 2D structure 700 may be searched to identify n number of correlation values (where n is a natural number) having the strongest (e.g., largest) values from among all of the correlation values, and their corresponding tap indices (e.g., i and j for IMD2 and i, j, and k for IMD3) may be selected and used to select the corresponding kernel terms (e.g., x1[t−Δt0+i]x2[t−Δt0−Δt1+j] for IMD2) for the transmitted interfering signal y[t] estimation (e.g., based on Equation (4) above for IMD2 interference). In other words, the corresponding channel coefficients (e.g., ci,j for IMD2 and ci,j,k for IMD3) of the transmitted interfering signal y[t] may be estimated based on the selected tap indices and the selected kernel terms, for example, using an RLS algorithm or the like. In an embodiment, n may be equal to 5, such that the 5 strongest (e.g., largest) correlation values may be determined from those stored in the 2D structure 700, and used for the transmitted interfering signal y[t] estimation. However, the present disclosure is not limited thereto, and the value of n may be variously modified as needed or desired, for example, based on a desired performance benchmark and the like for the self-interference cancelation.
According to some embodiments, instead of determining the n number of strongest (e.g., largest) correlation values from among all of the correlation values stored in the 2D structure 700, the subset of taps (e.g., tap indices) may be selected according to a pattern based approach. In this case, when a pattern is selected, all of the terms corresponding to a pre-defined set of terms of the pattern may be selected as a group. For example, as described in more detail below with reference to
Referring to
As a representative example, the first option (Option 1) 905 illustrated in
However, the present disclosure is not limited to the pattern option candidates illustrated in
According to the pattern based approach, once the first and second delay offset pair candidate having the peak (e.g., the strongest or largest) correlation value is identified from the 2D structure 700, each of the pattern option candidates Option 1, Option 2, and
For example, the sum of correlation values of the first option (Option 1) may be calculated based on Equation (10) below.
For example, the sum of correlation values of the second option (Option 2) may be calculated based on Equation (11) below.
For example, the sum of correlation values of the third option (Option 3) may be calculated based on Equation (12) below.
The sum of correlation values of each of the pattern option candidates may be ranked (e.g., according to magnitude), and the group of terms for the highest ranked (e.g., the strongest or largest) sum of correlation values may be selected and used for estimating the corresponding channel coefficients (e.g., ci,j for IMD2 and ci,j,k for IMD3) of the transmitted interfering signal y[t], for example, using an RLS algorithm or the like.
Referring to
Referring to
In Equation (13), a total correlation value totCorr, which is the sum of the cross-correlation between the kernels from the selected pattern option candidate and the received samples, for IMD3 may be defined by Equation (14) below.
Referring to
One or more pattern option candidates having a pattern of taps with a peak tap corresponding to the peak correlation value located as a center tap from among the pattern of taps may be identified at block 1210, and a sum of correlation values may be calculated for each of the one or more pattern option candidates including the peak tap at block 1215. For example, each of the one or more pattern option candidates may be arranged with the peak correlation value at the center (e.g., w(0), v(0)) of each of the one or more pattern option candidates. The sum of the correlation values (e.g., Corr(Δt0+i, Δt1+j)) of the group of taps in a corresponding pattern may be calculated for each of the pattern option candidates, with the tap indices (e.g., i and j for IMD2 and i, j, and k for IMD3) corresponding to the tap indices of the group of taps in the corresponding pattern for each pattern option candidate.
A pattern option candidate having the largest sum of correlation values from among the calculated sum of correlation values may be selected at block 1220, and values of the tap indices of each of the taps corresponding to the pattern of taps of the selected pattern option candidate may be determined at block 1225. For example, the tap indices corresponding to all of the taps defined by the pattern of the selected pattern option candidate and their corresponding kernel terms may be selected as a group, rather than just those corresponding to the peak correlation value.
The transmitted interfering signal may be estimated according to the values of the tap indices corresponding to the selected pattern option candidate at block 1230, and the method 1200 may end. For example, the values of the tap indices of the corresponding pattern of taps may be used to select the corresponding terms of the selected kernel 204 (e.g., the corresponding terms of the corresponding interference function x(t)), so that the corresponding channel coefficients (e.g., ci,j for IMD2 and ci,j,k for IMD3) may be estimated, for example, using an RLS algorithm or method, to estimate the transmitted interfering signal y[t] according to the corresponding interference function x(t) of the selected kernel 204 (e.g., such as based on Equation (4) above for IMD2 interference).
In some embodiments, the direct calculation of the sum of correlation values over different taps to select the pattern option candidate (e.g., based on the method 1200 described above), or to select the individual terms (e.g., based on the dynamic approach described above) may not be feasible due to hardware limitations (e.g., storage or memory limitations). Moreover, in actual operation, most of such calculations may be performed in real or near-real time (e.g., on-the-fly). According to one or more embodiments of the present disclosure, rather than storing all of the calculated correlation values in the 2D structure 700 described above with reference to
Referring to
At each time instance (e.g., at each Slot), the correlation values may be calculated for each of the first delay candidates stored in the first buffer 1302 based on a given one of the second delay candidates stored in the second buffer 1304 to identify a peak correlation value for each time instance. In this case, after the peak correlation value is determined for a corresponding time instance (e.g., for a corresponding Slot) based on a given one of the second delay candidates stored in the second buffer 1304, the second delay candidate stored in the second buffer 1304 may be incremented for a next time instance (e.g., a next Slot), so that the correlation values for each of the first delay candidates stored in the first buffer 1302 may be subsequently calculated based on the incremented one of the second delay candidates stored in the second buffer 1304 to identify a peak correlation value for the next time instance.
This process may repeat over subsequent time instances (e.g., over subsequent Slots), until each of the relative delay candidates have been incremented in the second buffer 1304 to identify the peak correlation value for each of the time instances (e.g., for each of the Slots). The peak correlation value identified for each of the time instances may be compared with a peak correlation value identified for a previous time instance, and the smaller 2D structure matrix (e.g., see table on right of
In more detail, as shown in
While
At a second time instance (e.g., Slot=1), the correlation values may be calculated corresponding to the set of absolute delay candidate values (e.g., the L values) in the first buffer 1302 and a next one of the second delay candidates (e.g., −D+1) in the second buffer 1304 for the second time instance (e.g., at Slot=1). The correlation values may be calculated, for example, based on a first correlation (e.g., a direct correlation), for example, according to Equation (6) above, or based on a second correlation (e.g., a product correlation), for example, according to Equations (8) and/or (9) above.
A peak correlation value peak(−D+1) for the second time instance (e.g., at Slot=1) may be determined, and the peak correlation value peak(−D+1) may be compared with a peak correlation value (e.g., peak(−D)) stored for a previous time instance against a threshold (e.g., peak(−D+1)-peak(−D)>threshold). For example, if a difference between the subsequent peak correlation value (e.g., peak(−D+1)) and the stored peak correlation value (e.g., peak(−D)) is greater than the threshold, the table (e.g., the table on the right of
The process may be repeated over subsequent time instances (e.g., over subsequent Slots), until each of the relative delay candidates have been incremented in the second buffer 1304 and considered for the peak correlation value determination, so that the 2D structure matrix on the right of
Referring to
A correlation value may be calculated for each of the first time delay candidates in the first buffer according to the one second time delay candidate in the second buffer to identify a current peak correlation value at block 1515, for example, for the first time instance. The correlation value may be calculated based on a first correlation (e.g., a direct correlation), for example, according to Equation (6) above, or based on a second correlation (e.g., a product correlation), for example, according to Equations (8) and/or (9) above. The current peak correlation value may be the maximum or peak correlation value (e.g., the largest correlation value in terms of magnitude) of the first time instance from among the correlation values calculated for the first time instance.
A difference between the current peak correlation value and a previous correlation value stored in a 2D structure may be compared with a threshold at block 1520. Block 1520 assumes that the first time instance is subsequent to an initial time instance, and the peak correlation value calculated for the initial time instance is already stored in the 2D structure. However, if the first time instance is the initial time instance, then the current peak correlation value may not be compared with the threshold, and instead, may be added to the 2D structure along with a number of values around the current peak correlation value. As another example, if the first time instance is the initial time instance, then the current peak correlation value compared with the threshold may be larger than the threshold (e.g., YES at block 1525), or may be smaller than the threshold (e.g., NO at block 1525).
If the difference is greater than (e.g., greater than or equal to) the threshold at block 1525 (e.g., YES at block 1525), the 2D structure may be reset, and filled with the current peak correlation value and a number of values around the current peak correlation value at block 1530. If the difference is less than the threshold at block 1525 (e.g., NO at block 1525), the current peak correlation value and a number of values around the current peak correlation value may be appended to the 2D structure including the previous correlation value at block 1535.
In either case, after the 2D structure has been updated at block 1530 or at block 1535, a determination may be made if there are more second time delay candidates to consider at block 1540. If so (e.g., YES at block 1540), the one second time delay candidate in the second buffer may be incremented for a next time instance, and the method 1500 may repeat at block 1515 to calculate a correlation value for the next time instance. In other words, a correlation value may be calculated for each of the first time delay candidates in the first buffer according to the incremented one second time delay candidate in the second buffer to identify a current peak correlation value for the next time instance.
On the other hand, if there are no more second time delay candidates to consider at block 1530 (e.g., NO at block 1540), the method 1500 may end. In this case, the resulting 2D structure that is filled according to the method 1500 may be used to select the subset of taps, for example, according to any of the methods (e.g., the dynamic approach or the pattern based approach) described above to estimate the transmitted interfering signal y[t].
Referring to
The processor 1620 may execute software (e.g., a program 1640) to control at least one other component (e.g., a hardware or a software component) of the electronic device 1601 coupled with the processor 1620 and may perform various data processing or computations.
As at least part of the data processing or computations, the processor 1620 may load a command or data received from another component (e.g., the sensor module 1676 or the communication module 1690) in volatile memory 1632, process the command or the data stored in the volatile memory 1632, and store resulting data in non-volatile memory 1634. The processor 1620 may include a main processor 1621 (e.g., a central processing unit (CPU) or an application processor (AP)), and an auxiliary processor 1623 (e.g., a graphics processing unit (GPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)) that is operable independently from, or in conjunction with, the main processor 1621. Additionally or alternatively, the auxiliary processor 1623 may be adapted to consume less power than the main processor 1621, or execute a particular function. The auxiliary processor 1623 may be implemented as being separate from, or a part of, the main processor 1621.
The auxiliary processor 1623 may control at least some of the functions or states related to at least one component (e.g., the display device 1660, the sensor module 1676, or the communication module 1690) among the components of the electronic device 1601, instead of the main processor 1621 while the main processor 1621 is in an inactive (e.g., sleep) state, or together with the main processor 1621 while the main processor 1621 is in an active state (e.g., executing an application). The auxiliary processor 1623 (e.g., an image signal processor or a communication processor) may be implemented as part of another component (e.g., the camera module 1680 or the communication module 1690) functionally related to the auxiliary processor 1623.
The memory 1630 may store various data used by at least one component (e.g., the processor 1620 or the sensor module 1676) of the electronic device 1601. The various data may include, for example, software (e.g., the program 1640) and input data or output data for a command related thereto. The memory 1630 may include the volatile memory 1632 or the non-volatile memory 1634. Non-volatile memory 1634 may include internal memory 1636 and/or external memory 1638.
The program 1640 may be stored in the memory 1630 as software, and may include, for example, an operating system (OS) 1642, middleware 1644, or an application 1646.
The input device 1650 may receive a command or data to be used by another component (e.g., the processor 1620) of the electronic device 1601, from the outside (e.g., a user) of the electronic device 1601. The input device 1650 may include, for example, a microphone, a mouse, or a keyboard.
The sound output device 1655 may output sound signals to the outside of the electronic device 1601. The sound output device 1655 may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as playing multimedia or recording, and the receiver may be used for receiving an incoming call. The receiver may be implemented as being separate from, or a part of, the speaker.
The display device 1660 may visually provide information to the outside (e.g., a user) of the electronic device 1601. The display device 1660 may include, for example, a display, a hologram device, or a projector and control circuitry to control a corresponding one of the display, hologram device, and projector. The display device 1660 may include touch circuitry adapted to detect a touch, or sensor circuitry (e.g., a pressure sensor) adapted to measure the intensity of force incurred by the touch.
The audio module 1670 may convert a sound into an electrical signal and vice versa. The audio module 1670 may obtain the sound via the input device 1650 or output the sound via the sound output device 1655 or a headphone of an external electronic device 1602 directly (e.g., wired) or wirelessly coupled with the electronic device 1601.
The sensor module 1676 may detect an operational state (e.g., power or temperature) of the electronic device 1601 or an environmental state (e.g., a state of a user) external to the electronic device 1601, and then generate an electrical signal or data value corresponding to the detected state. The sensor module 1676 may include, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
The interface 1677 may support one or more specified protocols to be used for the electronic device 1601 to be coupled with the external electronic device 1602 directly (e.g., wired) or wirelessly. The interface 1677 may include, for example, a high-definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.
A connecting terminal 1678 may include a connector via which the electronic device 1601 may be physically connected with the external electronic device 1602. The connecting terminal 1678 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
The haptic module 1679 may convert an electrical signal into a mechanical stimulus (e.g., a vibration or a movement) or an electrical stimulus which may be recognized by a user via tactile sensation or kinesthetic sensation. The haptic module 1679 may include, for example, a motor, a piezoelectric element, or an electrical stimulator.
The camera module 1680 may capture a still image or moving images. The camera module 1680 may include one or more lenses, image sensors, image signal processors, or flashes. The power management module 1688 may manage power supplied to the electronic device 1601. The power management module 1688 may be implemented as at least part of, for example, a power management integrated circuit (PMIC).
The battery 1689 may supply power to at least one component of the electronic device 1601. The battery 1689 may include, for example, a primary cell which is not rechargeable, a secondary cell which is rechargeable, or a fuel cell.
The communication module 1690 may support establishing a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device 1601 and the external electronic device (e.g., the electronic device 1602, the electronic device 1604, or the server 1608) and performing communication via the established communication channel. The communication module 1690 may include one or more communication processors that are operable independently from the processor 1620 (e.g., the AP) and supports a direct (e.g., wired) communication or a wireless communication. The communication module 1690 may include a wireless communication module 1692 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 1694 (e.g., a local area network (LAN) communication module or a power line communication (PLC) module). A corresponding one of these communication modules may communicate with the external electronic device via the first network 1698 (e.g., a short-range communication network, such as BLUETOOTH™, wireless-fidelity (Wi-Fi) direct, or a standard of the Infrared Data
Association (IrDA)) or the second network 1699 (e.g., a long-range communication network, such as a cellular network, the Internet, or a computer network (e.g., LAN or wide area network (WAN)). These various types of communication modules may be implemented as a single component (e.g., a single IC), or may be implemented as multiple components (e.g., multiple ICs) that are separate from each other. The wireless communication module 1692 may identify and authenticate the electronic device 1601 in a communication network, such as the first network 1698 or the second network 1699, using subscriber information (e.g., international mobile subscriber identity (IMSI)) stored in the subscriber identification module 1696.
The antenna module 1697 may transmit or receive a signal or power to or from the outside (e.g., the external electronic device) of the electronic device 1601. The antenna module 1697 may include one or more antennas, and, therefrom, at least one antenna appropriate for a communication scheme used in the communication network, such as the first network 1698 or the second network 1699, may be selected, for example, by the communication module 1690 (e.g., the wireless communication module 1692). The signal or the power may then be transmitted or received between the communication module 1690 and the external electronic device via the selected at least one antenna.
Commands or data may be transmitted or received between the electronic device 1601 and the external electronic device 1604 via the server 1608 coupled with the second network 1699. Each of the electronic devices 1602 and 1604 may be a device of a same type as, or a different type, from the electronic device 1601. All or some of operations to be executed at the electronic device 1601 may be executed at one or more of the external electronic devices 1602, 1604, or 1608. For example, if the electronic device 1601 should perform a function or a service automatically, or in response to a request from a user or another device, the electronic device 1601, instead of, or in addition to, executing the function or the service, may request the one or more external electronic devices to perform at least part of the function or the service. The one or more external electronic devices receiving the request may perform the at least part of the function or the service requested, or an additional function or an additional service related to the request and transfer an outcome of the performing to the electronic device 1601. The electronic device 1601 may provide the outcome, with or without further processing of the outcome, as at least part of a reply to the request. To that end, a cloud computing, distributed computing, or client-server computing technology may be used, for example.
Embodiments of the subject matter and the operations described in this specification may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification may be implemented as one or more computer programs, i.e., one or more modules of computer-program instructions, encoded on computer-storage medium for execution by, or to control the operation of data-processing apparatus. Alternatively or additionally, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, which is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer-storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial-access memory array or device, or a combination thereof. Moreover, while a computer-storage medium is not a propagated signal, a computer-storage medium may be a source or destination of computer-program instructions encoded in an artificially-generated propagated signal. The computer-storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices). Additionally, the operations described in this specification may be implemented as operations performed by a data-processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
While this specification may contain many specific implementation details, the implementation details should not be construed as limitations on the scope of any claimed subject matter, but rather be construed as descriptions of features specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Thus, particular embodiments of the subject matter have been described herein. Other embodiments are within the scope of the following claims. In some cases, the actions set forth in the claims may be performed in a different order and still achieve desirable results. Additionally, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
The foregoing is illustrative of some embodiments of the present disclosure, and is not to be construed as limiting thereof. Although some embodiments have been described, those skilled in the art will readily appreciate that various modifications are possible in the embodiments without departing from the spirit and scope of the present disclosure. It will be understood that descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in other embodiments, unless otherwise described. Thus, as would be apparent to one of ordinary skill in the art, features, characteristics, and/or elements described in connection with a particular embodiment may be used singly or in combination with features, characteristics, and/or elements described in connection with other embodiments unless otherwise specifically indicated. Therefore, it is to be understood that the foregoing is illustrative of various example embodiments and is not to be construed as limited to the specific embodiments disclosed herein, and that various modifications to the disclosed embodiments, as well as other example embodiments, are intended to be included within the spirit and scope of the present disclosure as defined in the appended claims, and their equivalents.
This application claims priority to and the benefit of U.S. Provisional Application No. 63/545,896, filed on Oct. 26, 2023, entitled “ADAPTIVE SELECTION OF ESTIMATION TAPS FOR SELF-INTERFERENCE CANCELATION IN SIMULTANEOUS RECEIVING AND TRANSMITTING SYSTEMS,” the entire content of which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
63545896 | Oct 2023 | US |