|
|
  |
Реализация нерекурсивного фильтра CIC |
|
|
|
Jul 19 2016, 10:39
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(_Anatoliy @ Jul 19 2016, 17:37)  Как из параметров R,M,N получить номер порядка? Order = R*M Цитата Ой, с маткадом уже лет 8 не работаю... А в матлабе есть такая возможность? В код всмотритесь, там просто расчет импульсной характеристики 6 последовательных фильтров. Ну и фурье от итоговой ИХ.
--------------------
|
|
|
|
|
Jul 19 2016, 10:46
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 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 последовательных фильтров. Ну и фурье от итоговой ИХ. Спасибо!
Эскизы прикрепленных изображений
 РЈРСВВВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВВВР С• 86%
1225 x 183 (60.7 килобайт)
|
|
|
|
|
|
Jul 19 2016, 12:08
|
Знающий
   
Группа: Участник
Сообщений: 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)))
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|