Krys 2 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Здравствуйте. Подскажите, пожалуйста, есть ли методы дизеринга (dithering) для линейной интерполяции при повышении тактовой частоты (upsampling, digital up-converter), хочется что-то аналогичное дизерингу при генерации синуса в DDS, когда периодичность ошибки фазы вызывает группировку шума на каких-то частотах спектра, а дизеринг этот шум размазывает, улучшая SFDR. Мне надо что-то такое же. Поясню на картинках. На этой картинке синим спектр исходного сигнала (ЛЧМ), до передискретизации. Красным - спектр после повышения тактовой и линейной интерполяции. Зелёным - спектр после повышения тактовой и фильтрации обычным КИХ-фильтром. Эта картинка из временного домена, после повышения тактовой (увеличено вблизи конца временной выборки, когда частота ЛЧМ близка к максимальной). Синим - результат линейной интерполяции, красным - результат интерполяции через КИХ-фильтр (зелёный спектр на предыдущей картинке), а зелёным - разница между синей и красной кривыми. По первой картинке (красная кривая) видно, что присутствуют зеркальные спектры от ЛЧМ. Хочется их маленько ослабить, размазав, т.к. есть запас по частоте в половину диапазона (полоса ЛЧМ - четверть частоты дискретизации). Т.е. аналогично размазывают дизерингом составляющие от DDS. Вот я подумал, нельзя ли что-то подобное сделать для линейной интерполяции? Куда тут только шум влепить... в узловые точки интерполяции? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Может, лучше сделать кубическую интерполяцию? Вместо линейной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Конечно лучше )) Тот же Фарроу )) Но это надо умножители, коих нет. Линейная не требует умножителей вообще, только аккумулятор (т.е. делаем инкремент с определённым шагом, и всё). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 45 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Есть CIC фильтры только со сложением, можно и FIR взять 2-3 разрядный по коэффициентам, так что он фактически выродится в чистое сложение. Вижу в другой теме пытались затронуть эти вопросы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 45 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба .. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба CIC-фильтры из другой темы - это совсем другая тема, к это отношения не имеющая. Просто так совпало, что я хватаюсь за всё сразу )) В данной теме CIC-фильтры - тоже сожрут много ресурсов, пусть и не умножителей. Не вариант. По ресурсам возможна только простейшая обработка, коей является линейная интерполяция. Просто у неё хочется чуть улучшить характеристики, как это делается дизерингом в DDS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 45 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба В DDS другая история, там уровень составляющих ниже и размазывание идет за счет рандомизации округления. У Вас побочные составляющие - часть самого сигнала. Только если шум поднимать до уровня, сами понимаете чего, но нужно ли это? ЛЧМ можно сразу и на высокой формировать, если дело в этом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба кусочно-линейная интерполяция тоже не подходит, т.е. разбить на несколько интервалов и для каждого интервала производить интерполяцию в соответствии какой-то таблицы (функции)? PS rloc прав - нужны фильтры, возможно их каскадное соединение Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба В DDS другая история, там уровень составляющих ниже и размазывание идет за счет рандомизации округления. У Вас побочные составляющие - часть самого сигнала. Только если шум поднимать до уровня, сами понимаете чего, но нужно ли это? ЛЧМ можно сразу и на высокой формировать, если дело в этом. Я понимаю, что история другая. Но принцип - размазывание спектра. Т.е. один горб и низкие окраины выравниваются в высокие окраины и малый горб, что даёт улучшение не по совокупной мощности ошибки, а по её максимальной палке в спектре (SFDR). Другими словами, декорреляция ошибки. Вот мне нужно тоже самое, т.е. сбить периодичность ошибки, чтобы она появлялась то тут, то там, тогда и спектр размажется, а явный пик исчезнет. Чистый ЛЧМ - это для примера. Может быть произвольный сигнал, прогружаемый заказчиком. Храниться будет в памяти. На полной тактовой памяти потребуется много ) Там повышение частоты от 10 до 100 раз (грубо). кусочно-линейная интерполяция тоже не подходит, т.е. разбить на несколько интервалов и для каждого интервала производить интерполяцию в соответствии какой-то таблицы (функции)?Не понял, в чём Ваш вопрос? Или это предложение?... Моя постановка задачи в первом сообщении - это и есть кусочно-линейная интерполяция. Как она может не подходить? PS rloc прав - нужны фильтры, возможно их каскадное соединениеКто ж спорит против фильтров... Если на них нет ресурсов - то на безрыбье и линейная интерполяция подойдёт. Вопрос только в том, как её задизерить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Не понял, в чём Ваш вопрос? Или это предложение?... Моя постановка задачи в первом сообщении - это и есть кусочно-линейная интерполяция. Как она может не подходить? это предложение :) в таблице Вы можете записать любую нелинейную функцию, пропуская отсчет через ROM (таблицу) получаете нелинейную функцию, таким образом произведете подмешивание в первичный сигнал псевдослучайного шума со специально подобранным спектром. Разбиение на интервалы позволит более правильней(если можно так сказать) интерполировать различные участки (возрастание, спад, горизонтальные области) PS Зато нет умножителей и сумматоров, правда памяти может много потребоваться для достижения точности... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Добавление на вход интерполятора шума ничего не даст, т.к. интерполятор - это некоторый фильтр с переходными характеристиками, зависящими от типа интерполятора а не входного сигнала. Их можно легко измерить так же как и для FIR фильтра, подав импульс. Вот пример АЧХ для 4-х стандартных интерполяций, которые есть в матлабе: Если вы хотите опустить боковые лепестки в вашей системе, необходимо менять алгоритм интерполяции, следствие - рост сложности и объема вычислений. Чудес не бывает :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Maverick, Понял Вас. Но ресурсов тоже сожрёт кучу. И всякие детекторы спада, возрастания и горизонтальных участков - отдельная логика. Я рассчитывал каким-то образом подмешивать шум по аналогии с DDS. Там шум наверняка генерится не таблицами, а банальным LFSR. Нужна какая-то простая идея, куда этот шум инжектировать, чтобы сорвать периодичность сигнала ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Если вопрос только в том, куда лепить шум - лепите во все выходные точки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Что вы понимаете под сигналом ошибки в данном случае? У вас интерполятор работает правильно, из картинок, которые вы выложили, видно что его АЧХ совпадает с теоретической. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 16 апреля, 2015 Опубликовано 16 апреля, 2015 · Жалоба Может лучше ЛЧМ сразу на высокой частоте сгенерировать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться