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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Upsampling
Allregia
сообщение Jul 30 2013, 20:40
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Стандартный алгоритм апсемплинга прост - добиваем нулями промежуточные значения, затем ФНЧ.

Есть пара вопросов (предположим, что речь идет о кратном аспемлинге, т.е. х2, х4, этц.):

1) как узнать минимальные требования к ФНЧ? В смысле - минимальный порядок, нужет тут FIR или можно IIR или "скользящее среднее" (как самый быстрый фильтр)
2) По идее - чем меньше разность значения в добавляемом отсчете от того что там должно быть - тем "легче" фильтру (т.е. он может быть более низкого порядка). Может есть смысл добивать тогда не нулями а средним значением между имеющимися отсчетами (линейная интерполяция).
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jul 30 2013, 20:45
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Allregia @ Jul 30 2013, 23:40) *
Стандартный алгоритм апсемплинга прост - добиваем нулями промежуточные значения, затем ФНЧ.

Есть пара вопросов (предположим, что речь идет о кратном аспемлинге, т.е. х2, х4, этц.):

1) как узнать минимальные требования к ФНЧ? В смысле - минимальный порядок, нужет тут FIR или можно IIR или "скользящее среднее" (как самый быстрый фильтр)
2) По идее - чем меньше разность значения в добавляемом отсчете от того что там должно быть - тем "легче" фильтру (т.е. он может быть более низкого порядка). Может есть смысл добивать тогда не нулями а средним значением между имеющимися отсчетами (линейная интерполяция).

добавлять надо нулями, а требования как к обычному фильтру - неравномерность в полосе пропускания, необходимый к-нт подавления в полосе заграждения, ну и плюс вопросы физической реализуемости.
P.S. еще необходимо учитывать требования к линейности ФЧХ

Сообщение отредактировал Serg76 - Jul 30 2013, 20:49
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 31 2013, 10:49
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Serg76 @ Jul 30 2013, 22:45) *
добавлять надо нулями,


Т.е. вариант с линейной интерполяцией не годится?

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


Как его узнать, этот "необходимый к-нт подавления"? Я пробовал с простым ФНЧ 2-го порядка - жуть, что на осциллографе, что на спектроанализаторе.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jul 31 2013, 11:08
Сообщение #4


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (Allregia @ Jul 31 2013, 14:49) *
Как его узнать, этот "необходимый к-нт подавления"? Я пробовал с простым ФНЧ 2-го порядка - жуть, что на осциллографе, что на спектроанализаторе.

..у вас есть требования по соотношению полезный сигнал/спуры ? - вот примените это требование к фильтру.
Надо например чтобы спуры давились на 70 Дб , значит это подавление в полосе заграждения, потому как от туда всё копируется в рабочую полосу.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
serg1333
сообщение Jul 31 2013, 12:26
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 30-06-13
Из: Томск
Пользователь №: 77 321



Чем больше апсемплинг тем более узкополосным должен быть FIR фильтр, следовательно для обеспечения требуемого качества (скругление, подавление за полосой, неравномерность в полосе) потребуется увеличить его порядок. Если нужен апсемплинг 8х и более стоит задуматься о связке FIR + CIC.

Цитата
Я пробовал с простым ФНЧ 2-го порядка

Если речь о FIR фильтре начните с 32 порядка... А если ресурс позволяет то с 64.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 31 2013, 12:37
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Ммм да, слишком дикие цифры получаются. Осталось понять, как это делают "в железе" за достаточно невысокую стоимость.
Go to the top of the page
 
+Quote Post
serg1333
сообщение Jul 31 2013, 12:41
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 30-06-13
Из: Томск
Пользователь №: 77 321



У вас полоса какая? А делаете на чем? ПЛИС, ДСП?
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 31 2013, 13:54
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(serg1333 @ Jul 31 2013, 14:41) *
У вас полоса какая?


Звуковая.

Цитата
А делаете на чем? ПЛИС, ДСП?


ДСП.

Цитата(serg1333 @ Jul 31 2013, 14:26) *
Чем больше апсемплинг тем более узкополосным должен быть FIR фильтр,


х2, х4 и иногда х8

Цитата
следовательно для обеспечения требуемого качества (скругление, подавление за полосой, неравномерность в полосе) потребуется увеличить его порядок. Если нужен апсемплинг 8х и более стоит задуматься о связке FIR + CIC.


Если речь о FIR фильтре начните с 32 порядка... А если ресурс позволяет то с 64.


это порядок, или число тапов?
Go to the top of the page
 
+Quote Post
serg1333
сообщение Jul 31 2013, 15:36
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 30-06-13
Из: Томск
Пользователь №: 77 321



В общем случае порядок FIR фильтра и количество отводов с умножителями совпадают, хотя если фильтр проектируется с симметричной импульсной, то можно сделать фильтр с N/2+1 умножителями. Для такой узкой полосы можно сделать фильтр большого порядка. В случае вещественного входного сигнала для фильтра 128 порядка потребуется на каждый сэмпл делать 65 вещественных умножений, так же потребуется 512 байт на линию задержки (если используется 32-битная логика). Сам пишу на ПЛИС, там ресурс считается по-другому, но не думаю, что фильтрация полосы менее 22 кГц составит для процессора проблему.

Чтобы сделать 3 варианта фильтрации одним фильтром, можно сделать три набора коэффициентов, соответствующих, например 128 порядку. Порядок будет определяться по худшему случаю, т.е. когда апсемплинг равен 8. Для 4 и 2 просто уменьшайте скругление. Не забудьте нормализовать усиление коэффициентов фильтра для разных полос, иначе при переключении апсемплинга будете наблюдать разную мощность на выходе фильтра.
Go to the top of the page
 
+Quote Post
V_G
сообщение Jul 31 2013, 17:09
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Allregia @ Jul 31 2013, 22:37) *
Ммм да, слишком дикие цифры получаются. Осталось понять, как это делают "в железе" за достаточно невысокую стоимость.

Вообще-то прежде чем плодить длинное обсуждение, стоило знать спектр сигнала, дополненного нулями. Из него проистекают требования к ФНЧ.
Т.к. спектр модулированной импульсной последовательности однозначен и понятен (бесконечно размноженные копии спектра исходного сигнала на гармониках СТАРОЙ частоты дискретизации), ФНЧ должен убивать до уровня шумов эти копии. Т.е. в общем случае все, что выше половины старой частоты дискретизации.

А предварительную интерполяцию отсчетов не применяют, т.к. она породит непредсказуемую форму спектра нового сигнала, и требования к ФНЧ невозможно будет формализовать.
Go to the top of the page
 
+Quote Post
Sekat
сообщение Jul 31 2013, 17:20
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 13-02-12
Пользователь №: 70 242



Цитата(Allregia @ Jul 31 2013, 16:37) *
Ммм да, слишком дикие цифры получаются. Осталось понять, как это делают "в железе" за достаточно невысокую стоимость.

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

Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 31 2013, 18:04
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



ОК, спасибо, я проверю насчет Фарроу.

Цитата


Линия задержки не проблема, памяти хватает, но вот насчет 65 вещественных умножений двух 32b и потом сложение 64b - сильно сомневаюсь, проц у меня слабенкий. Ну не получится - не страшно, я хотел просто дополнительные возможности сделать, в ТЗ их нет и без них можно и обойтись. Без х8 - 100% можно обойтись, даже и без х4 - хватило бы одного х2, но скорее всего по нормальному - и его не успею.

Цитата(V_G @ Jul 31 2013, 19:09) *
Вообще-то прежде чем плодить длинное обсуждение, стоило знать спектр сигнала, дополненного нулями. Из него проистекают требования к ФНЧ.


Спектр я знаю, видел на анализаторе что получается приодном только дополнении без фильтрации - ужас sad.gif
Что при линейной интерполяции происходит - тоже видел, не меньший ужас, но я думал может можно как-то улучшить интерполяцию (правда я не уверен, что какой-нибудь сплайн будет менее ресурсоемкий чем длинный FIR).

Цитата
Т.к. спектр модулированной импульсной последовательности однозначен и понятен (бесконечно размноженные копии спектра исходного сигнала на гармониках СТАРОЙ частоты дискретизации), ФНЧ должен убивать до уровня шумов эти копии. Т.е. в общем случае все, что выше половины старой частоты дискретизации.

А предварительную интерполяцию отсчетов не применяют, т.к. она породит непредсказуемую форму спектра нового сигнала, и требования к ФНЧ невозможно будет формализовать.


Понятно.
При слабом фильтре (2-4 порядок) как только частота сигнала выше четверти старой частоты дискретизации (ниже - все более-менее приемлимо) - начинают плодиться паразиты, амплитудой не сильно меньше амплитуды самого сигнала (синус) на частотах 0.5-0.75 от старой частоты дискретизации.
Go to the top of the page
 
+Quote Post
V_G
сообщение Jul 31 2013, 21:33
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Allregia @ Aug 1 2013, 04:04) *
При слабом фильтре (2-4 порядок) как только частота сигнала выше четверти старой частоты дискретизации (ниже - все более-менее приемлимо) - начинают плодиться паразиты, амплитудой не сильно меньше амплитуды самого сигнала (синус) на частотах 0.5-0.75 от старой частоты дискретизации.

Так на этих частотах и имеется зеркальный образ основного спектра. Поэтому если спектр заранее ограничен (например, третью или четвертью частоты дискретизации), построить ФНЧ после интерполяции легче. Если есть возможность, можно ДО интерполяции поставить ФНЧ, ограничивающий спектр сигнала. Его порядок будет меньше порядка аналогичного ФНЧ после интерполяции.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Aug 1 2013, 07:11
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(V_G @ Jul 31 2013, 23:33) *
Так на этих частотах и имеется зеркальный образ основного спектра. Поэтому если спектр заранее ограничен (например, третью или четвертью частоты дискретизации),


К сожалению не получится - есть два варианта входного сигнала, в первом он почти до половины ЧД, во втором - до четверти, но первый вариант как раз наиболее интересный.
Go to the top of the page
 
+Quote Post
Corner
сообщение Aug 17 2013, 18:12
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Я чего-то не понимаю, но CIC фильтры как раз для этого и придуманы.
В данном случае можно применить каскадный вариант x2-CIC-x2-CIC... до нужного коэффициента децимации. Правда если он не степень двойки, то потребуется на 1... 2 каскадов больше. Особенно удобно если у вас сигнальник, тогда вся процедура строится в виде рекурсивной функции.

Сообщение отредактировал Corner - Aug 17 2013, 18:18
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 23:20
Рейтинг@Mail.ru


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