PROJECTION ALGORITHMS FOR DISCRETE FOURIER TRANSFORM TWIDDLE FACTORS GENERATION

Information

  • Patent Application
  • 20220334839
  • Publication Number
    20220334839
  • Date Filed
    March 30, 2021
    3 years ago
  • Date Published
    October 20, 2022
    a year ago
Abstract
The present invention is related to Discrete Fourier Transform (DFT) Twiddle Factors (TFs) generation algorithms. It presents New Projection Algorithms (NPAs) to generate any required TF of the DFT matrix by providing only a small stored portion of the TFs that are stored in a Memory Storage (MS). The present invention presents how to exploit the existence of symmetries and the existence of similarities among the TFs of the DFT matrix to construct a methodology of operation to be able to formulate the NPAs. The use of the NPAs will avoid the need of retrieving that required TF from pre-saved lookup tables of the DFT matrix and also will avoid the need to calculate it with slow complicated algorithms like CORDIC as used by prior arts.
Description
FIELD OF THE INVENTION

The present invention is related to Discrete Fourier Transform (DFT) Twiddle Factors (TFs) generation algorithms.


Preferred embodiments of the present invention deal with DFT TFs generation algorithms, more particularly with DFT TFs New Projection Algorithms (NPAs) and methods for generating any Twiddle Factor (TF) of the DFT matrix.


BACKGROUND OF THE INVENTION

In conventional systems, all TFs of the DFT matrix should be pre-calculated and stored in a Memory Storage (MS) as lookup tables.


Storing all TFs requires large hardware MS space requirements that consumes extra power to maintain their stored values.


Another approach to generate the DFT matrix is by calculating the needed TFs using complicated algorithms like COordinate Rotation DIgital Computer (CORDIC). These algorithms consume time and require heavy calculations.


Using the proposed DFT TFs NPAs will eliminate the need to store the complete lookup tables for all TFs, hence; increasing the efficiency from the MS requirements perspective. Also, they eliminate the need for using slow complicated algorithms like CORDIC.


The DFT TFs NPAs of the present invention will generate any required TF of the DFT matrix.


The need to retrieve the required TF from pre-saved lookup tables of the DFT matrix is avoided; hence, avoiding the need to calculate it with slow complicated algorithms like CORDIC as implemented by prior arts.


In order to get the maximum performance of the DFT TFs NPAs of the present invention, it is preferred to be implemented using Field Programmable Gate Arrays (FPGA), parallel architecture Application Specific Integrated Circuit (ASIC) and/or other platforms having the capability of actual parallel processing for real time applications.


The DFT TFs NPAs of the present invention are very efficient due to their low hardware requirements, high speed and low power consumption.


Such efficiency is vital for real time computation of the DFT with massive number of samples to be transformed from time domain to frequency domain.


The present invention addresses these needs.


SUMMARY OF THE INVENTION

The object of the present invention is to overcome the above disadvantages and to provide DFT TFs NPAs.


The NPAs are very efficient due to their low MS requirements, high speed and low power consumption.


Such efficiency is vital for real time DFT applications for massive number of samples transformation from time domain to frequency domain.


The thorough exploitation of the TFs symmetries and similarities is the backbone concept of the operation of the present invention.


The present invention presents how to exploit these symmetries and similarities to construct a methodology of operation to be able to formulate the NPAs. The NPAs will generate any required TF of the DFT without the need to retrieve that TF from pre-saved lookup tables of the DFT matrix. Also, will avoid the need to calculate it with slow complicated algorithms like CORDIC as used by prior arts.


The NPAs of the present invention will generate the required TF of the DFT matrix by providing only a small stored portion of the TFs that is stored in an MS.


In the present invention, N denotes the number of samples in the time domain to be transformed to frequency domain using DFT.


In Embodiment-1 (EMB-1) of FIG. 1 of the present invention, one Projection Equation (PE) and its New Projection Algorithm (NPA) (NPA-1) are presented.


It requires only N stored TFs in an MS to generate any required TF of the DFT matrix. The NPA-1 works for any odd or even value of N. The NPA-1 will reduce the MS requirements by a factor of








(

1
-

1
N


)

×
100

%





N


ρ
1




=


{



+

,

(

2
×


+


)


}

.



+






is the positive natural numbers {1, 2, 3, . . . }.


In Embodiment-2 (EMB-2) of FIG. 2 of the present invention, two Projection Equations (PEs) and their NPA (NPA-2) are presented.


The NPA-2 requires






(




N
2



+
1

)




stored TFs in an MS to generate any required TF of the DFT matrix. The NPA-2 works for any odd or even value of N. The NPA-2 will reduce the MS requirements by a factor of







(

1
-


(




N
2



+
1

)


N
2



)

×
100

%




N



ρ
1

.







In Embodiment-3 (EMB-3) of FIG. 3 of the present invention, five PEs and their related NPA (NPA-3) are presented.


The NPA-3 requires only






(


N
2

+
1

)




stored TFs in an MS to generate any required TF of the DFT matrix. The NPA-3 works only for even values of N. The NPA-3 will reduce the MS requirements by a factor of








(

1
-


(


N
2

+
1

)


N
2



)

×
100

%




N


ρ
2




=


{

2
×


+


}

.





In Embodiment-4 (EMB-4) of FIG. 4 of the present invention, six PEs and their NPA (NPA-4) are presented.


The NPA-4 requires only






(




N
4



+
1

)




stored TFs in an MS to generate any required TF of the DFT matrix. The NPA-4 works only for even values of N. The NPA-4 will reduce the MS requirements by a factor of







(

1
-


(




N
4



+
1

)


N
2



)

×
100

%




N



ρ
2

.







The present invention can be implemented using the powerful capabilities of the actual parallel processing platforms like FPGA, ASIC and/or other platforms. Using such platforms employ the strength of actual parallel processing computation for real time applications.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is the schematic block diagram of operation of EMB-1 of the present invention.



FIG. 2 is the schematic block diagram of operation of EMB-2 of the present invention.



FIG. 3 is the schematic block diagram of operation of EMB-3 of the present invention.



FIG. 4 is the schematic block diagram of operation of EMB-4 of the present invention.



FIG. 5 is the flowchart diagram of the NPA-1 of EMB-1 of the present invention.



FIG. 6 is the flowchart diagram of the NPA-2 of EMB-2 of the present invention.



FIG. 7 is the flowchart diagram of the NPA-3 of EMB-3 of the present invention.



FIG. 8 is the flowchart diagram of the NPA-4 of EMB-4 of the present invention.



FIG. 9 is the simulated comparison result plot of the Minimum Number of Required TFs (MNRTF) computations (logarithmic scale) versus the number of points N (logarithmic scale) for the NPA-1 of EMB-1, the NPA-2 of EMB-2, the NPA-3 of EMB-3, the NPA-4 of EMB-4 of the present invention and the DFT.



FIG. 10 is the simulated comparison result plot of the MNRTF computations (logarithmic scale) versus the number of points N (linear scale) for the NPA-1 of EMB-1, the NPA-2 of EMB-2, the NPA-3 of EMB-3, the NPA-4 of EMB-4 of the present invention and the DFT.



FIG. 11 is the simulated comparison result plot of the Twiddles Percentage Ratio (TPR) of the MNRTF computations (logarithmic scale) versus the number of points N (logarithmic scale) for the NPA-1 of EMB-1, the NPA-2 of EMB-2, the NPA-3 of EMB-3, the NPA-4 of EMB-4 of the present invention and the DFT.



FIG. 12 is the simulated comparison result plot of the TPR of the MNRTF computations (logarithmic scale) versus the number of points N (linear scale) for the NPA-1 of EMB-1, the NPA-2 of EMB-2, the NPA-3 of EMB-3, the NPA-4 of EMB-4 of the present invention and the DFT.



FIG. 13 is the simulated comparison result plot of the Percentage Memory Reduction Ratio (PMRR) computations (linear scale) versus the number of points N (logarithmic scale) for the NPA-1 of EMB-1, the NPA-2 of EMB-2, the NPA-3 of EMB-3, the NPA-4 of EMB-4 of the present invention and the DFT.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The N complex valued numbers, generated by the DFT for the time-sampled signal xn, are shown in Eq.(1).











X
k

=





n
=
0


N
-
1




X
n

×

e

(



-

j

2








π
×

(

n
×
k

)


N

)




=




n
=
0


N
-
1





X
n

×

W
N

(

n
×
k

)











n

,


k

ψ

=


{

0
,
1
,
2
,


,


(

N



1

)


}





N


ρ
1







X
k




,


x
n









(
1
)







The N complex valued numbers generated by the Inverse DFT (IDFT) for the frequency-sampled Xk are shown in Eq.(2).











X
n

=





k
=
0


N
-
1




X
k

×

e

(



j

2


π
×

(

n
×
k

)


N

)




=




k
=
0


N
-
1





X
k

×

W
N

(

-

(

n
×
k

)


)











n

,


k

ψ





N


ρ
1







X
k



,


x
n









(
2
)







where:


Xk are the frequency harmonics.


xn are the signal time samples.


k is the index in the frequency domain.


n is the index in the time domain.



custom-character is a complex number.


j=√{square root over (−1)}.


Equation (3) presents WN, which is the principal Nth root of unity of Eq.(1) and Eq.(2).











W
N

=


e

(



-
j


2

π

N

)


=


cos



(


2

π

N

)


-

j



sin

(


2

π

N

)











N


ρ
1








W
N










(
3
)







The matrix form of Eq.(1) is shown in Eq.(4). Equation (4) shows the DFT matrix.


The compact DFT matrix form of Eq.(4) is shown in Eq.(5).











[




X
0






X
1






X
2












X

N
-
1







]

=


[




W
N

(

0
×
0

)





W
N

(

0
×
1

)





W
N

(

0
×
2

)








W
N

(

0
×

(

N
-
1

)


)







W
N

(

1
×
0

)





W
N

(

1
×
1

)





W
N

(

1
×
2

)








W
N

(

1
×

(

N
-
1

)


)







W
N

(

2
×
0

)





W
N

(

2
×
1

)





W
N

(

2
×
2

)








W
N

(

2
×

(

N
-
1

)


)
























W
N

(


(

N
-
1

)

×
0

)





W
N

(


(

N
-
1

)

×
1

)





W
N

(


(

N
-
1

)

×
2

)








W
N

(


(

N
-
1

)

×

(

N
-
1

)


)





]

×


[




x
0






x
1






x
2











x

N
-
1





]




X



,
x
,



W
N








N


ρ
1








(
4
)














[




x
0






x
1






x
2











x

N
-
1





]

=


[




W
N

(
0
)





W
N

(
0
)





W
N

(
0
)








W
N

(
0
)







W
N

(
0
)





W
N

(
1
)





W
N

(
2
)








W
N

(

N
-
1

)







W
N

(
0
)





W
N

(
2
)





W
N

(
4
)








W
N

(

2
×

(

N
-
1

)


)
























W
N

(
0
)





W
N

(


(

N
-
1

)

×
1

)





W
N

(


(

N
-
1

)

×
2

)








W
N

(


(

N
-
1

)

×

(

N
-
1

)


)





]

×


[




x
0






x
1






x
2











x

N
-
1





]




X



,
x
,



W
N








N


ρ
1








(
5
)







When an integer number A is divided by another integer number B as shown in Eq.(6), the modulo's operation result is the remainder R. The modulo operator is denoted by the custom-character symbol as presented in Eq.(7).










A
B

=

Q


and


the


remainder


is






R





(
6
)













B

(
A
)


=
R




(
7
)







Where:


A is the dividend, A ∈ custom-character={ . . . , −2, −1, 0, 1, 2, . . . }.


B is the divisor, B ∈ custom-character\{0}.


Q is the quotient, Q ∈ custom-character.


R is the remainder, R ∈ φ={0, 1, 2, . . . , (B−1)}.


Embodiment-1

In EMB-1106 of the present invention as shown in FIG. 1, we are going to find the formulation for the NPA-1101 that will enable us to generate any required TF WN(n×k) 102 of the DFT matrix.


Instead of storing the N2 TFs that are needed to calculate the DFT which require large MS requirements, only N TFs that are members of the set ζ1{WN(0), WN(1), . . . , WN(N−1)} ∀N∈ρ1{circumflex over ( )}∀WNcustom-character are needed to be stored in an MS 103.


The NPA-1101 will be used to project a specific value to the required TF WN(n×k) 102 from one of the N TFs of the ζ1 104 vector that is stored in an MS 103.


The outcome 105 of the NPA-1101 will be the projected required TF WN(n×k) 102.


The NPA-1 PE formulation is presented below.


The property shown in Eq.(8) is the PE of EMB-1 106 and it will be used to design the NPA-1.





WN(n×k)=custom-character  (8)





n,k,custom-characterN(n×k)∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


By using Eq.(8), we can project a specific value to the required TF WN(n×k) 102 from one of the N TFs of the ζ1 104 vector.


The MS arrangement of the NPA-1 is presented below.



FIG. 1 shows how the elements of the set ζ1 are pre-calculated, arranged and stored in an MS 103 to construct the ζ1 104 TFs vector.


The N elements of the ζ1 104 TFs vector are constructed according to Eq.(9).












ζ
1

[

G
1

]

=


W
N

(

G
1

)


=


cos



(



2

π

N

×

G
1


)


-

j


sin



(



2

π

N

×

G
1


)












G
1


ψ






N


ρ
1








W
N










(
9
)







The memory location index of the ζ1 104 TFs vector is G1.


The NPA-1101 is connected to the ζ1 104 TFs vector that is stored in an MS 103.


From Eq.(8) and Eq.(9), the NPA-1101 of EMB-1 106 of the present invention is realized as shown in the flowchart of FIG. 5. The operation steps of the flowchart of the NPA-1101 are presented below.


The flowchart of FIG. 5 starts at step 501; then, step 502 will read the values of n and k for the required TF WN(n×k) 102.


Step 503 will calculate the value of custom-characterN(n×k) using Eq.(7).


Step 504 will read the value of the TF stored in the memory location of index custom-characterN(n×k) of the ζ1 104 TFs vector.


According to Eq.(10), Step 505 will project and assign the value of ζ1[custom-characterN(n×k)] to the required TF WN(n×k) 102.






W
N
(n×k)1[custom-characterN(n×k)]  (10)





n,k,custom-characterN(n×k)∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


The NPA-1101 is ended at step 506.


Embodiment-2

In EMB-2 206 of the present invention as shown in FIG. 2, we are going to find the formulation for the NPA-2201 that will enable us to generate any required TF WN(n×k) 202 of the DFT matrix.


Instead of storing the N2 TFs that are needed to calculate the DFT which require large MS requirements, only






(




N
2



+
1

)




TFs that are members of the set







ζ
2

=

{


W
N

(
0
)


,

W
N

(
1
)


,


,

W
N

(



N
2



)



}





∀N∈ρ1{circumflex over ( )}∀WNcustom-character are needed to be stored in an MS 203.


The NPA-2201 will be used to project a specific value to the required TF WN(n×k) 202 from one of the






(




N
2



+
1

)




TFs of the ζ2 204 vector that is stored in an MS 203.


The outcome 205 of the NPA-2201 will be the projected required TF WN(n×k) 202.


The NPA-2201 PEs formulation is presented below.


We have the property of Eq.(11).






W
N
(−(n×k))=(WN(n×k)*=custom-character  (11)





n,k,custom-characterN(n×k)∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


From Eq.(8) and Eq.(11), we can get Eq.(12).






W
N
(n×k)=custom-character=(custom-character)*  (12)





n,k,custom-characterN(n×k)∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


Let






H

(

n
×
k

)





be defined as shown in Eq.(13).










H

(

n
×
k

)


=


1
-

(




)


=

{




1








N

(

n
×
k

)










0








N

(

n
×
k

)















β
1

=

{

0
,
1
,
2
,


,

(



N
2



)


}








β
2

=

{


(




N
2



+
1

)

,

(




N
2



+
2

)

,


,

(

N
-
1

)


}












(
13
)













n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
1






W
N














Where └ ┘ is the floor symbol. └custom-character┘ is the floor of custom-character that is the nearest integer ≤custom-character.


Using Eq.(12) and Eq.(13), we can get Eq.(14).










W
N

(

n
×
k

)


=

{




=




(
)











H

(

n
×
k

)




=
1






=




(
)











H

(

n
×
k

)




=
0









(
14
)











n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
1






W
N













From examining Table 1, we can clearly notice that by only storing






(




N
2



+
1

)




TFs of the ζ2 204 vector in an MS 203, we can generate any required TF WN(n×k) 202 of the DFT matrix.


From Eq.(14) and Table 1, we can get Eq.(15) that shows the two PEs of EMB-2 206 that will be used to design the NPA-2201. Equation (15) can be used to generate any required TF WN(n×k) 202.









TABLE 1















Does


δ




Ϛ
2

?


|



H

(

n
×
k

)




=


1




H

(

n
×
k

)




=

0



n




,
k
,


N

(

n
×
k

)




ψ




N



ρ
1



W
N





















#
δ







H

(

n
×
k

)



=
1











H

(

n
×
k

)



=
0









1

custom-character

Yes
No


2
(custom-character )*
No
Yes

















W
N

(

n
×
k

)


=

{










H

(

n
×
k

)




=
1







(
)











H

(

n
×
k

)




=
0









(
15
)











n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
1






W
N













By using Eq.(15), we can project a specific value to the required TF WN(n×k) 202 from one of the






(




N
2



+
1

)




TFs of the ζ2 204 vector.


The MS arrangement of the NPA-2201 is presented below.



FIG. 2 shows how the elements of the set ζ2 are pre-calculated, arranged and stored in an MS 203 to construct the ζ2 204 TFs vector.






(




N
2



+
1

)




The elements of the ζ2 204 TFs vector are constructed according to Eq.(16).












ζ
2

[

G
2

]

=


W
N

(

G

2

)


=


cos

(



2

π

N

×

G
2


)

-

j


sin

(



2

π

N

×

G
2


)











G
2




β
1





N



ρ
1






W
N














(
16
)







The memory location index of the ζ2 204 TFs vector is G2.


The NPA-2201 is connected to the ζ2 204 TFs vector that is stored in an MS 203.


From the above equations, the NPA-2201 of EMB-2 206 of the present invention is realized as shown in the flowchart of FIG. 6. The operation steps of the flowchart of the NPA-2201 are presented below.


The flowchart of FIG. 6 starts at step 601, then step 602 will read the values of n and k for the required TF WN(n×k) 202.


Step 603 will calculate the value of custom-characterN(n×k) using Eq.(7).


Step 604 will calculate the value of






H

(

n
×
k

)





using Eq.(13).


Step 605 will check if






H

(

n
×
k

)





is equal to 1. If it is equal to 1, then step 606 will be executed, if it is not equal to 1, then step 608 will be executed.


Step 606 will read the value of the TF stored in the memory location of index custom-characterN(n×k) of the ζ2 204 TFs vector.


According to Eq.(17), step 607 will project and assign the value of ζ2[custom-character] to the required TF WN(n×k) 202.






W
N
(n×k)2[custom-character]  (17)





n,k∈ψ{circumflex over ( )}∀custom-characterN(n×k)∈β1{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


The NPA-2201 is ended at step 610.


Step 608 will read the value of the TF stored in the memory location of index (N−custom-characterN(n×k)) of the ζ2 204 TFs vector.


According to Eq.(18), step 609 will project and assign the value of (ζ2[N−custom-characterN(n×k)])* to the required TF WN(n×k) 202.






W
N
(n×k)=(ζ2[N−custom-characterN(n×k)])*  (18)





n,k∈ψ{circumflex over ( )}∀custom-characterN(n×k)∈β2{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


The NPA-2201 is ended at step 610.


Embodiment-3

In EMB-3 306 of the present invention as shown in FIG. 3, we are going to find the formulation for the NPA-3301 that will enable us to generate any required TF WN(n×k) 302.


Instead of storing the N2 TFs that are needed to calculate the DFT which require large MS requirements, only






(


N
2

+
1

)




TFs that are members of the set







ζ
3

=

{


W
N

(
0
)


,

W
N

(
1
)


,


,

W
N

(

N
2

)



}





∀N∈ρ2{circumflex over ( )}∀WNcustom-character are needed to be stored in an MS 303.


The NPA-3301 will be used to project a specific value to the required TF WN(n×k) 302 from one of the






(


N
2

+
1

)




TFs of the ζ3 304 vector that is stored in an MS 303.


The outcome 305 of the NPA-3301 will be the projected required TF WN(n×k) 302.


The NPA-3301 PEs formulation is presented below.


We have the properties shown in Eq.(19), Eq.(20) and Eq.(21).











W
N

(


(

n
×
k

)



N
2


)


=

-

(

W
N

(

n
×
k

)


)








n

,

k


ψ




N



ρ
2






W
N














(
19
)














W
N

(



N
2


)


=

-

(

W
N

(

n
×
k

)


)








n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
2






W
N














(
20
)














W
N


(



N
2


)

)


=

-

(

W
N

(

n
×
k

)


)








n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
2






W
N














(
21
)







From Eq.(8), Eq.(19), Eq.(20), and Eq.(21), we get Eq.(22).













W
N

(



N
2


)


=


W
N

(

+

N
2


)








=


W
N

(

-

N
2


)








=



(

W
N

(
)


)









=


W
N


(



N
2


)

)








=


W
N


(

+

N
2


)

)








=


W
N


(

-

N
2


)

)








=


W
N

(


(

n
×
k

)



N
2


)








=


W
N

(


(

n
×
k

)

+

N
2


)








=


W
N

(


(

n
×
k

)

-

N
2


)








=


-

W
N

(
)









=


-

W
N

(

n
×
k

)










(
22
)











n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
2






W
N













From Eq.(12) and Eq.(22), we get Eq.(23).













W
N

(

n
×
k

)


=


W
N

(
)








=



(

W
N

(

N
-

)


)

*







=


-

W
N

(

+

N
2


)









=


-

W
N

(

+

N
2


)









=


-

W
N

(

-

N
2


)









=


-

(

(

W
N


(


N
2

-

)

*


)









=


-

W
N

(





N
2


)


)









=


-

W
N

(



+

N
2


)


)









=


-

W
N

(



-

N
2


)


)









=


-

W
N

(


(

n
×
k

)



N
2


)









=


-

W
N

(


(

n
×
k

)

+

N
2


)









=


-

W
N

(


(

n
×
k

)

-

N
2


)










(
23
)











n

,
k
,




N

(

n
×
k

)







ψ




N



ρ
2






W
N
















From Eq.(13) and Eq.(23), we get Eq.(24).













W
N

(

n
×
k

)


=


-

W
N

(


(

n
×
k

)



N
2


)









=


{











W
N

(
)


=



(

W
N

(

N
-

)


)

*

=


-

W
N

(



N
2


)



=









-

W
n

(

+

N
2


)



=


-

W
N

(

-

N
2


)



=

-

(


(

W
N

(


N
2

-

)


)

*

)










-

W
N

(





N
2


)


)



=


-

W
N

(



+

N
2


)


)



=

-

W
N

(



-

N
2


)


)








}





H

(

n
×
k

)




=
1













W
N

(
)


=



(

W
N

(

N
-

)


)

*

=


-

W
N

(



N
2


)



=









-

W
n

(

+

N
2


)



=


-

W
N

(

-

N
2


)



=

-

(


(

W
N

(


N
2

-

)


)

*

)










-

W
N

(





N
2


)


)



=


-

W
N

(



+

N
2


)


)



=

-

W
N

(



-

N
2


)


)








}





H

(

n
×
k

)




=
0












(
24
)











n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
2






W
N













From examining Table 2, we can clearly notice that by only storing






(


N
2

+
1

)




TFs of the ζ3 304 vector in an MS 303, we can generate any required TF WN(n×k) 302.


From Eq.(24) and Table 2, we can get Eq.(25) that shows the five PEs of EMB-3 306 that will be used to design the NPA-3301. Equation (25) can be used to find any required TF WN(n×k) 302.


By using Eq.(25), we can project a specific value to the required TF WN(n×k) 302 from one of the






(


N
2

+
1

)




TFs of the ζ3 304 vector.


The MS arrangement of the NPA-3301 is presented below.



FIG. 3 shows how the elements of the set ζ3 are pre-calculated, arranged and stored in an MS 303 to construct the ζ3 304 TFs vector.


The






(


N
2

+
1

)




elements of the ζ3 304 TFs vector are constructed according to Eq.(26).









TABLE 2















Does


γ




Ϛ
3

?


|



H

(

n
×
k

)




=


1




H

(

n
×
k

)




=

0



n




,
k
,


n

(

n
×
k

)




ψ




N



ρ
2






W
N























#
γ







H

(

n
×
k

)



=
1











H

(

n
×
k

)



=
0









1

custom-character
)

Yes
No


2
(custom-character))*
No
Yes





3




-

W
N

(


𝔐
N

(

n
×
k

)




N
2


)






No
No





4




-

W
N

(


𝔐
N

(

n
×
k

)


+

N
2


)






No
No





5




-

W
N

(


𝔐
N

(

n
×
k

)


-

N
2


)






No
Yes





6




-

(


(

W
N

(


N
2



𝔐
N

(

n
×
k

)



)


)

*

)





No
No





7




-

W
N

(

𝔐
N

(


𝔐
N




n
×
k


)




N
2


)


)






No
Yes





8




-

W
N

(

𝔐
N

(


𝔐
N




n
×
k


)


+

N
2


)


)






No
Yes





9




-

W
N

(

𝔐
N

(


𝔐
N




n
×
k


)


-

N
2


)


)






No
Yes

















W
N

(

n
×
k

)


=

{




W
N

)










H

(

n
×
k

)




=
1








(
)

)

*









H

(

n
×
k

)




=
0






-



-

N
2


)











H

(

n
×
k

)




=
0







-



+

N
2


)



)









H

(

n
×
k

)




=
0







-



-

N
2


)



)









H

(

n
×
k

)




=
0









(
25
)











n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
2






W
N























ζ
3

[

G
3

]

=


W
N

(

G
3

)


=


cos

(



2

π

N

×

G
3


)

-

j


sin

(



2

π

N

×

G
3


)












G
3



β
3



=


{

0
,
1
,


,

(

N
2

)


}





N



ρ
2






W
N













(
26
)







The memory location index of the ζ3 304 TFs vector is G3.


The NPA-3301 is connected to the ζ3 304 TFs vector that is stored in an MS 303.


From the above equations, the NPA-3301 of EMB-3 306 of the present invention is realized as shown in the flowchart of FIG. 7. The operation steps of the flowchart of the NPA-3301 are presented below.


The flowchart of FIG. 7 starts at step 701, then step 702 will read the values of n and k for the required TF WN(n×k) 302.


Step 703 will calculate the value of custom-characterN(n×k) using Eq.(7).


Step 704 will calculate the value of






H

(

n
×
k

)





using Eq.(13).


Step 705 will check if






H

(

n
×
k

)





is equal to 1. If it is equal to 1, then step 706 will be executed, if it is not equal to 1, then step 708 will be executed.


Step 706 will read the value of the TF stored in the memory location of index custom-characterN(n×k) of the ζ3 304 TFs vector.


According to Eq.(27), step 707 will project and assign the value of ζ3[custom-characterN(n×k)] to the required TF WN(n×k) 302.






W
N
(n×k)3[custom-characterN(n×k)]  (27)





n,k,∈ψ{circumflex over ( )}∀custom-characterN(n×k)∈β3{circumflex over ( )}∀N∈ρ2{circumflex over ( )}∀WNcustom-character


The NPA-3301 is ended at step 710.


Step 708 will read the value of the TF stored in the memory location of index (N−custom-characterN(n×k)) or







(


N

(

n
×
k

)


-

N
2


)



or



(



+

N
2


)


)



or



(



-

N
2


)


)





of the ζ3 304 TFs vector.


According to Eq.(28), step 709 will project and assign the value of (ζ3[N−custom-characterN(n×k)])* or







(

-


ζ
3

[


N

(

n
×
k

)


-

N
2


]


)



or



(

-


ζ
3

[



+

N
2


)


]


)



or



(

-


ζ
3

[



-

N
2


)


]


)





to the required WN(n×k) 302.










W
N

(

n
×
k

)


=



(


ζ
3

[

N
-

N

(

n
×
k

)



]

)

*

=


-


ζ
3

[


N

(

n
×
k

)


-

N
2


]


=


-


ζ
3

[



+

N
2


)


]


=

-


ζ
3

[



-

N
2


)


]









(
28
)











n

,


k


ψ


N

(

n
×
k

)





β
4


=


{


(


N
2

+
1

)

,

(


N
2

+
2

)

,


,

(

N
-
1

)


}





N



ρ
2






W
N













The NPA-3301 is ended at step 710.


Embodiment-4

In EMB-4 406 of the present invention as shown in FIG. 4, we are going to find the formulation for the NPA-4401 that will enable us to generate any required TF WN(n×k) 402.


Instead of storing the N2 TFs that are needed to calculate the DFT which require large MS requirements, only






(




N
4



+
1

)




TFs that are members of the set







Ϛ
4

=


{


W
N

(
0
)


,

W
N

(
1
)


,


,

W
N

(



N
4



)



}





N



ρ
2






W
N












are needed to be stored in an MS 403.


The NPA-4401 will be used to project a specific value to the required TF WN(n×k) 402 from one of the






(




N
4



+
1

)




TFs of the ζ4 404 vector that is stored in an MS 403.


The outcome 405 of the NPA-4401 will be the projected required TF WN(n×k) 402.


The NPA-4401 PEs formulation is presented below.


Let be






Q

(

n
×
k

)





defined as in Eq.(29).











Q

(

n
×
k

)


=










n

,
k
,


N

(

n
×
k

)




ψ




N


ρ
2










(
29
)







From Eq.(29), the computation of






Q

(

n
×
k

)





will result one of the values shown in Eq.(30).










Q

(

n
×
k

)


=

{



0









N

(

n
×
k

)




λ
1




=

{

0
,
1
,
2
,


,



N
4




}






1









N

(

n
×
k

)




λ
2




=

{


(




N
4



+
1

)

,


(




N
4



+
2

)

,


,



N
2




}






2









N

(

n
×
k

)




λ
3




=

{


(




N
2



+
1

)

,


(




N
2



+
2

)

,


,





(

3
×
N

)

4




}






3









N

(

n
×
k

)




λ
4




=

{


(





(

3
×
N

)

4



+
1

)

,


(





(

3
×
N

)

4



+
2

)

,


,


(

N
-
1

)


}










(
30
)











n

,
k
,


N

(

n
×
k

)




ψ




N


ρ
2









From Eq.(24), we can get Eq.(31).


From examining Table 3, we can clearly notice that by only storing






(




N
4



+
1

)




TFs of the ζ4 404 vector in an MS 403, we can generate any required TF WN(n×k) 402.









TABLE 3













Does


φ




Ϛ
4

?


|


(




Q

(

n
×
k

)




{

0
,
1
,
2
,
3

}



)



(



n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
2



W
N








)


















#
φ







Q

(

n
×
k

)



=
0











Q

(

n
×
k

)



=
1











Q

(

n
×
k

)



=
2











Q

(

n
×
k

)



=
3









1

custom-character

Yes
No
No
No


2
(custom-character )*
No
No
No
Yes





3




-

W
N

(


N

(

n
×
k

)




N
2


)






No
No
No
No





4




-

W
N

(


N

(

n
×
k

)


+

N
2


)






No
No
No
No





5




-

W
N

(


N

(

n
×
k

)


-

N
2


)






No
No
Yes
No





6




-

(


(

W
N

(


N
2

-

N

(

n
×
k

)



)


)

*

)





No
Yes
No
No





7




-

W
N

(

N

(


N





n
×
k


)





N
2


)


)






No
No
Yes
No





8




-

W
N

(

N

(


N





n
×
k


)

+



N
2


)


)






No
No
Yes
No





9




-

W
N

(

N

(


N





n
×
k


)

-



N
2


)


)






No
No
Yes
No









From Eq.(31) and Table 3, we can get Eq.(32) that shows the six PEs of EMB-4 406 which will be used to design the NPA-4401. Equation (32) can be used to find any required TF WN(n×k) 402.










W
N

(

n
×
k

)


=

{










Q

(

n
×
k

)




=
0






-

(


(
)

*

)










Q

(

n
×
k

)




=
1






-



-

N
2


)











Q

(

n
×
k

)




=
2






-




+

N
2


)

)











Q

(

n
×
k

)




=
2






-




-

N
2


)

)











Q

(

n
×
k

)




=
2







(
)

*









Q

(

n
×
k

)




=
3









(
32
)











n

,
k
,


N

(

n
×
k

)




ψ




N



ρ
4






W
N













By using Eq.(32), we can project a specific value to the required TF WN(n×k) 402 from one of the






(




N
4



+
1

)




TFs of the ζ4 404 vector.


The MS arrangement of the NPA-4401 is presented below.



FIG. 4 shows how the elements of the set ζ4 are pre-calculated, arranged and stored in an MS 403 to construct the ζ4 404 TFs vector.


The






(




N
4



+
1

)




elements of the ζ4 404 TFs vector are constructed according to Eq.(33).












ζ
4

[

G
4

]

=


W
N

(

G
4

)


=


cos

(



2

π

N

×

G
4


)

-

j


sin

(



2

π

N

×

G
4


)











G
4




λ
1





N



ρ
2






W
N














(
33
)







The memory location index of the ζ4 404 TFs vector is G4.


The NPA-4401 is connected to the ζ4 404 TFs vector that is stored in an MS 403.


From the above equations, the NPA-4401 of EMB-4 406 of the present invention is realized as shown in the flowchart of FIG. 8. The operation steps of the flowchart of the NPA-4401 are presented below.


The flowchart of FIG. 8 starts at step 801, then step 802 will read the values of n and k for the required TF WN(n×k) 402.


Step 803 will calculate the value of custom-characterN(n×k) using Eq.(7).


Step 804 will calculate the value of






Q

(

n
×
k

)





using Eq.(29).


Step 805 will check if






Q

(

n
×
k

)





is equal to 0. If it is equal to 0, then the path of connector CC1806 will be followed and step 812 will be executed. If it is not equal to 0, then step 807 will be executed.


Connector CC1806 is connecting step 805 and step 812.


Step 807 will check if






Q

(

n
×
k

)





is equal to 1. If it is equal to 1, then the path of connector CC2808 will be followed and step 814 will be executed. If it is not equal to 1, then step 809 will be executed.


Connector CC2808 is connecting step 807 and step 814.


Step 809 will check if






Q

(

n
×
k

)





is equal to 2. If it is equal to 2, then the path of connector CC3810 will be followed and step 817 will be executed. If it is not equal to 2, meaning that






Q

(

n
×
k

)





is equal to 3, then the path of connector CC4811 will be followed and step 819 will be executed.


Connector CC3810 is connecting step 809 and step 817.


Connector CC4811 is connecting step 809 and step 819.


Step 812 will read the value of the TF stored in the memory location of index custom-characterN(n×k) of the ζ4 404 TFs vector.


According to Eq.(34), step 813 will project and assign the value of ζ4[custom-characterN(n×k)] to the required TF WN(n×k) 402.






W
N
(n×k)4[custom-characterN(n×k)]  (34)





n,k,∈ψ{circumflex over ( )}∀custom-characterN(n×k)∈λ1{circumflex over ( )}∀N∈ρ2{circumflex over ( )}∀WNcustom-character


The NPA-4401 is ended at step 816.


Step 814 will read the value of the TF stored in the memory location of index






(


N
2

-

N

(

n
×
k

)



)




of the ζ4 404 TFs vector.


According to Eq.(35), step 815 will project and assign the value of







(

-


(


ζ
4

[


N
2

-

𝔐
N

(

n
×
k

)



]

)

*


)






to the required TF WN(n×k) 402.











W
N

(

n
×
k

)


=

(

-


(


ζ
4

[


N
2

-

N

(

n
×
k

)



]

)

*


)








n

,

k


ψ





N

(

n
×
m

)





λ
2





N



ρ
2






W
N

















(
35
)







The NPA-4401 is ended at step 816.


Step 817 will read the value of the TF stored in the memory location of index







(


N

(

n
×
k

)


-

N
2


)



or



(

N

(


N

(

n
×
k

)


+

N
2


)


)



or



(

N

(


N

(

n
×
k

)


-

N
2


)


)





of the ζ4 404 TFs vector.


According to Eq.(36), step 818 will project and assign the value of









(

-


ζ
4

[


N

(

n
×
k

)


-

N
2


]


)



or



(

-


ζ
4

[

N

(


N

(

n
×
k

)


+

N
2


)


]


)







or





(

-


ζ
4

[

N

(


N

(

n
×
k

)


-

N
2


)


]


)





to the required TF WN(n×k) 402.











W
N

(

n
×
k

)


=


(

-


ζ
4

[


N

(

n
×
k

)


-

N
2


]


)

=


(

-


ζ
4

[

N

(


N

(

n
×
k

)


+

N
2


)


]


)

=


(

-


ζ
4

[

N

(


N

(

n
×
k

)


-

N
2


)



]




)





n





,

k


ψ





N

(

n
×
k

)





λ
3





N



ρ
2






W
N
















(
36
)







The NPA-4401 is ended at step 816.


Step 819 will read the value of the TF stored in the memory location of index (N−custom-characterN(n×k)) of the ζ4 404 TFs vector.


According to Eq.(37), step 820 will project and assign the value of (ζ4[N−custom-characterN(n×k)])* to the required TF WN(n×k) 402.






W
N
(n×k)=(ζ4[N−custom-characterN(n×k)])*  (37)





n,k∈ψ{circumflex over ( )}∀custom-characterN(n×k)∈λ4{circumflex over ( )}∀N∈ρ2{circumflex over ( )}∀WNcustom-character


The NPA-4401 is ended at step 816.


Performance Evaluation


The TPR is the percentage ratio of the MNRTF that is needed to be stored in an MS 103 or MS 203 or MS 303 or MS 403 to the N2 total TFs needed to calculate the DFT as shown in Eq.(38).










TPR
=


(


M

N

R

T

F


N
2


)

×
100

%








N


ρ
1







(
38
)







From Eq.(38), the PMRR for the memory requirements for storing the TFs that are needed to calculate the DFT is shown in Eq.(39).










PMRR
=


(

1
-

MNRTF

N
2



)

×
100

%








N


ρ
1







(
39
)







Table 4 presents a comparison between the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306, the NPA-4401 of EMB-4 406 of the present invention and the DFT regarding their MNRTF, TPR, PMRR, the number of samples in the time domain N to be transformed to frequency domain using DFT and the number of their PEs.


From Table 4, it is clear to notice that the NPA-4401 of EMB-4 406 that works for ∀N∈ρ2 has the lowest MNRTF, lowest TPR and the highest PMRR. So, it has a better performance when compared with the performance of the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306 of the present invention and the DFT.


From Table 4, it is clear to notice that the NPA-2201 of EMB-2 206 that works ∀N∈ρ1 and the NPA-3301 of EMB-3 306 that works ∀N∈ρ2 have the same MNRTF, the same TPR and the same PMRR when compared ∀N∈ρ2.


From Table 4, it is clear to notice that the DFT has the highest MNRTF, highest TPR and the lowest PMRR. So it has the lowest performance when compared with the performance of the NPA-1101 of EMB-1 106 that works ∀N∈ρ1, the NPA-2201 of EMB-2 206 that works ∀N∈ρ1, the performance of the NPA-3301 of EMB-3 306 that works ∀N∈ρ2, and the NPA-4401 of EMB-4 406 that works ∀N∈ρ2.














TABLE 4










Number of


NPA No./




Projection


Type
MNRTF
TPR
PMRR
N is:
Equations







1
N





(

1
N

)

×
1

0

0

%









(

1
-

1
N


)

×
1

0

0

%




Odd or Even
1





2




(




N
2



+
1

)









(


(




N
2



+
1

)


N
2


)

×
100

%









(

1
-


(




N
2



+
1

)


N
2



)

×
100

%




Odd or Even
2





3




(


N
2

+
1

)









(


(


N
2

+
1

)


N
2


)

×
100

%









(

1
-


(


N
2

+
1

)


N
2



)

×
100

%




Even
5





4




(




N
4



+
1

)









(


(




N
4



+
1

)


N
2


)

×
100

%









(

1
-


(




N
4



+
1

)


N
2



)

×
100

%




Even
6





DFT
N2
100%
0%
Odd or







Even









From Table 4, it is clear to notice that the NPA-1101 of EMB-1 106 that works ∀N∈ρ1 has the highest MNRTF, the highest TPR and the lowest PMRR. So, it has the lowest performance when compared with the performance of the NPA-2201 of EMB-2 206 that works ∀N∈ρ1, the performance of the NPA-3301 of EMB-3 306 that works ∀N∈ρ2, and the performance of the NPA-4401 of EMB-4 406 that works ∀N∈ρ2.


Having a low MNRTF is highly recommended since it will result in low MS requirements for the TFs that will have to be stored in an MS 103 or MS 203 or MS 303 or MS 403 and to be used by the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306 and the NPA-4401 of EMB-4 406 respectively to generate any required TF of the DFT matrix.


A low MNRTF results in a low power consumption. It is desired to have a low MNRTF that will result in a low TPR. Also, it will result in a high PMRR that is also desired. A high MNRTF is not desired since it will result in a high TPR and a low PMRR.



FIG. 9 shows the simulated comparison results plot of the MNRTF computations (logarithmic scale) versus the number of points N (logarithmic scale) for the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306, the NPA-4401 of EMB-4 406 of the present invention and the DFT.



FIG. 10 shows the simulated comparison results plot of the MNRTF computations (logarithmic scale) versus the number of points N (linear scale) for the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306, the NPA-4401 of EMB-4 406 of the present invention and the DFT.



FIG. 11 shows the simulated comparison results plot of the TPR of the MNRTF computations (logarithmic scale) versus the number of points N (logarithmic scale) for the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306, the NPA-4401 of EMB-4 406 of the present invention and the DFT.



FIG. 12 shows the simulated comparison results plot of the TPR of the MNRTF computations (logarithmic scale) versus the number of points N (linear scale) for the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306, the NPA-4401 of EMB-4 406 of the present invention and the DFT.



FIG. 13 shows the simulated comparison results plot of the PMRR computations (linear scale) versus the number of points N (logarithmic scale) for the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306, the NPA-4401 of EMB-4 406 of the present invention and the DFT.


For the IDFT, the IDFT matrix form of Eq. (2) is shown in Eq.(40).










[




x
0






x
1






x
2











x

N
-
1





]

=





[





W
N

(

-

(

0
×
0

)


)





W
N

(

-

(

0
×
1

)


)





W
N

(

-

(

0
×
2

)


)








W
N

(

-

(

0
×

(

N
-
1

)


)


)







W
N

(

-

(

1
×
0

)


)





W
N

(

-

(

1
×
1

)


)





W
N

(

-

(

1
×
2

)


)








W
N

(

-

(

1
×

(

N
-
1

)


)


)







W
N

(

-

(

2
×
0

)


)





W
N

(

-

(

2
×
1

)


)





W
N

(

-

(

2
×
2

)


)








W
N

(

-

(

2
×

(

N
-
1

)


)


)
























W
N

(

-

(


(

N
-
1

)

×
0

)


)





W
N

(

-

(


(

N
-
1

)

×
1

)


)





W
N

(

-

(


(

N
-
1

)

×
2

)


)








W
N

(

-

(


(

N
-
1

)

×

(

N
-
1

)


)


)





]

×





[





X
0






X
1






X
2











X

N
-
1





]





X


,
x
,


W
N







N


ρ
1











(
40
)







From Eq.(40), we can get the compact IDFT matrix form of the IDFT as shown in Eq.(41).











[




x
0






x
1






x
2











x

N
-
1





]

=


[





W
N

(
0
)





W
N

(
0
)





W
N

(
0
)








W
N

(
0
)







W
N

(
0
)





W
N

(

-
1

)





W
N

(

-
2

)








W
N

(

-

(

1
×

(

N
-
1

)


)


)







W
N

(
0
)





W
N

(

-
2

)





W
N

(

-
4

)








W
N

(

-

(

2
×

(

N
-
1

)


)


)
























W
N

(
0
)





W
N

(

-

(


(

N
-
1

)

×
1

)


)





W
N

(

-

(


(

N
-
1

)

×
2

)


)








W
N

(

-

(


(

N
-
1

)

×

(

N
-
1

)


)


)





]

×





[





X
0






X
1






X
2











X

N
-
1





]








X

,
x
,


W
N







N


ρ
1










(
41
)







From Eq.(1), Eq.(2), Eq.(5) and Eq.(41), we can easily conclude that the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306 and the NPA-4401 of EMB-4 406 of the present invention can also be easily adapted and used to calculate the TFs needed to calculate the IDFT.


The relation between the TF WN(−(n×k))|IDFT ∀n,k∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character and the TF WN(n×k))|DFT ∀n,k∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character is shown in Eq.(42).






W
N
(−(n×k))|IDFT=(WN(n×k))*|DFT  (42)





n,k∈ψ{circumflex over ( )}∀N∈ρ1{circumflex over ( )}∀WNcustom-character


REFERENCES
U.S. Patent Documents

















US 2009/
Oct. 2009
Christopher D. Moffatt,
370/208, 375/260


0245084 A1

Anders Mattsson,





John W. Pajunen









Foreign Documents

















A New Relation
Jul. 2015
Jozsef Suto,
ELEKTRONIKA IR


between “Twiddle

Stefan Oniga
ELEKTROTECHNIKA, ISSN 1392-


Factors” in the Fast


1215, VOL. 21, NO. 4, 2015,


Fourier


DOI: 10.5755/j01.eee.21.4.12784


Transformation








Claims
  • 1. A new DFT TFs projection algorithms comprising the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306 and the NPA-4401 of EMB-4 406 are presented to generate any required IT of the DFT matrix by providing only a small portion of the TFs that are stored in an MS.
  • 2. The present invention presents how to exploit the existence of symmetries and similarities among the TFs of the DFT matrix to construct a methodology of operation to be able to formulate the DFT TFs NPAs of claim 1.
  • 3. The DFT TFs NPAs of claim 1 will generate any required TF of the DFT matrix that will avoid the need of retrieving that TF from pre-saved lookup tables of the DFT matrix and also will avoid the need to calculate it with slow complicated algorithms like CORDIC as used by prior arts.
  • 4. The DFT TFs NPAs of claim 1 are very efficient due to their low MS requirements, high speed and low power consumption. Such efficiency is vital for real time computation of the DFT with large number of samples in the time domain to be transformed to frequency domain.
  • 5. The NPA-1101 of EMB-1 106 of claim 1 will require only N stored TFs in an MS to generate any required TF of the N2 DFT matrix that will reduce the MS requirements by a factor of
  • 6. The NPA-2201 of EMB-2 206 of claim 1 requires only
  • 7. The NPA-3301 of EMB-3 306 of claim 1 requires only
  • 8. The NPA-4401 of EMB-4 406 of claim 1 requires only
  • 9. The DFT TFs NPAs of claim 1 including the NPA-1101 of EMB-1 106, the NPA-2201 of EMB-2 206, the NPA-3301 of EMB-3 306 and the NPA-4401 of EMB-4 406 can also be easily adapted and used to calculate the TFs needed to calculate the IDFT.