Цитата(sysel @ Nov 1 2016, 16:17)

Нет такой необходимости.
Берёте 1600 отсчетов, умножаете их на оконную функцию (исходя из N = 1600). Дополняете массив нулями до размера 2048. Дальше БПФ.
Да, но если добивать нулями, то сильно искажается спектр и тогда оценить уровень гармоник не представляется возможным. К тому же БПФ на 2048 точек уже становится слишком ресурсоемким, даже на Cortex-M4F. Но за идею спасибо.
Цитата(TSerg @ Nov 1 2016, 16:22)

1. Зачем Вам интерполяция на 10 периодах? Делайте на одном.
2. Почему нужно переходить от 160 отсчетов к 128 (к примеру)?
3. Цель интерполяции?
5. Погрешности по видам интерполяции считаются или моделируются - это не большая сложность.
1. Ибо БПФ согласно ГОСТ нужно считать именно на 10 периодах. На самом деле не БПФ, а гармоники нужно считать на 10 периодах, поэтому такое условие.
2. Вот и получается, что необходима передискретизация с 1600 отсчетов на 1024 отсчета.
3. Вот как раз и цель интерполяции - пункт 2.
4. А погрешность - согласен, можно легко промодилеровать.
Вот мне и хотелось узнать как это делается сейчас и какие есть варианты решения проблемы.
Цитата(ViKo @ Nov 1 2016, 16:47)

В данном случае топикстартер желает изменить частоту дискретизации. Для этого потребуется и то и другое.
Тоже не вижу необходимости. Делать БПФ по 1024 отсчетам. А что частоты не "круглые" получаются, так не великая беда. Может, результаты интерполировать, чтобы красивые графики рисовать?
Если немного уйти от темы, то в общем случае на вход АЦП идет ослабленный сигнал электрической сети. АЦП на 8 кГц, как я уже говорил. Данные с АЦП приходят в микроконтроллер. И задача стоит в том, чтобы оценить уровень гармоник вплоть до 50. И вот одно из решение: Так как частота сети плавает, то применить интерполяцию и получить 1024 отсчета и далее БПФ и вот они гармоники.