Если максимальная величина M = A ^ 2 + B ^ 2 преобразования ДПФ соответствует частоте F (A - реальный, B - мнимый выход ДПФ на частоте F), то правильно ли сделать следующее:
for (j = 0; j < size; ++j) {
data[j] -= (A*cos(2*PI*F*j/dfts) -
B*sin(2*PI*F*j/dfts)) / dfts;
}
Чтобы отменить (вычесть) это влияние частоты из исходных волновых данных? Предполагается, что данные представляют собой сумму нескольких синусов и косинусов с разными частотами, умноженных на разные коэффициенты.
РЕДАКТИРОВАТЬ1: я мог бы добиться отмены путем вычитания, и результат правильный. Выше была ошибка, но это можно сделать. Если интересно, могу выложить способ.
EDIT2: И если вы выполните следующее преобразование ДПФ, вы получите очень маленькое, близкое к нулю значение при значениях A и B. Но вы должны помнить, что исходные данные могут быть суммой 4-х частот (синусов и косинусов), но преобразование ДПФ даст вам столько, сколько размер ДПФ делится на 2.