kopia lustrzana https://github.com/Dsplib/libdspl-2.0
fixed fft16
rodzic
2a26f8aa4f
commit
3217aed2af
|
@ -119,7 +119,7 @@ int fft_krn(complex_t* t0, complex_t* t1, fft_t* p, int n, int addr)
|
|||
complex_t *pw = p->w+addr;
|
||||
|
||||
n1 = 1;
|
||||
//if(n%16== 0) { n1 = 16; goto label_size; }
|
||||
if(n%16== 0) { n1 = 16; goto label_size; }
|
||||
if(n%7 == 0) { n1 = 7; goto label_size; }
|
||||
if(n%5 == 0) { n1 = 5; goto label_size; }
|
||||
if(n%4 == 0) { n1 = 4; goto label_size; }
|
||||
|
@ -197,10 +197,13 @@ int DSPL_API fft_create(fft_t *pfft, int n)
|
|||
s = n;
|
||||
nw = addr = 0;
|
||||
|
||||
if(pfft->n == n)
|
||||
return RES_OK;
|
||||
|
||||
while(s > 1)
|
||||
{
|
||||
n2 = 1;
|
||||
//if(s%16== 0) { n2 = 16; goto label_size; }
|
||||
if(s%16== 0) { n2 = 16; goto label_size; }
|
||||
if(s%7 == 0) { n2 = 7; goto label_size; }
|
||||
if(s%5 == 0) { n2 = 5; goto label_size; }
|
||||
if(s%4 == 0) { n2 = 4; goto label_size; }
|
||||
|
@ -211,7 +214,6 @@ int DSPL_API fft_create(fft_t *pfft, int n)
|
|||
label_size:
|
||||
if(n2 == 1)
|
||||
return ERROR_FFT_SIZE;
|
||||
|
||||
n1 = s / n2;
|
||||
nw += s;
|
||||
pfft->w = pfft->w ? (complex_t*) realloc(pfft->w, nw*sizeof(complex_t)):
|
||||
|
@ -236,6 +238,8 @@ label_size:
|
|||
|
||||
pfft->t1 = pfft->t1 ? (complex_t*) realloc(pfft->t1, n*sizeof(complex_t)):
|
||||
(complex_t*) malloc( n*sizeof(complex_t));
|
||||
|
||||
pfft->n = n;
|
||||
|
||||
return RES_OK;
|
||||
}
|
||||
|
|
|
@ -366,8 +366,8 @@ void dft16 (complex_t *x, complex_t* y)
|
|||
|
||||
// 0.382683432365090 - 0.923879532511287i
|
||||
tmp = RE(t1[13]) * DFT16_W2 + IM(t1[13]) * DFT16_W1;
|
||||
IM(t1[7]) = -RE(t1[13]) * DFT16_W1 + IM(t1[13]) * DFT16_W2;
|
||||
RE(t1[7]) = tmp;
|
||||
IM(t1[13]) = -RE(t1[13]) * DFT16_W1 + IM(t1[13]) * DFT16_W2;
|
||||
RE(t1[13]) = tmp;
|
||||
|
||||
//-0.707106781186547 - 0.707106781186548i
|
||||
tmp = (-RE(t1[14]) + IM(t1[14])) * DFT16_W3;
|
||||
|
|
Ładowanie…
Reference in New Issue