Перейти к содержанию
    

есть ли методы дизеринга (dithering) для линейной интерполяции при повышении тактовой частоты (upsampling)

Добавление на вход интерполятора шума ничего не даст
Прекрасно понимаю. Если бы можно было что-то улучшить, добавив шум, то я бы не открывал эту тему. Это первое, что мне пришло в голову и что я моментально отмёл.

 

 

Если вы хотите опустить боковые лепестки в вашей системе, необходимо менять алгоритм интерполяции, следствие - рост сложности и объема вычислений. Чудес не бывает
Мне чудеса и не нужны. Мне не опустить лепестки надо, а размазать их по спектру, т.к. есть половина диапазона сводобная. При размазывании чудес не получится. Опять привожу в пример дизеринг в DDS: добавление шума не уменьшает общую мощность ошибки, а увеличивает её, так что никаких чудес. Но зато декорреляция ошибки делает её спектр более равномерным, за счёт этого горб становится ниже, а SFDR лучше.

Не перестаю надеяться, что и для линейной интерполяции существует возможность размазать ошибку, пусть и увеличив её мощность (чтобы без чудес).

 

 

Если вопрос только в том, куда лепить шум - лепите во все выходные точки.
Это не размажет спектр, как это получилось в DDS.

 

 

Что вы понимаете под сигналом ошибки в данном случае? У вас интерполятор работает правильно, из картинок, которые вы выложили, видно что его АЧХ совпадает с теоретической.
Сигнал ошибки - это зелёненькая кривая на нижнем рисунке.

 

 

Может лучше ЛЧМ сразу на высокой частоте сгенерировать?
Я на это уже отвечал. Сигнал в общем случае произвольной формы, загружается заказчиком. Чаще конечно будет ЛЧМ. Даже если говорить о генерации ЛЧМ сразу на высокой - памяти надо много, плюс опять же всякие интерполяторы, чтобы её объём уменьшить, а это опять умножители... короче гигантский ресур, которого нет.

 

Нужно простое легковесное решение, такое же простое, как сама линейная интерполяция. Такое же простое, как дизеринг в DDS.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чаще конечно будет ЛЧМ. Даже если говорить о генерации ЛЧМ сразу на высокой - памяти надо много, плюс опять же всякие интерполяторы, чтобы её объём уменьшить, а это опять умножители... короче гигантский ресур, которого нет.

 

Всяких возможностей для трюков больше, по крайней мере таблицу синуса интерполировать проще, поскольку она она с бОльшей передискретизацией, чем произвольный сигнал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне чудеса и не нужны. Мне не опустить лепестки надо, а размазать их по спектру, т.к. есть половина диапазона сводобная. При размазывании чудес не получится. Опять привожу в пример дизеринг в DDS: добавление шума не уменьшает общую мощность ошибки, а увеличивает её, так что никаких чудес. Но зато декорреляция ошибки делает её спектр более равномерным, за счёт этого горб становится ниже, а SFDR лучше.

Не перестаю надеяться, что и для линейной интерполяции существует возможность размазать ошибку, пусть и увеличив её мощность (чтобы без чудес).

 

Идеальный NCO выдаёт идеальный сигнал, диззеринг не требуется, так? Зачем вводят диззеринг? Скомпенсировать ошибки неидального NCO, вызванного округлениями на разных стадиях вычислений (например кордика). Действительно тогда происходит перераспределение энергетического спектра вычислительных ошибок.

 

Теперь возьмём идеальный линейный интерполятор. У идельного интерполятора АЧХ соответствует той, что я выложил постом выше. Полученный вами спектр не результат вычислительных ошибок, а ожидаемый результат интерполяции/фильтрации.

 

Вы видите, что в двух случаях внеполосные искажения имеют разную природу? При этом в первом случае они зависят от входного сигнала и точности, а во втором от алгоритма интерполяции (основной вклад). Почему вы думаете, что метод перераспределения внеполосной энергии, который подходит для случая 1 подойдет для случая 2?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"у меня нет ресурсов на то, чтобы реализовать фильтр с умножителем, сплайн или даже CIC звенья, но, чтобы стало лучше, я могу куда-нибудь добавить шум"

 

Отлично, да.

 

"Размазывание" шума в DDS связано с нелинейными преобразованиями. У вас же эффекты связаны с линейными преобразованиями. Так что шум никуда не денется. Ну если только попробовать с помощью ПСП управлять коэффициентом интерполяции или фазой интерполятора.

 

По существу: FIR-фильтр с коэффициентами для "shift-and-add" или "distributed arithmetic"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"у меня нет ресурсов на то, чтобы реализовать фильтр с умножителем, сплайн или даже CIC звенья, но, чтобы стало лучше, я могу куда-нибудь добавить шум"

да, кстати, а как на лету считать коэффициент наклона для интерполяции между точками x(i), x(i+1) : k = (x(i+1)-x(i))/K, это же деление) не очень вяжется с крайне ограниченным ресурсом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Положим ?K=2^N

Есть также быстрые схемы деления, например на 3.

 

да, кстати, а как на лету считать коэффициент наклона для интерполяции между точками x(i), x(i+1) : k = (x(i+1)-x(i))/K, это же деление) не очень вяжется с крайне ограниченным ресурсом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Положим ?K=2^N

Это не стыкуется с:

Там повышение частоты от 10 до 100 раз (грубо).

Нужно делить на 10.. "(грубо)". ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10<{16,32,64}<100

 

а имея делители на ?2^N и на ?3^M, где ?M=1,2 можно в указанных пределах широко развернуться

 

Это не стыкуется с:

 

Нужно делить на 10.. "(грубо)". ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10<{16,32,64}<100

 

а имея делители на и на , где можно широко развернуться

круто, но всё равно мы себя ограничиваем, если нет делителя...

 

Krys, и шум правильно сформировался, прям по АЧХ.

Еще подумайте сразу над тем, как в своей полосе скомпенсировать неравномерность в 5-10 дБ без умножителей или объяснить заказчику, что это "ничего страшного".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему вы думаете, что метод перераспределения внеполосной энергии, который подходит для случая 1 подойдет для случая 2?

 

"у меня нет ресурсов на то, чтобы реализовать фильтр с умножителем, сплайн или даже CIC звенья, но, чтобы стало лучше, я могу куда-нибудь добавить шум"

 

Отвечу на оба сообщения: я не хотел сказать, что мне подойдёт именно один в один метод, который используется в DDS. Я лишь хочу верить, что возможно существуют простые в реализации способы разравнивания спектра и для линейной интерполяции, просто я о них не знаю. Поэтому и спросил.

Offtopic: Дополнительно 2 Fat Robot: почему вы позволяете себе поясничать и выставлять себя выше других? Нельзя просто нормально разговаривать?

 

да, кстати, а как на лету считать коэффициент наклона для интерполяции между точками x(i), x(i+1) : k = (x(i+1)-x(i))/K, это же деление) не очень вяжется с крайне ограниченным ресурсом.

Это не стыкуется с:

Нужно делить на 10.. "(грубо)". ;)

Для простоты положим, что апсемплинг на величину степени двойки. Более того, за 10 тактов посчитать один коэффициент наклона всё же можно, даже при минимуме ресурсов и без степени двойки. Тем более за 100 тактов.

 

Еще подумайте сразу над тем, как в своей полосе скомпенсировать неравномерность в 5-10 дБ без умножителей или объяснить заказчику, что это "ничего страшного".
Не понял, откуда неравномерность? У меня по картинке это порядка 1 дБ (я приблизил в матлабе).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понял, откуда неравномерность? У меня по картинке это порядка 1 дБ (я приблизил в матлабе).

Неравномерность вытекает из АЧХ линейного интерполятора, т.к. у него в принципе нет плоской вершины в полосе пропускания (в этом плане он подобен CIC фильтру). Вы прогрузите другой сигнал, например ЛЧМ с большей полосой и увидите, что ваш сформированный спектр спадает с ростом частоты. Пренебречь этим эффектом можно только при lfm_bw << fs (частоты формирования lfm)

Изменено пользователем serjj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Процитирую одного интернет-пользователя с утонченной и ранимой душевной организацией:

 

..я не хотел сказать ..

Я лишь хочу верить, что возможно..

..я о них не знаю..

Поэтому и спросил.

 

Offtopic: Дополнительно 2 Fat Robot: почему вы позволяете себе поясничать и выставлять себя выше других? Нельзя просто нормально разговаривать?

 

Если у вас есть еще какие-то вопросы, то вы спрашивайте, не стесняйтесь.

 

ах, да. Правильно писать "паясничать".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неравномерность вытекает из АЧХ линейного интерполятора, т.к. у него в принципе нет плоской вершины в полосе пропускания (в этом плане он подобен CIC фильтру). Вы прогрузите другой сигнал, например ЛЧМ с большей полосой и увидите, что ваш сформированный спектр спадает с ростом частоты. Пренебречь этим эффектом можно только при lfm_bw << fs (частоты формирования lfm)

 

serjj, знаю-знаю. Поэтому интерполяция не даёт хороших результатов, если полоса сигнала занимает всю возможную полосу (т.е. половину частоты семплирования). Поэтому для применения интерполяции полоса должна быть четверть а лучше 1/8 частоты семплирования. Это я процитировал кого-то с этого форума (читал много тем по этому поводу в последнее время).

Так что перед интерполяцией у меня имеется возможность либо задать требования на полосу сигнала, либо произвести предварительное апсемплирование на 2 или даже на 4 (на другом устройстве, в котором есть ресурсы).

 

Если у вас есть еще какие-то вопросы, то вы спрашивайте, не стесняйтесь.
Если у вас больше нечего написать по теме, то просто не пишите сообщений.

Всё же предлагаю перестать пАясничать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...