Loading in 2 Seconds...

Calculating Spectral Coefficients for Walsh Transform using Butterflies

Loading in 2 Seconds...

113 Views

Download Presentation
##### Calculating Spectral Coefficients for Walsh Transform using Butterflies

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Calculating Spectral Coefficients for Walsh Transform using**Butterflies Marek Perkowski September 21, 2005**Symbols**• a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; • b -- the number of false minterms of Boolean function F, where the function F has the logical value 0 and the standard trivial function has the logical value 1; • c -- the number of true minterms of Boolean function F, where the function F has the logical value 1 and the standard trivial function has the logical value 0; • d -- the number of false minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 0, and e be the number of don't care minterms of Boolean function F.**Then, for completely specified Boolean functions having n**variables, this formula holds: a + b + c + d = 2n Accordingly, for incompletely specified Boolean functions, having n variables, holds: a + b + c + d + e = 2n**X Y**X Y 0 1 0 1 0 0 1 1 1 1 Standard Trivial function for XOR of input variables Data Function X Y X Y 0 1 X Y 0 1 0 1 0 0 0 1 1 1 Standard Trivial function for input variable Y Standard Trivial function for input variable X Standard Trivial Function for whole map**The spectral coefficients for completely specified Boolean**function can be defined in the following way: s0 = 2n – 2 * a si = 2 * (a + d) - 2n, when i ≠ 0. X Y 0 1 a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; 0 1 1 1 d -- the number of false minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 0 a = 2, d = 2, n =2 s0 = 2n – 2 * a = 4 – 2 * 2 = 0 s3 = 2 * (a + d) - 2n = 2(2+2)– 4 = 4 best correlation**Negation of the previous function**si = 2 * (a + d) - 2n, when i ≠ 0. X Y 0 1 1 a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; 0 1 1 d -- the number of false minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 0 a = 2, d = 2, n =2 s3 = 2 * (a + d) - 2n = 2(0+0)– 4 = - 4 worst correlation**Other functions**s0 = 2n – 2 * a = 4 – 2 * 4 = - 4 X Y 0 1 1 1 a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; 0 1 1 1 X Y 0 1 0 0 0 s0 = 2n – 2 * a = 4 – 2 * 0 = + 4 0 0 1**Butterflies in S encoding**S encoding 0 0 + + 0= 0 = 1 0 2 - 1= 1 = -1 + 0 0 - 2= 1 = -1 + -2 4 - 3= 0 = 1 - XOR**Butterflies in S encoding**S encoding 0 0 + + 0= 0 = -1 0 -2 - 1= 1 = 1 + 0 0 - 2= 1 = 1 + 2 -4 - 3= 0 = -1 - XNOR**Butterflies in S encoding**S encoding 0 2 + + 0= 0 = -1 -2 -2 - 1= 1 = 1 + -2 2 - 2= 1 = 1 + 0 -2 - 3= 0 = 1 - X’ Y’**Butterflies in S encoding**S encoding 0 2 + + 0= 0 = 1 2 2 - 1= 1 = -1 + -2 2 - 2= 1 = 1 + 0 2 - 3= 0 = 1 - X’ Y**Butterflies in S encoding**S encoding 2 2 + + 0= 0 = 1 -2 0 - 1= 1 = 1 + 2 0 - 2= 1 = -1 + -2 2 - 3= 0 = 1 - X Y’**Butterflies in S encoding**S encoding 2 2 + + 0= 0 = 1 2 0 - 1= 1 = 1 + 2 0 - 2= 1 = 1 + 2 -2 - 3= 0 = -1 - X Y**Butterflies in S encoding**S encoding -2 0 + + 0= 0 = -1 0 0 - 1= 1 = -1 + -4 2 - 2= 1 = 1 + 0 0 - 3= 0 = 1 - X’**Butterflies in S encoding**S encoding 2 0 + + 0= 0 = 1 0 0 - 1= 1 = 1 + 4 -2 - 2= 1 = -1 + 0 0 - 3= 0 = -1 - X**Butterflies in S encoding**S encoding 0 0 + + 0= 0 = 1 4 2 - 1= 1 = -1 + 0 0 - 2= 1 = 1 + 2 0 - 3= 0 = -1 - Y**Butterflies in S encoding**S encoding 0 0 + + 0= 0 = -1 -4 -2 - 1= 1 = 1 + 0 0 - 2= 1 = -1 + -2 0 - 3= 0 = 1 - Y’**Butterflies in S encoding**S encoding -2 -4 + + 0 = -1 0 0 - 1 = -1 + 0 -2 - 2 = -1 + 0 0 - 3 = -1 - Constant 1**Butterflies in S encoding**S encoding 2 4 + + 0= 0 = 1 0 0 - 1= 1 = 1 + 0 2 - 2= 1 = 1 + 0 0 - 3= 0 = 1 - Constant 0**Butterflies in R encoding**R encoding 2 0 + + 0= 0 0 0 - 1= 0 + 0 2 - 2= 0 + 0 0 - 3= 0 - Constant 0**Butterflies in R encoding**R encoding 2 4 + + 0= 1 0 0 - 1= 1 + 0 2 - 2= 1 + 0 0 - 3= 1 - Constant 1**Butterflies in R encoding**R encoding 1 2 + + 0= 0 0 -1 - 1= 1 + 0 1 - 2= 1 + 1 -2 - 3= 0 - XOR**Butterflies in R encoding**R encoding 1 2 + + 0= 1 0 1 - 1= 0 + 0 1 - 2= 0 + -1 2 - 3= 1 - XNOR**Butterflies in R encoding**R encoding 1 3 + + 0= 0 -1 -1 - 1= 1 + -1 2 - 2= 1 + 0 -1 - 3= 1 - X OR Y**Butterflies in S encoding**S encoding 0 -2 + + 0= 1 2 2 - 1= -1 + 2 -2 - 2= -1 + 0 2 - 3= -1 - X OR Y**Butterflies in S encoding**S encoding -2 -2 + + 0= -1 2 0 - 1= -1 + -2 0 - 2= 1 + 2 -2 - 3= -1 - X’ OR Y Y X 1 1 1**si = 2 * (a + d) - 2n, when i ≠ 0.**X Y 0 1 a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; 0 1 1 1 d -- the number of false minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 0 a = 2, d = 2, n =2 s2 = 2 * (a + d) - 2n = 2(1+1)– 4 = 0**si = 2 * (a + d) - 2n, when i ≠ 0.**X Y 0 1 a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; 0 1 1 1 d -- the number of false minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 0 a = 2, d = 2, n =2 s1 = 2 * (a + d) - 2n = 2(1+1)– 4 = 0**Since each standard function has the same number of true**and false minterms that is equal to 2n-1, then we can have alternative definitions of spectral coefficients. • Please note that only for the spectral coefficient s0, is the above rule not valid and the appropriate standard function is a tautology, • i.e. the logical function that is true for all its minterms. • Thus, we have: a + b = c + d = 2n-1 and si = 2 *(c + b) - 2n**or**si = 2 * (a + d) - 2n = 2 * (a + 2n-1 - c) - 2n or si = 2 * (a + d) - 2n = 2 * (a + d) - (a + b + c + d) = (a + d) - (b + c), when i ≠ 0. and s0 = 2n – 2 * a = a + b + c + d – 2 * a = b + c + d - a = b - a, since for s0, c and d are always equal to 0.**The spectral coefficients for incompletely specified Boolean**function, having n variables, can be defined in the following way: s0 = 2n – 2 * a - e and si = 2 * (a + d) + e - 2n, when i ≠ 0. As we can see, for the case when e = 0, i.e. for completely specified Boolean function, the above formulas reduce to the formulas presented previously.**All but S0 coefficients**And again, by easy mathematical transformations, we can define all but s0 spectral coefficients in the following way: si = 2 * (a +d) + e - 2n = 2 * (a+d) + e - (a+b+c+d+e) = (a+d) - (b+c),when i≠ 0**s0 spectral coefficient**Simultaneously, the s0 spectral coefficient can be rewritten in the following way: s0 = 2n - 2*a – e = a+b+c+d+e - 2*a – e = b+c+d-a = b - a,since for s0, c and d are alwaysequal to 0.**Thus, in the final formulas, describing all spectral**coefficients, the number of don't care minterms e can be eliminated from them. • Moreover, the final formulas are exactly the same as the ones for completely specified Boolean function. • Of course, it does not mean, that the spectral coefficients for incompletely specified Boolean function do not depend on the number of don't care minterms. • They do depend on those numbers, but the problem is already taken into account in the last two formulas themselves. • Simply, the previously stated formula for the numbers a, b, c, d, and e bonds all these values together.**Properties of Transform Matrices**• The transform matrix is complete and orthogonal, and therefore, there is no information lost in the spectrum S, concerning the minterms in Boolean function F. • Only the Hadamard-Walsh matrix has the recursive Kroneckerproduct structure • and for this reason is preferred over other possible variants of Walsh transform known in the literature as Walsh-Kaczmarz, Rademacher-Walsh, and Walsh-Paley transforms. • Only the Rademacher-Walsh transform is not symmetric; • all other variants of Walsh transform are symmetric, • so that, disregarding a scaling factor, the same matrix can be used for both the forward and inverse transform operations.**Properties of Transform Matrices**• When the classical matrix multiplication method is used to generate the spectral coefficients for different Walsh transforms, then the only difference is the order in which particular coefficients are created. • The values of all these coefficients are the same for every Walsh transform. • Each spectral coefficient sI gives a correlation value between the function F and a standard trivial function eIcorresponding to this coefficient. • The standard trivial functions for the spectral coefficients are, respectively, • for the coefficient s0 ( dc coefficient ) - the universe of the Boolean function denoted by e0, • for the coefficient si ( first order coefficient ) – the variable xi of the Boolean function denoted by ei,**Properties of Transform Matrices cont**• for the coefficient sij ( second order coefficient ) - the exclusive-or function between variables xi and xj of the Boolean function denoted by eij, • for the coefficient sijk ( third order coefficient ) - the exclusive-or function between variables xi, xj, and xk of the Boolean function denoted by eijk, etc.**Properties of Transform Matrices**• The sum of all spectral coefficients sIof spectrum S for any completely specified Boolean function is 2n. • The sum of all spectral coefficients sI of spectrum S for any incompletely specified Boolean function is not 2n.**Properties of Transform Matrices**• The maximum value of any individual spectral coefficient sI in spectrum S is 2n. • This happens when the Boolean function is equal to either a standard trivial function eI ( sign + ) or to its complement ( sign - ). • In either case, all the remaining spectral coefficients have zero values because of the orthogonality of the transform matrix T. • Each but e0 standard trivial function eI corresponding to n variable Boolean function has the same number of true and false minterms equal to 2n-1.**Properties of Transform Matrices**S encoding -2 • The spectrum S of each true minterm of n variable Boolean function is given by s0 = 2n - 2, and all remaining 2n - 1 spectral coefficients sI are equal to 2. 0 0 + + + m0= -1 0 0 0 - m1= -1 + + -4 - 8 2 - + m2= 1 + 0 0 0 - m3= 1 + - -2 0 0 + + m4= -1 - 0 0 0 - - m5= -1 + 0 -4 2 - - m6= 1 + 0 0 0 - - m7= 1 -**Properties of Transform Matrices**S encoding 6 = 23 - 2 0 • The spectrum S of each true minterm of n variable Boolean function is given by s0 = 2n - 2, and all remaining 2n - 1 spectral coefficients sI are equal to 2. 2 + + + m0= -1 - 2 -2 -2 - m1= 1 + + - 2 -2 2 - + m2= 1 + - 2 0 -2 - m3= 1 + - 2 - 2 4 + + m4= 1 - - 2 0 0 - - m5= 1 + - 2 0 2 - - m6= 1 + - 2 0 0 - - m7= 1 -**Properties of Transform Matrices**• The spectrum S of each true minterm of n variable Boolean function is given by s0 = 2n - 2, and all remaining 2n - 1 spectral coefficients sI are equal to 2. • The spectrum S of each don't care minterm of n variable Boolean function is given by s0 = 2n - 1, • and all remaining 2n - 1 spectral coefficients sI are equal to 1. • The spectrum S of each false minterm of n variable Boolean function is given by sI = 0.**What we achieved?**• 1. If the function is known to be linear or affine, by measuring once we can distinguish which one is the linear function in the box. We cannot distinguish a linear function from its negation. They differ by sign that is lost in measurement. • 2. If function is a constant (zero for satisfiability and one for tautology) we can find with high probability that it is constant. • Thus we can solve SAT with high probability but without knowing which input minterm satisfies. (a single one in a Kmap of zeros) • Thus we can solve Tautology with high probability but without knowing which input minterm fails (a single zero in kmap of ones).**What we achieved?**• 3. We can find the highest spectral coefficients by generating them randomly. • In terms of signals and images it gives the basic harmonics or patterns in signal, such as textures. • 4. Instead of using Hadamard gates in the transform we can use V to find a separation of some Boolean functions. • But we were not able to extend this to more variables.**What we achieved?**• 5. Knowing some high coefficients, we can calculate their values exactly, one run (measurement) for each spectral coefficient.**Symbols**0 0 0 0 • 1 • 1 1 • a -- the number of true minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 1; • b -- the number of false minterms of Boolean function F, where the function F has the logical value 0 and the standard trivial function has the logical value 1; • c -- the number of true minterms of Boolean function F, where the function F has the logical value 1 and the standard trivial function has the logical value 0; • d -- the number of false minterms of Boolean function F, where both the function F and the standard trivial function have the logical values 0, and e be the number of don't care minterms of Boolean function F. 0 0 0 0 • 1 • 1 1 a=8 b=0 c=0 d=8**si = 2 * (a + d) - 2n =**2 * (a + d) - (a + b + c + d) = (a + d) - (b + c), when i ≠ 0. 0 0 0 0 • 1 • 1 1 si = (a + d) - (b + c) = 16 0 0 0 0 • 1 • 1 1 b=0 a=8 c=0 d=8**si = 2 * (a + d) - 2n =**2 * (a + d) - (a + b + c + d) = (a + d) - (b + c), when i ≠ 0. 0 0 0 0 • 1 • 1 1 si = (a + d) - (b + c) = 16 0 0 0 0 • 0 • 1 1 Ones inside zeros inside Ones outside Zeros outside b=1 a=7 c=0 d=8 (7+8 ) - (1+0) = 14**si = 2 * (a + d) - 2n =**2 * (a + d) - (a + b + c + d) = (a + d) - (b + c), when i ≠ 0. • 1 • 1 1 0 0 0 0 si = (a + d) - (b + c) = -16 0 0 0 0 • 1 • 1 1 b=8 a=0 c=8 d=0**si = 2 * (a + d) - 2n =**2 * (a + d) - (a + b + c + d) = (a + d) - (b + c), when i ≠ 0. • 1 • 1 1 0 0 0 0 si = (a + d) - (b + c) = 0 • 1 • 1 1 0 0 0 0 b=4 a=4 c=4 d=4