Если максимальная величина M = A ^ 2 + B ^ 2 преобразования DFT соответствует частоте F, (A - действительная, B - мнимая мощность DFT на частоте 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: И если вы выполните следующее преобразование DFT, вы получите очень маленькое, близкое к нулю значение при значениях A и B.Но вы должны помнить, что исходные данные могут быть суммой 4 частот (синусов и косинусов), но преобразование DFT даст вам столько, сколько размер DFT делится на 2.