Цитата(:-) @ Sep 14 2010, 01:37)

Возникла вот какая задача. Требуется перейти от частоты дискретизации 4 МГц к частоте дискретизации 2.048МГц. Сейчас для выполнения децимации просто выкидываю лишние данные (беру только i*2048/4000 1<i<=4000). Но возник вопрос насколько это коректно?
Я вот точно так же однажды делала, а мне тоже сказали "некорректно". Ну и что, что некорректно? Зато просто и разницу между корректным и некорректным результатом фиг отличишь, тем паче, что в измерениях всегда присутствует шум, который обычно превышает потери точности от "некооректности".
Ну а коли про корректный вариант говорить, то он примерно такой. Натягиваем поверх исходного частокола ломаную линию, превращая каждую соседнюю пару отсчетов в лежащую на боку трапецию. А потом находим величину отсчета на новой дискретной сетке, как интеграл. Т.е. площадь под ломаной огибающей исходного сигнала, заключенную между (i-0.5)*2048/4000 и (i+0.5)*2048/4000. Ну и видимо на какой-то коэффициент надо все те интегралы помножить, чтобы при горизонтальной линии высота совпадала. Видимо этот множитель будет той же дробью 2048/4000.
И это все это только в том случае, если исходный частокол дает АЦП "мгновенного измерения". Поэтому и используем в качестве модели линейную интерполяцию между соседними значениями, полагая, что в промежутках между измерениями сигнал изменяется линейно. Но а если это, скажем, сигма-дельта АЦП, работающий в режиме непрерывного преобразования, то тогда ваши измерения уже являются значением интеграла за период измерения. И тогда уже правильнее будет не модель с огибающей, а модель из прямоугольничков (похожая на гистограмму), когда каждый i-ый отсчет представляется прямоугольником высотой в значение сигнала, и шириной от i-0.5 до i+0.5.
Впрочем, старшие товарищи меня вероятно поправят

, найдя какие-нибудь ошибки в сказанном. Только дело это гиблое так считать

.