0

I am trying to calculate an actual frequency response from a desired frequency response.

fftSize = 128;
fs = 8000;

I have 2 input arrays: f[] and aDesired[], both of which are Real and length fftSize+1 (DC + Nyquist included). The f[] array is linearly spaced between 0 and fs/2 (0:4000). The aDesired[] array is either gains in dB or linear values.

I can easily change the length of f[] and aDesired[] as I have an interpolation function which gives any size outputs, but i thought this was a good number.

I would like to take an IFFT of ADesired[] to generate coefficients (with a configurable length), window and truncate the coeffs, and then FFT to show what the actual response would be, aActual[].

How can I take an IFFT/FFT of this data when the inputs are both Real? Or how do I prepare the data more?

Is there maybe a library that could be of use with my input data?

Summary:

Input: f[129] : linearly spaced fc's
       aDesired[129] : Real values of linearly spaced gains at fc's (either in lin or log),

Processing:
       coeffs = IFFT(f, aDesired)
       coeff_new Truncate(window * coeff)
       aActual = FFT(f, coeff_new)

Output: aActual[]

Many thanks

Andy
  • 259
  • 1
  • 4
  • 16
  • This question might be more applicable for [Signal Processing](http://dsp.stackexchange.com/) site. – Chris O Jun 10 '13 at 22:34
  • I am a bit confused by the question, but I think you should consider if your filtering technique is even appropriate here: http://blog.bjornroche.com/2012/08/why-eq-is-done-in-time-domain.html – Bjorn Roche Jun 11 '13 at 01:02

1 Answers1

0

Try IT++, which is for physical layer simulation.

http://itpp.sourceforge.net/4.3.0/

Yan Zhu
  • 4,036
  • 3
  • 21
  • 37