реклама на сайте
подробности

 
 
> есть ли методы дизеринга (dithering) для линейной интерполяции при повышении тактовой частоты (upsampling), хочется что-то аналогичное дизерингу при генерации синуса
Krys
сообщение Apr 16 2015, 04:10
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Здравствуйте. Подскажите, пожалуйста, есть ли методы дизеринга (dithering) для линейной интерполяции при повышении тактовой частоты (upsampling, digital up-converter), хочется что-то аналогичное дизерингу при генерации синуса в DDS, когда периодичность ошибки фазы вызывает группировку шума на каких-то частотах спектра, а дизеринг этот шум размазывает, улучшая SFDR. Мне надо что-то такое же.
Поясню на картинках.
Прикрепленное изображение

На этой картинке синим спектр исходного сигнала (ЛЧМ), до передискретизации. Красным - спектр после повышения тактовой и линейной интерполяции. Зелёным - спектр после повышения тактовой и фильтрации обычным КИХ-фильтром.

Прикрепленное изображение

Эта картинка из временного домена, после повышения тактовой (увеличено вблизи конца временной выборки, когда частота ЛЧМ близка к максимальной). Синим - результат линейной интерполяции, красным - результат интерполяции через КИХ-фильтр (зелёный спектр на предыдущей картинке), а зелёным - разница между синей и красной кривыми.

По первой картинке (красная кривая) видно, что присутствуют зеркальные спектры от ЛЧМ. Хочется их маленько ослабить, размазав, т.к. есть запас по частоте в половину диапазона (полоса ЛЧМ - четверть частоты дискретизации). Т.е. аналогично размазывают дизерингом составляющие от DDS. Вот я подумал, нельзя ли что-то подобное сделать для линейной интерполяции? Куда тут только шум влепить... в узловые точки интерполяции?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
5 страниц V  < 1 2 3 4 > »   
Start new topic
Ответов (15 - 29)
Krys
сообщение Apr 16 2015, 07:59
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(serjj @ Apr 16 2015, 14:37) *
Добавление на вход интерполятора шума ничего не даст
Прекрасно понимаю. Если бы можно было что-то улучшить, добавив шум, то я бы не открывал эту тему. Это первое, что мне пришло в голову и что я моментально отмёл.


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


Цитата(ViKo @ Apr 16 2015, 14:40) *
Если вопрос только в том, куда лепить шум - лепите во все выходные точки.
Это не размажет спектр, как это получилось в DDS.


Цитата(serjj @ Apr 16 2015, 14:42) *
Что вы понимаете под сигналом ошибки в данном случае? У вас интерполятор работает правильно, из картинок, которые вы выложили, видно что его АЧХ совпадает с теоретической.
Сигнал ошибки - это зелёненькая кривая на нижнем рисунке.


Цитата(petrov @ Apr 16 2015, 14:46) *
Может лучше ЛЧМ сразу на высокой частоте сгенерировать?
Я на это уже отвечал. Сигнал в общем случае произвольной формы, загружается заказчиком. Чаще конечно будет ЛЧМ. Даже если говорить о генерации ЛЧМ сразу на высокой - памяти надо много, плюс опять же всякие интерполяторы, чтобы её объём уменьшить, а это опять умножители... короче гигантский ресур, которого нет.

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


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 16 2015, 08:11
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Krys @ Apr 16 2015, 10:59) *
Чаще конечно будет ЛЧМ. Даже если говорить о генерации ЛЧМ сразу на высокой - памяти надо много, плюс опять же всякие интерполяторы, чтобы её объём уменьшить, а это опять умножители... короче гигантский ресур, которого нет.


Всяких возможностей для трюков больше, по крайней мере таблицу синуса интерполировать проще, поскольку она она с бОльшей передискретизацией, чем произвольный сигнал.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 16 2015, 08:15
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Покажите картинку с добавленным шумом.
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 16 2015, 08:31
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



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


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

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

Вы видите, что в двух случаях внеполосные искажения имеют разную природу? При этом в первом случае они зависят от входного сигнала и точности, а во втором от алгоритма интерполяции (основной вклад). Почему вы думаете, что метод перераспределения внеполосной энергии, который подходит для случая 1 подойдет для случая 2?
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Apr 16 2015, 08:31
Сообщение #20


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



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

Отлично, да.

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

По существу: FIR-фильтр с коэффициентами для "shift-and-add" или "distributed arithmetic"
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 16 2015, 08:37
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



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

да, кстати, а как на лету считать коэффициент наклона для интерполяции между точками x(i), x(i+1) : k = (x(i+1)-x(i))/K, это же деление) не очень вяжется с крайне ограниченным ресурсом.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Apr 16 2015, 08:49
Сообщение #22


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



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

Цитата(serjj @ Apr 16 2015, 09:37) *
да, кстати, а как на лету считать коэффициент наклона для интерполяции между точками x(i), x(i+1) : k = (x(i+1)-x(i))/K, это же деление) не очень вяжется с крайне ограниченным ресурсом.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Apr 16 2015, 08:55
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(Fat Robot @ Apr 16 2015, 11:49) *
Положим

Это не стыкуется с:
Цитата(Krys @ Apr 16 2015, 09:42) *
Там повышение частоты от 10 до 100 раз (грубо).

Нужно делить на 10.. "(грубо)". wink.gif
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 16 2015, 08:58
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(ViKo @ Apr 16 2015, 15:15) *
Покажите картинку с добавленным шумом.

Прикрепленное изображение

Прикрепленное изображение


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Apr 16 2015, 09:00
Сообщение #25


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



10<{16,32,64}<100

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

Цитата(blackfin @ Apr 16 2015, 09:55) *
Это не стыкуется с:

Нужно делить на 10.. "(грубо)". wink.gif
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 16 2015, 09:08
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
10<{16,32,64}<100

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

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

Krys, и шум правильно сформировался, прям по АЧХ.
Еще подумайте сразу над тем, как в своей полосе скомпенсировать неравномерность в 5-10 дБ без умножителей или объяснить заказчику, что это "ничего страшного".
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 16 2015, 09:13
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(serjj @ Apr 16 2015, 15:31) *
Почему вы думаете, что метод перераспределения внеполосной энергии, который подходит для случая 1 подойдет для случая 2?


Цитата(Fat Robot @ Apr 16 2015, 15:31) *
"у меня нет ресурсов на то, чтобы реализовать фильтр с умножителем, сплайн или даже CIC звенья, но, чтобы стало лучше, я могу куда-нибудь добавить шум"


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


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

Цитата(blackfin @ Apr 16 2015, 15:55) *
Это не стыкуется с:
Нужно делить на 10.. "(грубо)". ;)

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

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


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 16 2015, 09:21
Сообщение #28


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



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

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

Сообщение отредактировал serjj - Apr 16 2015, 09:21
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Apr 16 2015, 09:24
Сообщение #29


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



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

Цитата(Krys @ Apr 16 2015, 10:13) *
..я не хотел сказать ..
Я лишь хочу верить, что возможно..
..я о них не знаю..
Поэтому и спросил.

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


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

ах, да. Правильно писать "паясничать".
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 16 2015, 09:30
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



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


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

Цитата(Fat Robot @ Apr 16 2015, 16:24) *
Если у вас есть еще какие-то вопросы, то вы спрашивайте, не стесняйтесь.
Если у вас больше нечего написать по теме, то просто не пишите сообщений.
Всё же предлагаю перестать пАясничать.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 01:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0153 секунд с 7
ELECTRONIX ©2004-2016