1

Improving the Goertzel–Blahut algorithm: An example Sergei Valentinovich Fedorenko

In this preprint, we present an example illustrating the novel method for the discrete Fourier transform (DFT) computation based on the Goertzel–Blahut algorithm introduced in the paper “Improving the Goertzel–Blahut algorithm” (IEEE Signal Processing Letters, vol. 23, no. 6, pp. 824–827, 2016). E XAMPLE Consider the DFT of length n = 15 over the field GF (24 ). The finite field GF (24 ) is defined by an element α, which is a root of the primitive polynomial x4 + x + 1. Let us take the primitive element α as a transform kernel. The binary conjugacy classes of GF (2m ) are (α0 ), (α1 , α2 , α4 , α8 ), (α3 , α6 , α12 , α9 ), (α7 , α14 , α13 , α11 ), (α5 , α10 ). A. Goertzel–Blahut algorithm The first step of the Goertzel–Blahut algorithm is f (x) f (x) f (x) f (x) f (x) where

= = = = =

(x + 1)q0 (x) (x + x + 1)q1 (x) (x4 + x3 + x2 + x + 1)q2 (x) (x4 + x3 + 1)q3 (x) (x2 + x + 1)q4 (x) 4

r0,0 r0,1 r1,1 r2,1 r3,1 r0,2 r1,2 r2,2 r3,2 r0,3 r1,3 r2,3 r3,3 r0,4 r1,4

= = = = = = = = = = = = = = =

∑14

+r0 (x), +r1 (x), +r2 (x), +r3 (x), +r4 (x),

r0 (x) r1 (x) r2 (x) r3 (x) r4 (x)

= = = = =

3

2

r3,1 x + r2,1 x + r1,1 x r3,2 x3 + r2,2 x2 + r1,2 x r3,3 x3 + r2,3 x2 + r1,3 x r1,4 x

i=0 fi f0 + f4 + f7 + f8 + f10 + f12 + f13 + f14 f1 + f4 + f5 + f7 + f9 + f10 + f11 + f12 f2 + f5 + f6 + f8 + f10 + f11 + f12 + f13 f3 + f6 + f7 + f9 + f11 + f12 + f13 + f14 f0 + f4 + f5 + f9 + f10 + f14 f1 + f4 + f6 + f9 + f11 + f14 f2 + f4 + f7 + f9 + f12 + f14 f3 + f4 + f8 + f9 + f13 + f14 f0 + f4 + f5 + f6 + f7 + f9 + f11 + f12 f1 + f5 + f6 + f7 + f8 + f10 + f12 + f13 f2 + f6 + f7 + f8 + f9 + f11 + f13 + f14 f3 + f4 + f5 + f6 + f8 + f10 + f11 + f14 f0 + f2 + f3 + f5 + f6 + f8 + f9 + f11 + f12 + f14 f1 + f2 + f4 + f5 + f7 + f8 + f10 + f11 + f13 + f14 .

+ + + +

r0,0 r0,1 r0,2 , r0,3 r0,4

2

The second step of the Goertzel–Blahut algorithm is F0 F1 F2 F4 F8 F3 F6 F12 F9 F7 F14 F13 F11 F5 F10

= = = = = = = = = = = = = = =

f (α0 ) f (α1 ) f (α2 ) f (α4 ) f (α8 ) f (α3 ) f (α6 ) f (α12 ) f (α9 ) f (α7 ) f (α14 ) f (α13 ) f (α11 ) f (α5 ) f (α10 )

= = = = = = = = = = = = = = =

r0,0 r1 (α1 ) r1 (α2 ) r1 (α4 ) r1 (α8 ) r2 (α3 ) r2 (α6 ) r2 (α12 ) r2 (α9 ) r3 (α7 ) r3 (α14 ) r3 (α13 ) r3 (α11 ) r4 (α5 ) r4 (α10 )

= = = = = = = = = = = = = =

r3,1 α3 + r2,1 α2 + r1,1 α1 + r0,1 r3,1 α6 + r2,1 α4 + r1,1 α2 + r0,1 r3,1 α12 + r2,1 α8 + r1,1 α4 + r0,1 r3,1 α9 + r2,1 α1 + r1,1 α8 + r0,1 r3,2 α9 + r2,2 α6 + r1,2 α3 + r0,2 r3,2 α3 + r2,2 α12 + r1,2 α6 + r0,2 r3,2 α6 + r2,2 α9 + r1,2 α12 + r0,2 r3,2 α12 + r2,2 α3 + r1,2 α9 + r0,2 r3,3 α6 + r2,3 α14 + r1,3 α7 + r0,3 r3,3 α12 + r2,3 α13 + r1,3 α14 + r0,3 r3,3 α9 + r2,3 α11 + r1,3 α13 + r0,3 r3,3 α3 + r2,3 α7 + r1,3 α11 + r0,3 r1,4 α5 + r0,4 r1,4 α10 + r0,4

or F0 = (1) (r0,0 ) = V0 (r0,0 ), 

















F1 F    2   =  F4   F8 F3 F    6   = F12   F9 F7 F    14    = F13   F11 (

)



1 1 1 1

α1 α2 α4 α8

α2 α4 α8 α1

1 1 1 1

α3 α6 α12 α9

α6 α12 α9 α3

α9 α3 α6 α12

1 1 1 1

α7 α14 α13 α11

α14 α13 α11 α7

α6 α12 α9 α3

F5 = F10

(

1 α5 1 α10

α3 α6 α12 α9

)(







r0,1 r0,1  r  r    1,1   1,1    = V1  ,  r2,1  r2,1  r3,1 r3,1 















r0,2 r0,2  r  r    1,2   1,2    = V2  ,  r2,2  r2,2  r3,2 r3,2 r0,3 r0,3  r  r    1,3   1,3    = V3  ,  r2,3  r2,3  r3,3 r3,3 )

(

)

r0,4 r = V4 0,4 . r1,4 r1,4

3

The Goertzel–Blahut algorithm in matrix form is πF = VRf or







α0 F0      F1       F2      F    4      F8       F3      F    6    F12  =       F9      F    7     F14      F13      F    11       F5  F10                 ×              



α0 α0 α0 α0

α1 α2 α4 α8

α2 α4 α8 α1

α3 α6 α12 α9 α0 α0 α0 α0

α3 α6 α12 α9

α6 α12 α9 α3

α9 α3 α6 α12 α0 α0 α0 α0

α7 α14 α13 α11

α14 α13 α11 α7

α6 α12 α9 α3 α0 α0





1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 f0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1   f1      0 1 0 0 1 1 0 1 0 1 1 1 1 0 0   f2      0 0 1 0 0 1 1 0 1 0 1 1 1 1 0  f  3   0 0 0 1 0 0 1 1 0 1 0 1 1 1 1   f4    f  1 0 0 0 1 1 0 0 0 1 1 0 0 0 1  5    0 1 0 0 1 0 1 0 0 1 0 1 0 0 1  f    6 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1  f7   .    0 0 0 1 1 0 0 0 1 1 0 0 0 1 1   f8      f 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0   9   f10  0 1 0 0 0 1 1 1 1 0 1 0 1 1 0     f  0 0 1 0 0 0 1 1 1 1 0 1 0 1 1  11     f12  0 0 0 1 1 1 1 0 1 0 1 1 0 0 1     1 0 1 1 0 1 1 0 1 1 0 1 1 0 1  f13  f14 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1

α5 α10

                             

4

B. Novel method based on the Goertzel–Blahut algorithm The Moore–Vandermonde matrix V1 factorization [13] is 

α1 α2 α4 α8

1 1 1 1

  

V1 =     

×

1 1 0 0    

=

α2 α4 α8 α1

α3 α6 α12 α9

α5 α10 0 0

0 0 1 1

0 0 α5 α10

α0 α0 α0 α0

α5 α10 α5 α10





1 0 1 0

    =   

1 0 0 0

   

α1 α2 α4 α8

0 0 1 0



α6 α12 α9 α3

0 0 1 0

0 1 0 1

   

0 1 0 0

0 0 0 1

0 0 0 1

1 0 0 0

0 0 1 0

    

    

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 0

α 0 1 0

0 1 0 0

0 1 0 0

0 1 1 0

0 1 1 1

0 α2 0 1

    

    

    = S1 P 1 , 

where P1 is the matrix of preadditions. From Lemma 1 [SPL16] it follows that V0 V1 V2 V3

= = = V1 N2,1 = = V1 N3,1 =

1 S1 P1 , S1 P1 N2,1 S1 P1 N3,1

where N2,1 and N3,1 are the basis transformation matrices:    

N2,1 = 

1 0 0 0

0 0 0 1

0 0 1 1

0 1 0 1





  , 

  

N3,1 = 

1 0 0 0

1 1 0 1

The Moore–Vandermonde matrix V4 factorization is very simple: (

1 α5 1 α10

V4 = Further, we obtain

    V =  

)

(

=

1 0 1 1

)(

1 α5 0 1

1 0 0 1

0 0 1 1

   . 

)

.



V0

     

V1 V2 V3 V4

    =  



1



1

     

S1 S1 S1 V4



1

     

P1 P1 P1

    = SP N,  

I4 N2,1

I2

where I2 is the 2 × 2 identity matrix and I4 is the 4 × 4 identity matrix.

N3,1 I2

5

In matrix form, the DFT algorithm can be written as π F = V R f = S(P N R) f or







α0 F0      F1       F2      F    4      F8       F3      F    6    F12  =       F9      F    7     F14      F13      F    11       F5  F10                ×              



α0 α0 α0 α0

α5 α10 α5 α10

α1 α2 α4 α8

α6 α12 α9 α3 α0 α0 α0 α0

α5 α10 α5 α10

α1 α2 α4 α8

α6 α12 α9 α3 α0 α0 α0 α0

α5 α10 α5 α10

α1 α2 α4 α8

α6 α12 α9 α3 α0 α0

1 1 0 0 0 1 0 0 0 1 0 0 0 1 0

1 0 0 1 0 0 1 1 1 1 1 0 1 0 1

1 0 1 1 0 0 0 0 1 1 1 1 1 1 1

1 0 1 1 1 0 1 0 1 0 0 0 1 1 0

1 1 0 1 0 1 0 1 1 1 0 0 1 0 1

1 0 1 0 0 1 0 0 0 0 1 0 0 1 1

1 0 0 0 1 0 1 1 1 1 0 1 1 1 0

1 1 1 0 1 0 0 0 1 1 0 1 0 0 1

1 1 1 1 0 0 1 0 1 0 0 1 1 1 1

1 0 1 0 1 1 0 1 1 0 1 1 1 1 0

1 1 1 0 0 1 0 0 0 1 1 0 0 0 1

1 0 0 1 1 0 1 1 1 0 1 1 0 1 1

1 1 0 1 1 0 0 0 1 0 1 0 1 1 0

1 1 0 0 1 0 1 0 1 0 0 1 0 0 1

1 1 1 1 1 1 0 1 1 1 1 1 0 1 1



α5 α10

                             



f0 f   1      f2      f3      f4    f   5      f6      f7  .   f   8      f9     f10     f    11     f12     f13  f14

C. Complexity of the 15-point DFT computation The novel method of the 15-point DFT computation based on the Goertzel–Blahut algorithm consists of two steps: 1) multiplication of the binary matrix P N R by the vector f (using the heuristic algorithm [19]): 44 additions; 2a) triple multiplication by the matrix S1 : 3 × 4 = 12 multiplications and 3 × 8 = 24 additions; 2b) multiplication by the matrix V4 : 1 multiplication and 2 additions. The complexity of this method is 13 multiplications and 70 additions. The complexity of several methods of the 15-point DFT computation is shown in Table II.

6

TABLE II C OMPLEXITY OF THE 15- POINT DFT COMPUTATION method

multiplications

additions

16

77

subexpression elimination algorithm [7]

16

74

Novel method [SPL16]

13

70

Cyclotomic algorithm [18] Cyclotomic algorithm with common

R EFERENCES [SPL16] S. V. Fedorenko, “Improving the Goertzel–Blahut algorithm,” IEEE Signal Processing Letters, vol. 23, no. 6, pp. 824–827, 2016. [7] N. Chen and Z. Yan, “Cyclotomic FFTs with reduced additive complexities based on a novel common subexpression elimination algorithm,” IEEE Transactions on Signal Processing, vol. 57, no. 3, pp. 1010–1020, 2009. [13] S. V. Fedorenko, “Normalized cyclic convolution: The case of even length,” IEEE Transactions on Signal Processing, vol. 63, no. 20, pp. 5307–5317, 2015. [18] P. V. Trifonov and S. V. Fedorenko, “A method for fast computation of the Fourier transform over a finite field,” Problems of Information Transmission, vol. 39, no. 3, pp. 231–238, 2003. Translation of Problemy Peredachi Informatsii. [19] P. Trifonov, “Matrix-vector multiplication via erasure decoding,” Proceedings of the XI international symposium on problems of redundancy in information and control systems at St.Petersburg, Russia, pp. 104–108, July 2007. [Online]. Available: http://dcn.ftk.spbstu.ru/∼petert/papers/mo.pdf

Improving the Goertzel–Blahut algorithm: An example

Let us take the primitive element α as a transform kernel. The binary conjugacy classes of GF(2m) are (α0), (α1,α2,α4,α8), (α3,α6,α12,α9),. (α7,α14,α13,α11), (α5,α10). A. Goertzel–Blahut algorithm. The first step of the Goertzel–Blahut algorithm is f(x) = (x + 1)q0(x) +r0(x), r0(x) = r0,0 f(x) = (x4 + x + 1)q1(x) +r1(x), r1(x) = r3,1x3 ...

36KB Sizes 0 Downloads 38 Views

Recommend Documents

An algorithm for improving Non-Local Means operators ...
number of an invertible matrix X (with respect to the spectral norm), that is ...... Cutoff (ω). PSNR Gain (dB) barbara boat clown couple couple_2 hill house lake lena .... dynamic range of 0 to 0.2, corresponding to blue (dark) to red (bright) colo

03_3 - Shortest Path Problems - Dijkstra's Algorithm - An Example ...
03_3 - Shortest Path Problems - Dijkstra's Algorithm - An Example.pdf. 03_3 - Shortest Path Problems - Dijkstra's Algorithm - An Example.pdf. Open. Extract.

Improving Categorical Data Clustering Algorithm by ...
categorical data clustering by giving greater weight to uncommon attribute value ..... Chang, C., Ding, Z.: Categorical Data Visualization and Clustering Using ... Huang, Z.: Extensions to the k-Means Algorithm for Clustering Large Data Sets.

An Improved Algorithm for the Solution of the ...
tine that deals with duplicate data points, a routine that guards against ... numerical algorithm has been tested on several data sets with duplicate points and ...

An Evolutionary Algorithm for Homogeneous ...
fitness and the similarity between heterogeneous formed groups that is called .... the second way that is named as heterogeneous, students with different ...

An Example Checklist for ScrumMasters - The Scrum Master Checklist
Sep 14, 2007 - get by with part time attention to this role. The team will probably still exceed the ... If you're using an automated tool for backlog management, does everyone know how to use it easily? Automated management tools ... Consider your p

An improved Incremental Delaunay Triangulation Algorithm
Abstract: The incremental insertion algorithm of. Delaunay triangulation in 2D is very popular due to its simplicity and stability. We briefly discuss.

An Adaptive Fusion Algorithm for Spam Detection
An email spam is defined as an unsolicited ... to filter harmful information, for example, false information in email .... with the champion solutions of the cor-.

An Adaptive Strategy for Improving the Performance of ...
Performance of Genetic Programming-based. Approaches to Evolutionary ... Evolutionary Testing, Search-Based Software Engineering,. Genetic Programming ...

An Adaptive Strategy for Improving the Performance of ...
Software testing is an ... software testing. Evolutionary Testing. Evolutionary. Algorithms. +. Software ... Let the constraint selection ranking of constraint c in.

An Algorithm for Implicit Interpolation
More precisely, we consider the following implicit interpolation problem: Problem 1 ... mined by the sequence F1,...,Fn and such that the degree of the interpolants is at most n(d − 1), ...... Progress in Theoretical Computer Science. Birkhäuser .

An Algorithm for Implicit Interpolation
most n(d − 1), where d is an upper bound for the degrees of F1,...,Fn. Thus, al- though our space is ... number of arithmetic operations required to evaluate F1,...,Fn and F, and δ is the number of ...... Progress in Theoretical Computer Science.

An Adaptive Fusion Algorithm for Spam Detection
adaptive fusion algorithm for spam detection offers a general content- based approach. The method can be applied to non-email spam detection tasks with little ..... Table 2. The (1-AUC) percent scores of our adaptive fusion algorithm AFSD and other f

An Algorithm for Nudity Detection
importance of skin detection in computer vision several studies have been made on the behavior of skin chromaticity at different color spaces. Many studies such as those by Yang and Waibel (1996) and Graf et al. (1996) indicate that skin tones differ

Improving English Pronunciation: An Automated ... - Semantic Scholar
have set up call centers in India, where telephone operators take orders for American goods from. American customers, who are unaware that the conversation ...

An Implementation of a Backtracking Algorithm for the ...
sequencing as the Partial Digest Problem (PDP). The exact computational ... gorithm presented by Rosenblatt and Seymour in [8], and a backtracking algorithm ...

The measurement of disaster risk: An example from ...
In 2013, Typhoon Haiyan left a staggering trail of 6,092 deaths, while in 2012 and in 2011, Typhoon Bopha and Tropical Storm (TS) Washi claimed 1,248 and 1,258 lives, respectively (National Disaster Risk Reduction & Management Council. [NDRRMC], 2014

Heterogeneous Agent Macroeconomics: An Example and an ... - GitHub
Keynesian multipliers should be big in liquidity trap. Crude Keynesianism: .... Calibrate income process to match macro and micro data. 2. Calibrate other ...

An O∗ (1.84k) Parameterized Algorithm for the ...
basic formulation is to find a 2-partition that separates a source vertex s from a target vertex t .... So we leave it open for a parameterized algorithm for ..... Discrete Mathematics and Theoretical Computer Science 5 (1991) 105–120. 8. Cygan, M.

An Efficient Algorithm Involving the Canonical ...
unified reasoning based on Pontryagin's Maximum Principle. (PMP) and Optimal Control Theory. Finally, on the basis of these different works completed by a geometric study, the. This work was supported by Doctoral Fund of Ministry of Education of. Chi

An Efficient Algorithm Involving the Canonical ...
tation and reasoning results of some examples and a Matlab program which can produce the ...... which is guaranteed to be optimal, we can claim that our algorithm is complete, i.e. .... Optimal Control, Technical Report SYNCON 91-10, Dept˙of Mathema

mouse anxiety models and an example of an ...
with a minimum of handling stress and a maximum of standardization. To ... Anxiety Disorders," a study commissioned by the ADAA, based on data gathered.

An algorithm for solving the open gallery problem
ABSTRACT. Given a polygon and a desired number of guards resulting after performing an reflex vertex straddling (RVS) deploy- ment or a polygonal ...

An Online Algorithm for Finding the Longest Previous ...
1 Department of Computer Science, University of Tokyo. Hongo 7-3-1, Bunkyo-ku, Tokyo 113-0013, Japan [email protected]. 2 Department of Computer ...