28 Eigen::Matrix<FP_TYPE, Eigen::Dynamic, Eigen::Dynamic> hNew;
29 if (ret=sox.
read(hNew)<0)
44 if (
N==0 ||
h.rows()<=0 ||
h.cols() <=0)
47 Eigen::Matrix<FP_TYPE, Eigen::Dynamic, Eigen::Dynamic> hNew(
h.rows()+
N,
h.cols());
48 x.setZero(hNew.rows(), hNew.cols());
49 yTemp.setZero(hNew.rows(), 1);
50 y.setZero(hNew.rows(), hNew.cols());
51 Y.setZero(hNew.rows(), 1);
53 hNew.topRows(
h.rows())=
h;
54 H.setZero(hNew.rows(), hNew.cols());
55 for (
int i=0; i<hNew.cols(); i++)
56 fft.fwd(
H.col(i).data(), hNew.col(i).data(), hNew.rows());
#define SOX_READ_MAXSCALE_ERROR
Sox couldn't open the filename.max to read the rescale value for the audio file.
int openRead(string fileName)
Eigen::Matrix< FP_TYPE, Eigen::Dynamic, Eigen::Dynamic > x
the time domain signal for filtering
virtual int evaluateError(int errorNum)
#define NO_ERROR
There is no error.
Eigen::Matrix< FP_TYPE, Eigen::Dynamic, Eigen::Dynamic > h
the time domain representation of the filter
Eigen::Array< Eigen::FFT< FP_TYPE >::Complex, Eigen::Dynamic, Eigen::Dynamic > H
The DFT of the FIR coefficients.
Eigen::Matrix< FP_TYPE, Eigen::Dynamic, Eigen::Dynamic > y
the time domain output signal
Eigen::Matrix< FP_TYPE, Eigen::Dynamic, 1 > yTemp
the time domain signal for filtering
void init(unsigned int blockSize)
Eigen::FFT< FP_TYPE > fft
The fast Fourier transform.
int loadTimeDomainCoefficients(const std::string fileName)
int read(Eigen::DenseBase< Derived > &audioData, int count=0)
Eigen::Array< Eigen::FFT< FP_TYPE >::Complex, Eigen::Dynamic, 1 > Y
the time domain filter output and also the DFT of one col of x
unsigned int N
Block size of the audio subsystem.