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

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

В LE/память/умножители/какие_еще_у_нас_там_ресурсы желательно приведите подтверждение этому удтверждению. А то не конструктивно как-то
Ну я где-то выше уже расписывал. Типа на линейную интерполяцию не требуется умножитель вообще, только аккумулятор (сумматор) с постоянным инкрементом. А на несколько каскадов CIC требуются много сумматоров. Затем будет требоваться корректирующий КИХ-фильтр на умножителях.

 

 

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

 

пропустите через фильтр
Через какой фильтр?

 

 

А, у вас там частота относительная
Дак это ж на графике написано, что относительная ))

 

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


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

Ну я где-то выше уже расписывал. Типа на линейную интерполяцию не требуется умножитель вообще, только аккумулятор (сумматор) с постоянным инкрементом. А на несколько каскадов CIC требуются много сумматоров. Затем будет требоваться корректирующий КИХ-фильтр на умножителях.

По поводу коррекции. Для линейного интерполятора тоже нужна коррекция. А если у вас полоса мала в сравнении с fs, то и для CIC можно попробовать обойтись без коррекции. Вот пример:

post-81866-1429256911_thumb.png

Ставим CIC 4 порядка, видим, что завал АЧХ в полосе пропускания не превышает завал при линейной интерполяции, но боковые лепестки ниже на 25 дБ. Можно получить и лучше, если использовать звенья с разными параметрами и подбирать полюса. Но это как нибудь без меня :rolleyes:

По ресурсам: CIC 5 порядка в передатчике занимал на 3-м Cyclone около 250 LE на квадратуру + память, которая зависит от задержек.

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


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

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

Через какой фильтр?

Шум добавите до фильтра. А фильтр - какой сможете сделать, пользуясь доступными ресурсами, хоть ИГФ, хоть КИХ, хоть оба, а хотя бы и БИХ.

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


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

А если у вас полоса мала в сравнении с fs, то и для CIC можно попробовать обойтись без коррекции.
Полоса либо половина возможной, либо четверть, но не меньше.

 

Ставим CIC 4 порядка, видим, что завал АЧХ в полосе пропускания не превышает завал при линейной интерполяции, но боковые лепестки ниже на 25 дБ. Можно получить и лучше, если использовать звенья с разными параметрами и подбирать полюса
Спасибо, убедили. Пожалуй, способ сгодится.

 

------------

 

Ещё думал какой-нибудь вариант, на основе того, который выше предлагал Maverick, когда ищем изменение знака производной, считаем эти места макушками синусоид, подменяем их табличными значениями. А между макушками делаем как и раньше линейную интерполяцию.

 

 

Шум добавите до фильтра. А фильтр - какой сможете сделать, пользуясь доступными ресурсами, хоть ИГФ, хоть КИХ, хоть оба, а хотя бы и БИХ.
Это какая-то каша из топора получается. Фильтр нельзя из-за отсутствия ресурса. Но если добавить шум, а потом пропустить через фильтр - то так можно ))) Ресурс то на фильтр не возьмётся.

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


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

Спасибо, убедили. Пожалуй, способ сгодится.

Это какая-то каша из топора получается. Фильтр нельзя из-за отсутствия ресурса. Но если добавить шум, а потом пропустить через фильтр - то так можно ))) Ресурс то на фильтр не возьмётся.

Точно, каша... но не из топора, а в голове. На CIC вас убедили, а на фильтр ресурсов нет? :rolleyes:

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


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

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

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


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

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

Хотелось бы сравнить, что выдаст более чистый сигнал: сначала сделать линейную интерполяцию, а потом пропустить ее через фильтр, или дополнить нулями и пропустить через фильтр. Мне представлялось, что первый способ лучше. Но после ваших картин уже не знаю.

Аналогично посмотреть с шумом и без. Вы же имеете инструмент. Или выдайте свои скрипты.

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


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

Мне представлялось, что первый способ лучше
Ну по идее должно быть лучше, так что буду иметь в виду и такой способ.

 

 

Или выдайте свои скрипты.
Не проблема, в прикреплении. А то действительно щас особо некогда всё подряд пробовать, извиняюсь. Если у Вас есть интерес, желание и время, то спасибо за участие.

lin_interp_test.rar

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


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

petrov, Фарроу не годится в любом случае по ресурсам - сложнее он не раза в 2. Учитывая, что в линейной интерполяции нет умножителей вообще, а в Фарроу их 3 только на полином, да плюс ещё на коэффициенты.

 

В параболическом 2 полных умножителя, если вы увеличиваете частоту дискретизации в 2^n, то они точно так же упрощаются как и в линейном, коэффициенты тоже оч простые +-0.5 и сложения, это очень простая штука. Если подавления всё же не будет хватать, можно перед Фарроу ещё в 2 раза частоту увеличить полуполосным полифазным фильтром на распределённой арифметике, тоже очень простым.

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


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

Дайте пожалуйста ссылки на описанный Вами простой способ параболической интерполяции с простыми коэффициентами. И что-нибудь про оптимизированные half-band фильтры, которые на распределённой арифметике можно сделать. Заранее спасибо.

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


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

Дайте пожалуйста ссылки на описанный Вами простой способ параболической интерполяции с простыми коэффициентами. И что-нибудь про оптимизированные half-band фильтры, которые на распределённой арифметике можно сделать. Заранее спасибо.

 

interpolation_in_digital_modems___part_2.pdf

 

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

 

Про распределённую арифметику можно легко у альтеры-зайлинкса доки найти.

 

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


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

А на 10 поделить, не подскажете, где почитать? :) А на 11? 12?

На 10 и на 12 подскажу.. На всякий случай... :)

 

A/3 = A/(4-1) = (A/4)*[1/(1-1/4)] = (A/4)*[1+1/41+1/42+1/43+...] = (A>>2)+(A>>4)+(A>>6)+(A>>8)+...

 

A/5 = A/(4+1) = (A/4)*[1/(1+1/4)] = (A/4)*[1-1/41+1/42-1/43+...] = (A>>2)-(A>>4)+(A>>6)-(A>>8)+...

 

A/7 = A/(8-1) = (A/8)*[1/(1-1/8)] = (A/8)*[1+1/81+1/82+1/83+...] = (A>>3)+(A>>6)+(A>>9)+(A>>12)+...

 

A/9 = A/(8+1) = (A/8)*[1/(1+1/8)] = (A/8)*[1-1/81+1/82-1/83+...] = (A>>3)-(A>>6)+(A>>9)-(A>>12)+...

 

A/10 = A/(8+2) = (A/8)*[1/(1+1/4)] = (A/8)*[1-1/41+1/42-1/43+...] = (A>>3)-(A>>5)+(A>>7)-(A>>9)+...

 

A/12 = A/(16-4) = (A/16)*[1/(1-1/4)] = (A/16)*[1+1/41+1/42+1/43+...] = (A>>4)+(A>>6)+(A>>8)+(A>>10)+...

 

И тд..

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


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

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

Обратный вариант - бегающий полюс цик. Это два цика в параллель и суммирование их выходов с разными весами: вес А меняется от 0 до 1, Б = 1-А. - это самое близкое к тому о чем спрашивалось.

Линейная и любая другая интерполяеция есть частный случай фильтрации с послаблениями возможнымии благодаря замечательным свойствам сигнала. Прежде чем заявлять что линейная интерполяция лучше, необходимо проверить это на всех возможных реализациях сигнала.

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


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

Если это курсовой или дирломная, то качающийся полюс не стоит применять - устанете объяснять как работает.

 

Полуполосный фильтр это фир с импульсной син(х)/х. Умножителей меньше в 2 раза относительно остальных фир с симметричной импульсной. На каждое повышение частоты в 2 раза нужен такой фильтр.

Если жалко ресурсы, можно сделать один полифазный конвейерный фильтр на памяти. Но это тема для отдельной дипломной)

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

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


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

Если это курсовой или дирломная, то качающийся полюс не стоит применять - устанете объяснять как работает.

что такое качающийся плюс?

это ж вроде разложение в ряд Маклорена или Тейлора, если я не ошибаюсь...

 

 

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


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

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

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

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

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

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

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

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

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

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