Filter for linear modulation based communication systems

10230547 · 2019-03-12

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of designing a digital filter for example for use in an FBMC/OQAM telecommunications system, with a target overlapping factor and meeting a specified signal to interference ratio is described, whereby a candidate filter design defined by an impulse response, satisfying the Nyquist criterion and having an overlapping factor higher than the target is selected, and the time and frequency coefficients of its impulse response inverted to define a new filter design; and truncating the impulse response defining said new filter design to the minimum number of coefficients achieving said specified signal to interference ratio.

Claims

1. A method of designing a digital filter with a target overlapping factor meeting a specified signal to interference ratio, said method comprising: selecting a candidate filter design defined by a filter bank impulse response, satisfying the Nyquist criterion and having an overlapping factor higher than the target; inverting time and frequency coefficients of said filter bank impulse response to define a further filter design; and truncating a frequency response defining said further filter design to a minimum number of coefficients achieving said specified signal to interference ratio.

2. The method of claim 1, wherein said selecting a candidate filter further comprises selecting a candidate filter design defined in terms of a filter bank impulse response having a finite number of frequency coefficients having a value greater that 110.sup.2 when projected on a time and frequency grid with half symbol period and subcarrier spacing as time and frequency components respectively.

3. The method of claim 2, wherein said candidate filter design is a Martin-Mirabassi-Bellange design with an overlapping factor of 3 to 8 inclusive.

4. The method of claim 3, wherein said defining a candidate filter comprises using either an Isotropic Orthogonal Transform Algorithm or a Square Root Raise Cosine functions.

5. The method of claim 1, wherein said defining a candidate filter comprises using techniques of weighted-sum of near-adjacent inverse Fast Fourier Transform filters.

6. The method of claim 1, wherein said defining a candidate filter comprises using a compact representation by decomposing the impulse response of the filter into an angular-based representation of the corresponding polyphase network.

7. The method of claim 1, wherein the target overlapping factor of said digital filter is larger than 1.

8. The method of claim 1, wherein said candidate filter design has 3 frequency coefficients having a value greater that 110.sup.2.

9. The method of claim 1, wherein said candidate filter design has 5 frequency coefficients having a value greater that 110.sup.2.

10. A digital filter with a target overlapping factor and meeting a specified signal to interference ratio, defined in accordance with the method of claim 1.

11. A digital filter with a target overlapping factor and meeting a specified signal to interference ratio, said filter being defined by coefficients of inverted time and frequency coefficients of the filter bank impulse response defining a candidate filter design satisfying the Nyquist criterion and having an overlapping factor higher than the target.

12. A transmitter implementing cyclic or linear convolution using the digital filter of claim 11.

13. The transmitter of claim 12, wherein said transmitter implements a Filter-Bank Multi-Carrier with Offset Quadrature Modulation.

14. A receiver implementing cyclic or linear convolution using the digital filter of claim 11.

15. The receiver of claim 14, wherein said receiver implements a Filter-Bank Multi-Carrier with Offset Quadrature Amplitude Modulation demodulation.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The above and other advantages of the present invention will now be described with reference to the accompanying drawings, in which:

(2) FIG. 1 shows a PPN FBMC/OQAM transmitter implementation;

(3) FIG. 2a shows an FS FBMC/OQAM transmitter implementation;

(4) FIG. 2b shows an FS FBMC/OQAM receiver implementation;

(5) FIG. 3 shows a method of designing a digital filter with a low overlapping factor meeting a specified signal to interference ratio;

(6) FIG. 4a illustrates the Nyquist criterion;

(7) FIG. 4b further illustrates the Nyquist criterion;

(8) FIG. 5 shows a possible relationship between the number of coefficients in a filter design and the specified signal to interference ratio attained; and

(9) FIG. 6 shows a generic computing system suitable for implementation of embodiments of the invention.

DETAILED DESCRIPTION

(10) FIG. 3 shows a method of designing a digital filter with a low overlapping factor meeting a specified signal to interference ratio.

(11) Overlapping Factor (OF) is defined by the number of FBMC symbols which overlap, plus 1. It is also equal to the length of the filter (L) divided by the maximum number of sub-carrier (=DFT size) in a polyphase representation of the filter-bank:
OF=L/M.(13)

(12) For a practical communication system, having a low OF is advantageous since it decreases the hardware complexity and the latency of the resulting transceiver thanks to the short filter duration. The overlap operation due to the OQAM processing is however not counted. FBMC/OQAM is equivalent to FBMC/PAM with doubled OF value.

(13) As shown in FIG. 3, the method starts at step 301, at which a candidate filter design defined by a filter bank impulse response and satisfying the Nyquist criterion is selected.

(14) The Nyquist criterion describes the conditions which, when satisfied by a communication channel (including responses of transmit and receive filters), results in no inter-symbol interference (ISI) and no inter-carrier interference.

(15) If the discrete prototype filter impulse response is denoted as g(k), then the condition for an ISI-free response of the resulting filter-bank can be expressed as:

(16) .Math. i = - + g ( k + i M 2 ) g ( k + i M 2 + nM ) = ( n ) , k ( 14 )

(17) where M corresponds to the number of samples in a transmitted symbol of duration T=MT.sub.s, T.sub.s being the sampling period. (n) denotes the Dirac function. This criterion can be intuitively understood as indicating that time-shifted replicas of g.sup.2(k) by half of the symbol duration (equivalent to

(18) 0 M 2
samples) must add up to a constant value.

(19) FIG. 4a illustrates the Nyquist criterion for a filter bank system. As shown in FIG. 4a, a prototype filter impulse response 400 is plotted, with time on the x axis 401 and power on the y axis 402. A first filter response 403 is plotted at a first time 405, and a second filter response 404 is plotted at a second time 406, the two time-shifted filter responses being separated by a time shift b, 407.

(20) FIG. 4b further illustrates the Nyquist criterion for a filter bank system. As shown in FIG. 4b, the prototype filter impulse response 400 of FIG. 4a is plotted, with time on the x axis 401 and power on the y axis 402. A first filter response 408 is plotted at a third time 410, and a fourth filter response 409 is plotted at a second time 411, the two time-shifted filter responses being separated by the same time shift b as for FIG. 4a, 407.

(21) Although in FIGS. 4a and 4b the abscissa for the filter responses is different (a and g respectively), the total of the powers of the first and second filter responses c+d is equal to the total of the powers of the third and four filter responses e+f. For a prototype filter of a filter bank satisfying the Nyquist criterion, this will be true for any pair of filter responses shifted by the same interval of time.

(22) The candidate prototype filter can be chosen from a set of defined functions such as square-root-raised-cosine or IOTA functions, or selected from the substantial pool of existing filters, without targeting a specific criterion other than Nyquist.

(23) The step of selecting a candidate filter may further comprise selecting a candidate filter design defined in terms of a filter bank impulse response having a finite number of normalized (by the largest value) frequency coefficients having a substantially non-zero value when projected on a time and frequency grid with half symbol period and subcarrier spacing as time and frequency components respectively. The threshold below which a normalized coefficient may be considered to be substantially zero value will be recognized by the skilled person depending on the context of the application and design constraint. The range of non zero value will in any case lie above 110.sup.2, and may restricted down to 110.sup.3 or indeed to 110.sup.4. The threshold values are defined in such a way that the effect on the SIR is as low as possible. The acceptable level of SIR depends on the application and the considered candidate filter.

(24) Where it is desired to define a filter having a short number of taps in the Frequency domain, since the frequency and time domains can be considered as dual domains and thanks to the property of the Fourier Transform that a filter spanning a large period of time generally spans a short interval in frequency, a filter can be designed in the frequency domain inspired by the ones already designed in the time domain with a large time intervals. Generally it will be desirable to have the shortest number of taps altogether. Three non-zero coefficient candidate filters such as the Martin-Mirabassi-Bellange with OF equals to 4 filter can give good results, 4, or 5 coefficient filters are also well suited. Candidate filters with a higher number of coefficient will result in the loss of the perfect reconstruction property (Nyquist no longer respected) and result in non-orthogonal FBMC/OQAM schemes. On the other hand, 1 coefficient results in a rectangular filter with poor frequency localization.

(25) Alternatively, the candidate prototype filter can be designed from scratch using optimization methods to meet a time-frequency localization (TFL) criterion defined by the Heisenberg parameter:

(26) ( g ) = 1 4 t ( g ) f ( g ) , ( 15 )

(27) where .sub.t(g) and .sub.f(g) are respectively the second order moments in time and frequency of the prototype filter g. The value of (g) is always between 0 and 1.

(28) One design method consists of optimizing the filter coefficients in the frequency domain to fulfill the TFL and Nyquist criteria, for example according to a weighted-sum of near-adjacent IFT filters based techniques such as described in K. Martin, Small side-lobe filter design for multitone data-communication applications, IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 45, no. 8, pp. 1155-1161, August 1998.

(29) Another design method involves the optimization of filter coefficients using a compact representation by decomposing the impulse response of the filter into an angular-based representation of the corresponding polyphase network. This representation ensures that the Nyquist criterion is respected, and the angular parameters are optimized to meet the TFL criterion. This method is described in D. Pinchon, P. Siohan, and C. Siclet, Design techniques for orthogonal Modulated filterbanks based on a compact representation, IEEE Transactions on Signal Processing, vol. 52, no. 6, pp. 1682-1692, June 2004.

(30) Other design methods involve the Isotropic Orthogonal Transform Algorithm (IOTA) as described by B. le Floch, M. Alard, C. Berrou. in Coded orthogonal frequency division multiplex. Proceedings of the IEEE, vol. 83, pp. 982-996, June 1995, or the Square Root Raised Cosine functions.

(31) Filters developed according to the above principles are particularly suited for digital modulation schemes such as cyclic or linear convolution based communication systems, for example.

(32) By way of examples of existing filters design that may give satisfactory results when taken as the candidate filter, the Martin-Mirabassi-Bellange with OF equals to 4 (mmb4) filter as presented in B. Le Floch, M. Alard, and C. Berrou, Coded orthogonal frequency division multiplex [TV broadcasting], Proceedings of the IEEE, vol. 83, no. 6, pp. 982-996, June 1995. and K. Martin, Small side-lobe filter design for multitone data communication, applications, IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 45, no. 8, pp. 1155-1161, August 1998, and considered for FBMC/OQAM during the PHYDYAS project are put forward.

(33) The Martin-Mirabassi-Bellange with OF equals to 4 filter is defined by the following impulse response of the filter bank in the time and frequency axis:

(34) TABLE-US-00001 t 4 t 3 t 2 t 1 t t + 1 t + 2 t + 3 t + 4 f 1 0.005 j 0.043 0.125 j 0.206 0.239 j 0.206 0.125 j 0.043 0.005 f 0 0.067 0 0.564 1 0.564 0 0.067 0 f + 1 0.005 j 0.043 0.125 j 0.206 0.239 j 0.206 0.125 j 0.043 0.005

(35) It may be noted that the filter bank impulse response of the resulting filter is highly localized in frequency since interference is limited only to one adjacent sub-carrier in the frequency plane.

(36) It will be appreciated that this is merely one example of a particular candidate filter design which may be suitable for particular applications. In particular, this candidate filter design is suitable as a starting point for the design of filters for FBMC/OQAM architectures as described above. Other suitable candidate filter designs may also be found to satisfy selection criteria as discussed above, and provide the basis of new filter designs for this or other applications, such as; IOTA Filter as described in B. Le Floch, M. Alard, and C. Berrou, Coded orthogonal frequency division multiplex [TV broadcasting], Proceedings of the IEEE, vol. 83, no. 6, pp. 982-996, June 1995; FS 4 filter as described in D. Pinchon, P. Siohan, C. Siclet, Design techniques for orthogonal modulated filterbanks based on a compact representation, IEEE Trans. Signal Process. 52 (June (6)) (2004) 1682-1692; or MMB filter with OF superior to 4 as described in K. Martin, Small side-lobe filter design for multitone data-communication applications, IEEE Transactions on Circuits Systems II: Analog and Digital Signal Processing, vol. 45, no. 8, pp. 1155-1161, August 1998.

(37) Once the candidate filter design is selected, the method proceeds to step 302, at which the time and frequency coefficients of the impulse response of the filter bank defining the candidate filter design are inverted to define a further filter design.

(38) Inverting the axes generates a prototype filter highly localized in time, with an overlapping factor equal to 1. The coefficients of the prototype filter can be deduced from the desired impulse response of the filter bank by transmitting an impulse equal to 1 at time slot t and sub-carrier f. Using the notations presented above,
an(m)=1 if n=t and m=f, else 0.(16)

(39) f and t can be arbitrary set to 0 to simplify calculations since the impulse response of the filter bank does not depend on the location of the transmitted impulse in the time and frequency plane. Thus, equation (1) becomes:
s(k)=g(k)(17)

(40) Then, the received samples after demodulation at time slot n=t=0 are expressed as follows:

(41) c 0 ( k ) = .Math. i = 0 M - 1 g 2 ( i ) e - j 2 ki M ( 18 )

(42) Thus, g can be deduced by setting c.sub.0(m)=C.sub.candidate(m), where C.sub.candidate corresponds to the coefficients of the impulse response of the filter bank at line fin the impulse response of the candidate filter design, as shown above.

(43) g ( k ) = .Math. i = 0 M - 1 c candidate ( i ) e j 2 ki M ( 19 )

(44) Optionally, the design procedure may introduce simplifications to obtain a simpler analytical expression, by taking advantage of the real valued and symmetrical C.sub.candidate coefficients:

(45) According to the above table, c.sub.candidate(2i)=0 i0 (column t4, t2, t+2 and t+4 at line f), and c.sub.candidate(0)=1 (column t at line f). It is in reality applicable for any prototype filter, since it is a consequence of Nyquist criteria (see proof 1). Thus,

(46) g ( k ) = 1 + .Math. i = 0 M / 2 - 1 c candidate ( 2 i + 1 ) e j 2 k ( 2 i + 1 ) M ( 20 )

(47) Furthermore, c.sub.candidate(i)=c.sub.candidate(i), which is equivalent to c.sub.candidate(i)=c.sub.candidate(Mi1) by FFT shift (the FFT being periodic), because of the real valued nature of the prototype filter. Thus, assuming M is a power of 2 superior to 4 (which is always the case in practical implementation):

(48) g ( k ) = 1 + .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 ) e j 2 k ( 2 i + 1 ) M + .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 + M 4 ) e j 2 k ( 2 i + 1 + M 4 ) M ( 21 )

(49) The second sum can also be written as follows:

(50) g ( k ) = 1 + .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 ) e j 2 k ( 2 i + 1 ) M + .Math. i = 0 M / 4 - 1 c candidate ( M - ( 2 i + 1 ) ) e j 2 k ( M - ( 2 i + 1 ) ) M ( 22 ) g ( k ) = 1 + .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 ) e j 2 k ( 2 i + 1 ) M + e j 2 kM M .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 ) e j 2 k ( 2 i + 1 ) M ( 23 ) g ( k ) = 1 + .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 ) ( e j 2 k ( 2 i + 1 ) M + e - j 2 k ( 2 i + 1 ) M ) ( 24 )

(51) Using Euler's formula:

(52) g ( k ) = 1 + 2 .Math. i = 0 M / 4 - 1 c candidate ( 2 i + 1 ) cos ( 2 k ( 2 i + 1 ) M ) ( 25 )

(53) Defining P.sub.g(i)=c.sub.candidate(2i+1):

(54) g ( k ) = 1 - 2 .Math. i = 0 M / 4 - 1 P g ( i ) cos ( 2 k ( 2 i + 1 ) M ) ( 26 )

(55) In the case of Martin-Mirabassi-Bellange with OF equals to 4 as discussed hereafter, P.sub.g(i)=0 i>2, thus:

(56) g ( k ) = 1 - 2 .Math. i = 0 2 P g ( i ) cos ( 2 k ( 2 i + 1 ) M ) ( 27 )

(57) Proof 1:

(58) To respect the Nyquist criteria, the prototype filter must fulfill the following condition:

(59) 0 .Math. i = 0 2 q - 1 g 2 ( k + i M 2 ) = 1 k ( 28 )

(60) To recall, the impulse response of the filter bank at time index t=0 is:

(61) c 0 ( k ) = .Math. i = 0 M - 1 g 2 ( i ) e - j 2 ki M ( 29 )
It can also be expressed by decomposing the FFT into 2q terms:

(62) c 0 ( k ) = .Math. i = 0 2 q - 1 .Math. j = 0 M / ( 2 q ) - 1 g 2 ( j + i M 2 ) e - j 2 k ( j + i M 2 ) M ( 30 ) c 0 ( k ) = .Math. j = 0 M / ( 2 q ) - 1 [ .Math. i = 0 2 q - 1 g 2 ( j + i M 2 ) ( - 1 ) ki ] e - j 2 kj M ( 31 )
For k even:

(63) c 0 ( 2 k ) = .Math. j = 0 M / ( 2 q ) - 1 [ .Math. i = 0 2 q - 1 g 2 ( j + i M 2 ) ] e - j 2 kj M ( 32 ) c 0 ( 2 k ) = .Math. j = 0 M / ( 2 q ) - 1 [ 1 ] e - j 2 kj M ( 33 ) c 0 ( 2 k ) = ( k ) ( 34 )

(64) The impulse response is constructed by inverting t and f axis. The following table is the impulse response of the filter bank (analysis+synthesis filter, i.e. the combined effect of the TX and RX filter), using the obtained prototype filter.

(65) TABLE-US-00002 f 4 f 3 f 2 f 1 f f + 1 f + 2 f + 3 f + 4 t 1 0.005 j 0.043 0.125 j 0.206 0.239 j 0.206 0.125 j 0.043 0.005 t 0 0.067 0 0.564 1 0.564 0 0.067 0 t + 1 0.005 j 0.043 0.125 j 0.206 0.239 j 0.206 0.125 j 0.043 0.005

(66) The impulse response of the prototype filter is defined as g(k). The process of decomposition performed by the filter bank is called synthesis (meaning analysis of the signal in terms of its components in each sub-band); the output of synthesis is referred to as a sub-band signal with as many sub-bands as there are filters in the filter bank. The reconstruction process is called analysis, meaning reconstitution of a complete signal resulting from the filtering process. The Nyquist criteria is verified after the combined effect of the synthesis and analysis filters, i.e. at the output of the synthesis filter (RX side).

(67) The method then proceeds to step 303 at which the resulting frequency response defining the further filter design is truncated to the minimum number of coefficients achieving the specified signal to interference ratio.

(68) By truncating the frequency response of the prototype filter at the receiver side, interference may appear due to a non-perfect reconstruction, resulting in a performance degradation. However, if CG, the number of non-zero coefficients, is too high, the resulting Frequency Spread implementation will require important computational and hardware complexities.

(69) While the number of non-zero coefficients in the frequency plane axis of the filter-bank impulse response will often need to be 3 or 5 to obtain a filter with near perfect reconstruction proprieties, the overlapping factor will constrain the frequency localization of the target filter. If the candidate has poor time localization, then the target filter will have a poor frequency localization. For a good compromise between time/frequency localization, OF=3, 4, 5 are often found to be satisfactory.

(70) As such there is provided a digital filter with a target overlapping factor and meeting a specified signal to interference ratio, said filter being defined by the coefficients of the inverted time and frequency coefficients of the filter bank impulse response defining a candidate filter design satisfying the Nyquist criterion and having an overlapping factor higher than the target.

(71) In some cases, there is provided a digital filter with an overlapping factor of 1, said filter being defined by the coefficients of the inverted time and frequency coefficients of the filter bank impulse response of the Martin-Mirabassi-Bellange with OF equals to 4 candidate filter.

(72) As such, the set of coefficients presented in the preceding table thus defines one particular design in accordance with an embodiment (i.e. with limited truncation), which may prove effective in certain situations, in particular in FBMC implementations targeting low complexity air interfaces such as the 5G air interface.

(73) FIG. 5 shows a possible relationship between the number of coefficients in a filter design and the specified signal to interference ratio attained. As shown, the Signal to Interference performance of the filter described with reference to FIG. 3 above is plotted against the number of coefficients retained after truncation at step 303. On this basis, it can be seen that if for example a minimum signal to interference ratio of 55 dB is specified, a final filter design having 7 non-zero coefficients is sufficient.

(74) On this basis, the requisite number of coefficients can be selected, and the frequency response of the further filter design is truncated to that number as mentioned with reference to step 303 above, to arrive at a set of coefficients as follows:

(75) For example,

(76) G(3)=0.0107

(77) G(2)=0.0837

(78) G(1)=0.4202

(79) G(0)=1

(80) G(1)=0.4202

(81) G(2)=0.0837

(82) G(3)=0.0107

(83) where G represents the discrete Fourier transform of the impulse response of the prototype filter g, defined as:

(84) G ( m ) = .Math. k = 0 M - 1 g ( k ) e - i 2 km M ( 35 )

(85) The truncated frequency response of the filter is obtained by setting:

(86) G ( m ) = 0 for m .Math. [ - , ] and = c g - 1 2 , ( 36 )

(87) where C.sub.g is the odd valued number of required non-truncated coefficients to reach the target SIR (C.sub.g=7 in this example for a SIR of 55 dB).

(88) If C g is even valued , = c g 2 with m .Math. [ - , - 1 ] or m .Math. [ - + 1 , ] ( 37 )

(89) These two previous definitions for m are possible and lead to the same SIR. In practice, a better compromise between complexity and SIR can be achieved if the coefficients of the frequency response remain symmetrical, i.e. when C.sub.g is odd valued.

(90) The resulting filter has similar desirable characteristics to the original candidate filter design for example in terms of filter complexity and performance, whilst being highly localized in the time domain and there achieving the benefits associated with short filters for example as discussed in the context of FBMC/OQAM systems above. Such filters are equally applicable in other communications systems, in particular others based on or linear convolution, such as FBMC/QAM transceiver. For example, Filtered Multi-Tone (FMT) modulation is a particular filter-bank multicarrier modulation (with linear convolution) which transmits data at data rate lower than the Nyquist rate. It corresponds to the case where the number of channel (M) is inferior to the upsampling factor (N) for the analysis and synthesis filter of the filter-bank multicarrier system. Another set of alternatives is constituted by systems which use a circular convolution such as Cyclic-block FMT is the FMT modulation where the synthesis and analysis filter uses a circular convolution instead of the linear convolution.

(91) Filters designed in this way may be incorporated in transmitters and/or corresponding receivers, for example in the place of the filters 131, 132, 241, 242, 243, 244 described above with respect to FIGS. 1 and 2.

(92) Accordingly, there is defined a digital filter with a target overlapping factor and meeting a specified signal to interference ratio, said filter being defined by a truncation of the coefficients of the inverted time and frequency coefficients of the filter bank impulse response defining a candidate filter design satisfying the Nyquist criterion and having an overlapping factor higher than the target.

(93) The implementation of the filter depends on the FBMC architecture.

(94) For PPN-based implementation, the filter is used as a window function, thus it is simply a multiplication of the coefficients at the input of the FFT at the receiver side. For this implementation, the non-truncated version may be used with no change in complexity.

(95) For Frequency Spread-based implementation, the filter is implemented as a discrete-time FIR filter, after FFT on the receiver side. The truncated version may be used to reduce complexity.

(96) A PPN implementation may be adopted at the transmitter side and a Frequency Spread implementation at receiver side. Other implementation details and variants of these methods may be envisaged, in particular corresponding to the variants of the apparatus described with reference to the preceding drawings.

(97) The disclosed methods can take form of an entirely hardware embodiment (e.g. FPGA), an entirely software embodiment (for example to control a system according to the invention) or an embodiment containing both hardware and software elements. Software embodiments include but are not limited to firmware, resident software, microcode, etc. The invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or an instruction execution system. A computer-usable or computer-readable can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.

(98) These methods and processes may be implemented by means of computer-application programs or services, an application-programming interface (API), a library, and/or other computer-program product, or any combination of such entities.

(99) FIG. 6 shows a generic computing system suitable for implementation of embodiments of the invention.

(100) A shown in FIG. 6, a system includes a logic device 601 and a storage device 602. The system may optionally include a display subsystem 611, input subsystem 612, 613, 615, communication subsystem 620, and/or other components not shown.

(101) Logic device 601 includes one or more physical devices configured to execute instructions. For example, the logic device 601 may be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.

(102) The logic device 601 may include one or more processors configured to execute software instructions. Additionally or alternatively, the logic device may include one or more hardware or firmware logic devices configured to execute hardware or firmware instructions. Processors of the logic device may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic device 601 optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic device 601 may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.

(103) Storage device 602 includes one or more physical devices configured to hold instructions executable by the logic device to implement the methods and processes described herein. When such methods and processes are implemented, the state of storage 602 device may be transformede.g., to hold different data.

(104) Storage device 602 may include removable and/or built-in devices. Storage device 602 may comprise one or more types of storage device including optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., FLASH, RAM, EPROM, EEPROM, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), among others. Storage device may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.

(105) In certain arrangements, the system may comprise an interface 603 adapted to support communications between the Logic device 601 and further system components. For example, additional system components may comprise removable and/or built-in extended storage devices. Extended storage devices may comprise one or more types of storage device including optical memory 632 (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory 633 (e.g., RAM, EPROM, EEPROM, FLASH etc.), and/or magnetic memory 631 (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), among others. Such extended storage device may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.

(106) It will be appreciated that storage device includes one or more physical devices, and excludes propagating signals per se. However, aspects of the instructions described herein alternatively may be propagated by a communication medium (e.g., an electromagnetic signal, an optical signal, etc.), as opposed to being stored on a storage device.

(107) Aspects of logic device 601 and storage device 602 may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.

(108) The term program may be used to describe an aspect of computing system implemented to perform a particular function. In some cases, a program may be instantiated via logic device executing machine-readable instructions held by storage device. It will be understood that different modules may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same program may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The term program may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.

(109) In particular, the system of FIG. 6 may be used to implement embodiments of the invention.

(110) For example a program implementing the steps described with respect to FIG. 3 may be stored in storage device 602 and executed by logic device 601. The candidate filter design may be buffered in the storage device 602. The Logic device 601 may implement the inversion and truncation steps as described above under the control of a suitable program, or may interface with internal or external dedicated systems adapted to perform some or all of these processes such as hardware accelerated encoders/decoders and the like. Furthermore, a program may implement a transmitter or receiver implementing an encoder or decoder in accordance with embodiments for example as described above. These tasks may be shared among a number of computing devices, for example as described with reference to FIG. 6. The encoded signal may then be output via the communications interface 620 for transmission in a transmitter embodiment, or the encoded signal may then input via the communications interface 620 for decoding in a receiver embodiment.

(111) Accordingly the invention may be embodied in the form of a computer program.

(112) It will be appreciated that a service, as used herein, is an application program executable across multiple user sessions. A service may be available to one or more system components, programs, and/or other services. In some implementations, a service may run on one or more server-computing devices.

(113) When included, display subsystem 611 may be used to present a visual representation of the first video stream, the second video stream or the combined video stream, or may otherwise present statistical information concerning the processes undertaken. As the herein described methods and processes change the data held by the storage device 602, and thus transform the state of the storage device 602, the state of display subsystem 611 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 611 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic device and/or storage device in a shared enclosure, or such display devices may be peripheral display devices.

(114) When included, input subsystem may comprise or interface with one or more user-input devices such as a keyboard 612, mouse 613, touch screen 611, or game controller (not shown). In some embodiments, the input subsystem may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity.

(115) When included, communication subsystem 620 may be configured to communicatively couple computing system with one or more other computing devices. For example, communication module of may communicatively couple computing device to remote service hosted for example on a remote server 676 via a network of any size including for example a personal area network, local area network, wide area network, or the internet. Communication subsystem may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network 674, or a wired or wireless local- or wide-area network. In some embodiments, the communication subsystem may allow computing system to send and/or receive messages to and/or from other devices via a network such as the Internet 675. The communications subsystem may additionally support short range inductive communications 621 with passive devices (NFC, RFID etc).

(116) It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.

(117) The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.