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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Реализация нерекурсивного фильтра CIC
des00
сообщение Jul 19 2016, 10:39
Сообщение #16


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(_Anatoliy @ Jul 19 2016, 17:37) *
Как из параметров R,M,N получить номер порядка?

Order = R*M

Цитата
Ой, с маткадом уже лет 8 не работаю... А в матлабе есть такая возможность?

В код всмотритесь, там просто расчет импульсной характеристики 6 последовательных фильтров. Ну и фурье от итоговой ИХ.


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 10:46
Сообщение #17


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Jul 19 2016, 13:33) *
я делаю так (это маткад, он нагляднее).

Ой, с маткадом уже лет 8 не работаю... А в матлабе есть такая возможность?

Цитата(des00 @ Jul 19 2016, 13:39) *
Order = R*M

Ни фига не пойму. А как же Лайонс , врёт что ли? Только от М... А М у него - количество секций.
Цитата(des00 @ Jul 19 2016, 13:39) *
В код всмотритесь, там просто расчет импульсной характеристики 6 последовательных фильтров. Ну и фурье от итоговой ИХ.

Спасибо!
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 19 2016, 10:49
Сообщение #18


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(_Anatoliy @ Jul 19 2016, 17:46) *
Ни фига не пойму. А как же Лайонс , врёт что ли? Только от М...

Порядок звена да, а порядок фильтра нет. Тем и плохи CIC фильтры, что без децимации внутри не работают. Точнее вырождаются в фильтры скользящего среднего (допускающие усекание разрядов кстати). В приложении теория "на пальцах"
Прикрепленные файлы
Прикрепленный файл  cic_filter_aplication.7z ( 922.98 килобайт ) Кол-во скачиваний: 47
 


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 10:57
Сообщение #19


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Jul 19 2016, 13:49) *
Порядок звена да, а порядок фильтра нет. Тем и плохи CIC фильтры, что без децимации внутри не работают. Точнее вырождаются в фильтры скользящего среднего (допускающие усекание разрядов кстати). В приложении теория "на пальцах"

Спасибо!
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 19 2016, 11:06
Сообщение #20


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



И до кучи, построение дециматоров, методом комбинации фильтров скользящего среднего разного порядка, может быть более эффективна, чем наращивание количества звеньев. За счет того, что нули фильтров нечетных порядков бьют в "холмы" фильтров четных и наоборот. К сожалению, в концепции CIC фильтра это не применимо.


--------------------
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 19 2016, 11:59
Сообщение #21


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

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



Цитата(des00 @ Jul 19 2016, 13:49) *
В приложении теория "на пальцах"

Это Лайонс и есть, 1 в 1. Можно то же прочитать на русском в книге.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 19 2016, 12:08
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(_Anatoliy @ Jul 19 2016, 13:37) *
Спорить не буду ибо считаю Вас одним из самых компетентных посетителей конференции.На картинке изображено три секции CIC - значит фильтр третьего порядка. Я в своём фильтре задаю 5 секций, поэтому и думал что работаю с фильтром пятого порядка. Как из параметров R,M,N получить номер порядка?




Спасибо за лестный отзыв о моей компетентности. Что касается порядка cic:

порядок определяется количеством нулей передаточной функции. 3 нуля - 3-й порядок (N=4 коэффициента эквивалентного однородного), 32 - 32-го (N=33 к-та).
числа 3, 5 и т д означают количество каскадов или кратность нулей передаточной функции cic.

Смысл использования cic при децимации/интерполяции заключается в том, что такой фильтр имеет нули точно на частотах Fd/N*k k = 1 ... N-1 и при децимации в N раз накладываются на частоты 0 и Fd. Избирательные свойства однородного фильтра весьма убоги, поэтому используют последовательное соединение нескольких таких фильтров, что в свою очередь приводит к значительной неравномерности в полосе полезного сигнала.

В вашем случае нужна децимация в 16 раз (1200/75) при этом вы получаете полезный сигнал с 1.5-оверсэмплингом т е нужен фильтр с 16-ю к-тами. Результат можно скорректировать (если есть смысл) ких-фильтром без децимации.

Что получается?

p=ones(1,16);% однородный эквивалент cic1
h=conv(conv(conv(conv(p,p),p),p),p);%эквивалент cic5

plot(0:1200/10000:1200-1200/10000,20*log10(abs(freqz(h,1,10000,'whole'))))

Видно, что на частотах 0... 25мгц подавление наложенных частот будет не менее 40 дб. Но и неравномерность в полосе будет 8 дб. Если такое подавление недостаточно - делаем cic c децимацией на 8 и 2 с ких. итд

Теперь про разрядность:

К-т усиления одного звена будет N, к звеньев будут иметь к-т передачи N^k. Поэтому разрядность аккумуляторов интеграторов выбирают ceil(k*log2(N))+ разрядность исходных данных. После интеграторов результат прореживается в N раз и обрабатывается каскадом гребенок которая вырождается в фильтр y(n)=x(n)-x(n-1). Затем результат приводится к нужной разрядности через правый сдвиг на М разрядов. Обычно, М=ceil(k*log2(N)), т е к исходной разрядности. К-т передачи такого фильтра будет (N^k) / (2^ceil(k*log2(N)))

Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 13:42
Сообщение #23


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(thermit @ Jul 19 2016, 15:08) *

Большое спасибо за развёрнутый ответ! Красиво Вы свёртки посчитали,а я каждую отдельно считал...

Кстати, а почему у Вас первый ноль на частоте 75МГц? Я думал нужно чтобы первый ноль был на частоте 75/2 == 37,5МГц.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 19 2016, 14:10
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(_Anatoliy @ Jul 19 2016, 16:42) *
Большое спасибо за развёрнутый ответ! Красиво Вы свёртки посчитали,а я каждую отдельно считал...

Кстати, а почему у Вас первый ноль на частоте 75МГц? Я думал нужно чтобы первый ноль был на частоте 75/2 == 37,5МГц.


При децимации cic нули фильтра должны быть на частотах, кратных новой частоте дискретизации, а не ее половине. Иначе конская неравномерность будет. В этом и фишка cic.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 15:04
Сообщение #25


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(thermit @ Jul 19 2016, 17:10) *
При децимации cic нули фильтра должны быть на частотах, кратных новой частоте дискретизации, а не ее половине. Иначе конская неравномерность будет. В этом и фишка cic.

А,так вот почему у меня получилось 50 дБ неравномерности...Спасибо!
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 20 2016, 07:53
Сообщение #26


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Потихоньку двигаюсь дальше. Скажите, а как правильно посмотреть суммарную АЧХ такой цепочки : fir1-децимация-fir2? Допустим в качестве fir1 выступает фильтр с h1=conv(conv(conv(conv(p,p),p),p),p);
Сигнал с его выхода децимирую на 8 и подаю на второй фильтр с ИХ h2.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 20 2016, 08:29
Сообщение #27


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

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



Так, БПФ от результирующей импульсной характеристики и даст АЧХ.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 20 2016, 09:03
Сообщение #28


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ViKo @ Jul 20 2016, 11:29) *
Так, БПФ от результирующей импульсной характеристики и даст АЧХ.

Даст, и что? Вы вопрос читали внимательно? Как учесть децимацию? Чтобы работать со вторым фильтром нужно перенести АЧХ первого фильтра в новый частотный домен (Fs2 = Fs1 / 8). И вопрос как это сделать через импульсную характеристику(во временнОй области)?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 20 2016, 09:06
Сообщение #29


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

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



Я вижу, мои ответы вас раздражают. Побережем нервы.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 20 2016, 09:07
Сообщение #30


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ViKo @ Jul 20 2016, 12:06) *
Я вижу, мои ответы вас раздражают. Побережем нервы.

Абсолютно нет. Я спокоен как селёдка.
Go to the top of the page
 
+Quote Post

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

 


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


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