Спасибо за ответы. У меня возникли некоторые сложности, но, вроде я сам разобрался. Осталась пара вопросов.
wrestПо Вашим формулам обратное ДПФ даёт амплитуду сигнала в два раза меньше. Надо или на два умножать, ну или делить не на N, а на N/2.
Метод хорошо работает не для всех длинн входящего сигнала. Вот пример:
https://ibb.co/nwtvEUВерхний ряд - время t проходин от 0 до 1,
Код:
SignalLength = 1;
t = (0:step:SignalLength-step);
S = 0.7*sin(2*pi*3*t) + sin(2*pi*6*t);
нижний ряд - время проходит от 0 до 1,1
Код:
SignalLength = 1.1;
t = (0:step:SignalLength-step);
S = 0.7*sin(2*pi*3*t) + sin(2*pi*6*t);
Как видно, появляются постоянные составляющие сигнала. Отчего это может быть и как от них избавиться?
Второй вопрос, что делать, если длина сигнала нечётная?
Вы, при нормализации, удваиваете:
Что делать, если N/2 не является целым числом?