[an error occurred while processing this directive]
|
|
О своих программерских способностях, или отсутствии таковых, я вообще-то не писал. Но черт с ними.
Повторение отсчетов с последующей фильтрацией эквивалентно следующему.
1. В сигнал встромляются 0 между отсчетами. Пусть N.
2. Сигнал со встромленными 0 пропускается через КИХ с H0(Z)=SUMMA(Z^(-n)). Сумма по n, от 0 до N-1. ИХ его - прямоугольный импульс длиной N. Эта операция эквивалентна повторению отсчетов. Или, что то же самое, интерполяции нулевого порядка.
3. Спектр сигнала из п.2 соответственно будет равен произведению спектра сигнала со вставленными 0 на ЧХ вышеприведенного фильтра.
Спектр сигнала с 0 - периодическое повторение спектров исходного.
Т.е. на одном периоде спектра сигнала с нулями - N+1 период исходного.
ЧХ приведенного фильтра - sin(x)/x. Основной лепесток как раз накрывает 1-ый период спектра исходного сигнала. Сл-но этот 1-ый период будет искажен. Естественно и остальные тоже.
4.Сигнал из пункта 2 пропускается через некий фильтр, для получения результирующего интерполированного сигнала. И здесь все определяется требованиями к интерполяции. Сигнал-то до этого прошел уже одну стадию фильтрации (п.2). Если искажения, внесенные этой стадией допустимы, то и хорошо. Можно поставить просто ФНЧ. Если недопустимы, то их нужно как-то скорректировать. В этом случае повторение отсчетов напоминает поиск приключений, поскольку синтезировать коррект. фильтр несколько сложнее, чем просто ФНЧ.
5. Но независимо ни от чего сигнал из пункта 2 один черт проходит через некий фильтр с какой-то H1(Z). А сигнал на входе п.2 - исходный с нулями. Из этого следует, что тот же самый результат получается, если взять сигнал со вставленными 0 между отсчетами и пропустить его через один фильтр с результирующей H(Z)=H0(Z)*H1(Z). Можно эту H(Z) разложить например на множители, если больше нравится/как-то упростит реализацию. Сути не меняет. В сигнал вставляются 0, затем он фильтруется. Просто в случае повторения отсчетов, из H(Z), до ее синтеза, вытаскивается множитель H0(Z), затем синтезируется H1(Z), но для получения H(Z). В случае вставки 0 синтезируется сразу H(Z).
Результат-то будет один и тот же, только первый путь через одно место.
E-mail: info@telesys.ru