|
|
  |
есть ли методы дизеринга (dithering) для линейной интерполяции при повышении тактовой частоты (upsampling), хочется что-то аналогичное дизерингу при генерации синуса |
|
|
|
Apr 17 2015, 07:48
|

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

|
Цитата(serjj @ Apr 17 2015, 13:55)  В LE/память/умножители/какие_еще_у_нас_там_ресурсы желательно приведите подтверждение этому удтверждению. А то не конструктивно как-то Ну я где-то выше уже расписывал. Типа на линейную интерполяцию не требуется умножитель вообще, только аккумулятор (сумматор) с постоянным инкрементом. А на несколько каскадов CIC требуются много сумматоров. Затем будет требоваться корректирующий КИХ-фильтр на умножителях. Цитата(ViKo @ Apr 17 2015, 14:25)  Что мешает проверить? да зачем?... и так же понятно, что просто горизонтальная шумовая полка поднимется у всего спектра. Цитата(ViKo @ Apr 17 2015, 14:25)  пропустите через фильтр Через какой фильтр? Цитата(ViKo @ Apr 17 2015, 13:52)  А, у вас там частота относительная Дак это ж на графике написано, что относительная ))
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Apr 17 2015, 07:51
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата Ну я где-то выше уже расписывал. Типа на линейную интерполяцию не требуется умножитель вообще, только аккумулятор (сумматор) с постоянным инкрементом. А на несколько каскадов CIC требуются много сумматоров. Затем будет требоваться корректирующий КИХ-фильтр на умножителях. По поводу коррекции. Для линейного интерполятора тоже нужна коррекция. А если у вас полоса мала в сравнении с fs, то и для CIC можно попробовать обойтись без коррекции. Вот пример:
Ставим CIC 4 порядка, видим, что завал АЧХ в полосе пропускания не превышает завал при линейной интерполяции, но боковые лепестки ниже на 25 дБ. Можно получить и лучше, если использовать звенья с разными параметрами и подбирать полюса. Но это как нибудь без меня По ресурсам: CIC 5 порядка в передатчике занимал на 3-м Cyclone около 250 LE на квадратуру + память, которая зависит от задержек.
|
|
|
|
|
Apr 17 2015, 08:35
|

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

|
Цитата(serjj @ Apr 17 2015, 14:51)  А если у вас полоса мала в сравнении с fs, то и для CIC можно попробовать обойтись без коррекции. Полоса либо половина возможной, либо четверть, но не меньше. Цитата(serjj @ Apr 17 2015, 14:51)  Ставим CIC 4 порядка, видим, что завал АЧХ в полосе пропускания не превышает завал при линейной интерполяции, но боковые лепестки ниже на 25 дБ. Можно получить и лучше, если использовать звенья с разными параметрами и подбирать полюса Спасибо, убедили. Пожалуй, способ сгодится. ------------ Ещё думал какой-нибудь вариант, на основе того, который выше предлагал Maverick, когда ищем изменение знака производной, считаем эти места макушками синусоид, подменяем их табличными значениями. А между макушками делаем как и раньше линейную интерполяцию. Цитата(ViKo @ Apr 17 2015, 15:18)  Шум добавите до фильтра. А фильтр - какой сможете сделать, пользуясь доступными ресурсами, хоть ИГФ, хоть КИХ, хоть оба, а хотя бы и БИХ. Это какая-то каша из топора получается. Фильтр нельзя из-за отсутствия ресурса. Но если добавить шум, а потом пропустить через фильтр - то так можно ))) Ресурс то на фильтр не возьмётся.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Apr 17 2015, 09:52
|

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

|
Цитата(ViKo @ Apr 17 2015, 16:28)  Мне представлялось, что первый способ лучше Ну по идее должно быть лучше, так что буду иметь в виду и такой способ. Цитата(ViKo @ Apr 17 2015, 16:28)  Или выдайте свои скрипты. Не проблема, в прикреплении. А то действительно щас особо некогда всё подряд пробовать, извиняюсь. Если у Вас есть интерес, желание и время, то спасибо за участие.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Apr 17 2015, 09:57
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Krys @ Apr 17 2015, 05:54)  petrov, Фарроу не годится в любом случае по ресурсам - сложнее он не раза в 2. Учитывая, что в линейной интерполяции нет умножителей вообще, а в Фарроу их 3 только на полином, да плюс ещё на коэффициенты. В параболическом 2 полных умножителя, если вы увеличиваете частоту дискретизации в 2^n, то они точно так же упрощаются как и в линейном, коэффициенты тоже оч простые +-0.5 и сложения, это очень простая штука. Если подавления всё же не будет хватать, можно перед Фарроу ещё в 2 раза частоту увеличить полуполосным полифазным фильтром на распределённой арифметике, тоже очень простым.
|
|
|
|
|
Apr 17 2015, 13:30
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(ViKo @ Apr 16 2015, 13:42)  А на 10 поделить, не подскажете, где почитать?  А на 11? 12? На 10 и на 12 подскажу.. На всякий случай...  A/3 = A/(4-1) = (A/4)*[1/(1-1/4)] = (A/4)*[1+1/4 1+1/4 2+1/4 3+...] = (A>>2)+(A>>4)+(A>>6)+(A>>8)+... A/5 = A/(4+1) = (A/4)*[1/(1+1/4)] = (A/4)*[1-1/4 1+1/4 2-1/4 3+...] = (A>>2)-(A>>4)+(A>>6)-(A>>8)+... A/7 = A/(8-1) = (A/8)*[1/(1-1/8)] = (A/8)*[1+1/8 1+1/8 2+1/8 3+...] = (A>>3)+(A>>6)+(A>>9)+(A>>12)+... A/9 = A/(8+1) = (A/8)*[1/(1+1/8)] = (A/8)*[1-1/8 1+1/8 2-1/8 3+...] = (A>>3)-(A>>6)+(A>>9)-(A>>12)+... A/10 = A/(8+2) = (A/8)*[1/(1+1/4)] = (A/8)*[1-1/4 1+1/4 2-1/4 3+...] = (A>>3)-(A>>5)+(A>>7)-(A>>9)+... A/12 = A/(16-4) = (A/16)*[1/(1-1/4)] = (A/16)*[1+1/4 1+1/4 2+1/4 3+...] = (A>>4)+(A>>6)+(A>>8)+(A>>10)+... И тд..
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|