サウンドプログラミング2
■ このスレッドは過去ログ倉庫に格納されています
0174大原ゆき
NGNGコンパイルもデバグもしていませんので、通るかどうか解かりませんが…
std::vector<double> FIRCoeff::makeLPFCoeff(double fs, double fc, int tapn) {
std::vector<double> hh;
int fcint = (int)(tapn * fc / fs);
double gain1 = pow(10.0, 0.0 / 20.0);
double gain2 = pow(10.0, -200.0 / 20.0);
std::complex<double> freqres_fc1(gain1, 0.0);
std::complex<double> freqres_fc2(gain2, 0.0);
std::vector< std::complex<double> > freqres;
freqres.assign(fcint, freqres_fc1);
freqres.insert(freqres.end(), tapn - 2 * fcint, freqres_fc2);
freqres.insert(freqres.end(), fcint, freqres_fc1);
std::vector< std::complex<double> > cv = idft(freqres); // idftは離散フーリエ変換する関数
int cvsize = cv.size();
for(unsigned int i = 0; i < cvsize; ++i) {
hh.push_back(cv[(i + cvsize - cvsize / 2) % cvsize].first);
}
}
■ このスレッドは過去ログ倉庫に格納されています