Fix failure to pack Nyquist bins correctly in vDSP FFT - though these functions are not actually used by Rubber Band, they're just here for symmetry
This commit is contained in:
@@ -701,6 +701,7 @@ public:
|
|||||||
if (!m_dspec) initDouble();
|
if (!m_dspec) initDouble();
|
||||||
double *d[2] = { m_dpacked->realp, m_dpacked->imagp };
|
double *d[2] = { m_dpacked->realp, m_dpacked->imagp };
|
||||||
v_deinterleave(d, complexIn, 2, m_size/2 + 1);
|
v_deinterleave(d, complexIn, 2, m_size/2 + 1);
|
||||||
|
dnyq();
|
||||||
vDSP_fft_zriptD(m_dspec, m_dpacked, 1, m_dbuf, m_order, FFT_INVERSE);
|
vDSP_fft_zriptD(m_dspec, m_dpacked, 1, m_dbuf, m_order, FFT_INVERSE);
|
||||||
unpackReal(realOut);
|
unpackReal(realOut);
|
||||||
}
|
}
|
||||||
@@ -738,6 +739,7 @@ public:
|
|||||||
if (!m_fspec) initFloat();
|
if (!m_fspec) initFloat();
|
||||||
float *f[2] = { m_fpacked->realp, m_fpacked->imagp };
|
float *f[2] = { m_fpacked->realp, m_fpacked->imagp };
|
||||||
v_deinterleave(f, complexIn, 2, m_size/2 + 1);
|
v_deinterleave(f, complexIn, 2, m_size/2 + 1);
|
||||||
|
fnyq();
|
||||||
vDSP_fft_zript(m_fspec, m_fpacked, 1, m_fbuf, m_order, FFT_INVERSE);
|
vDSP_fft_zript(m_fspec, m_fpacked, 1, m_fbuf, m_order, FFT_INVERSE);
|
||||||
unpackReal(realOut);
|
unpackReal(realOut);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user