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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Цифровые фильтры, помогите разобраться
TViT
сообщение Nov 10 2010, 13:33
Сообщение #1


Участник
*

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



Все вроде понятно по фильтрам. Задаешь частоты расчитываешь коэффициенты. Поэтому вопросы у меня как обычно чисто практические...

x(n)=входной массив выборок АЦП (n=0…1023)
y(n)=выходной массив

стандартная формула Баттерворта на которую натыкаешься всюду:

y(n)=( a0*x(n)+a1*x(n-1)+a2*x(n-2) - (b1*y(n)+b2*y(n-1)) )

так вот не могу понять как при начальном значении первого(нулевого) значения выборки по адресу x(0)
может быть a1*x(n-1) запрашивается значение из массива x(0-1) этот же выход из диапазона массива? Массив от 0 до 1023 –> 1024 выборки
сделал значения по порядку:

y(n)=( a0*x(n)+a1*x(n+1)+a2*x(n+2) - (b1*y(n)+b2*y(n+1)) )

все заработало для ФВЧ, а для ПФ не работает толи коэффициенты не правильно подставляю, толи формула другая для ПФ там просто коэффициентов больше 5 вроде поэтому делаю так

y(n)=( a0*x(n)+a1*x(n+1)+a2*x(n+2)+ a3*x(n+3)+ a4*x(n+4) - (b1*y(n)+b2*y(n-1)+ b3*y(n+2)+b3*y(n+3)))

видел и такую формулу где-то:

y(n)=( a0*x(n)+2*a1*x(n-1)+a2*x(n-2) - (b1*y(n)+b2*y(n-1)) )

В общем полная каша в голове, может для Чебышева иначе делается, подскажите плиз…

Сообщение отредактировал TViT - Nov 10 2010, 13:34
Go to the top of the page
 
+Quote Post
Джеймс
сообщение Nov 10 2010, 18:07
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Алгоритм одинаковый что для ФВЧ, что для ПФ. Меняются только коэффициенты.
Посмотрите программу на стр. 12:
http://www.vlsi.ss.titech.ac.jp/~isshiki/V...stemVIII_06.pdf
Go to the top of the page
 
+Quote Post
TViT
сообщение Nov 10 2010, 19:53
Сообщение #3


Участник
*

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



Джеймс Да вобщем и у меня так там последовательно складываются входные значения умноженные на коэффициенты еще подробней посмотрю
расчитал в ciirf1 получается для 2-го порядка - 5 коэфф. а0,а1,а2 и в1,в2 в Матлабе всего 3 выкинул обратную связь чтоб только 3-мя коэфф. пользоваться все равно работает:

Y(n) = (a(0) * X(n) + a(1) * X(n + 1) + a(2) * X(n + 2))

Вот сравниваю тут коэффициенты может нужно для ПФ разделить коэффициенты, первую половину получится как через НЧ фильтр прошел сигнал, потом его переписать во входной массив X(n) и пропустить через вторую половину коэффициентов как бы через ФВЧ получится ПФ. laughing.gif

Сообщение отредактировал TViT - Nov 10 2010, 19:54
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Nov 11 2010, 02:11
Сообщение #4


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(TViT @ Nov 10 2010, 15:33) *
так вот не могу понять как при начальном значении первого(нулевого) значения выборки по адресу x(0)
может быть a1*x(n-1) запрашивается значение из массива x(0-1) этот же выход из диапазона массива?

Это просто показывает, что в фильтре используются предыдущие отсчеты... И разумеется в первые моменты времени там ничего нет ("0"). Надеюсь Вас не удивит, что это одна из форм т.н. "переходных процессов". Написать грамотно такой фильтр не тяжело, нужно только сеть и немного подумать.

Цитата(TViT @ Nov 10 2010, 15:33) *
все заработало для ФВЧ, а для ПФ не работает толи коэффициенты не правильно подставляю, толи формула другая для ПФ

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

Цитата(TViT @ Nov 10 2010, 21:53) *
Вот сравниваю тут коэффициенты может нужно для ПФ разделить коэффициенты, первую половину получится как через НЧ фильтр прошел сигнал, потом его переписать во входной массив X(n) и пропустить через вторую половину коэффициентов как бы через ФВЧ получится ПФ. laughing.gif

...буду краток - нет. У Вас какая-то путаница с пониманием форм построения фильтра FIR-IIR и форм АЧХ(ФНЧ,ФВЧ,полосовой и т.д.)


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
TViT
сообщение Nov 11 2010, 08:05
Сообщение #5


Участник
*

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



...Понимаю что гдето моя ошибка... Продумаю по внимательнее алгоритм по шагам...

Сообщение отредактировал TViT - Nov 11 2010, 08:06
Go to the top of the page
 
+Quote Post
TViT
сообщение Nov 11 2010, 10:45
Сообщение #6


Участник
*

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



Все разобрался просто игнорирую ошибку выход из диапазона массива в цикле перемножения и сложения выборок и тогда все отлично работает yeah.gif
Всем за участие спасибо!
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Nov 11 2010, 11:39
Сообщение #7





Guests






Занятное решение.
Go to the top of the page
 
+Quote Post
TViT
сообщение Nov 12 2010, 07:34
Сообщение #8


Участник
*

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



TSerg Это если быстро сказать. На самом деле привел все к соответствию формулы, взял алгоритм из DSPlib AVR32 переписал на VB, а так как там через указатели, то я просто применил возможность игнорировать ошибки на VB результаты абсолютно одинаковые что на МК передаю массив и результат обратно что через VB на компе можно конечто через смещение сделать как в примере от Джеймс.

DSPlib коэффициенты через Scilab расчитываются поэтому с этим разбираюсь от Матлаба не подходят, толи что-то не так делаю. Только из ciirf1 подходят коэффициенты.... Вот такие пироги.

Сообщение отредактировал TViT - Nov 12 2010, 07:37
Go to the top of the page
 
+Quote Post
bahurin
сообщение Nov 13 2010, 06:40
Сообщение #9


Местный
***

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



Цитата(TViT @ Nov 12 2010, 10:34) *
TSerg Это если быстро сказать. На самом деле привел все к соответствию формулы, взял алгоритм из DSPlib AVR32 переписал на VB, а так как там через указатели, то я просто применил возможность игнорировать ошибки на VB результаты абсолютно одинаковые что на МК передаю массив и результат обратно что через VB на компе можно конечто через смещение сделать как в примере от Джеймс.

DSPlib коэффициенты через Scilab расчитываются поэтому с этим разбираюсь от Матлаба не подходят, толи что-то не так делаю. Только из ciirf1 подходят коэффициенты.... Вот такие пироги.



дааа сурово все однако.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Nov 13 2010, 08:20
Сообщение #10





Guests






Я - пас.
Мой мозг отказался перевести сообщение №8 в семантически значимую для меня форму.
Go to the top of the page
 
+Quote Post
TViT
сообщение Nov 13 2010, 08:24
Сообщение #11


Участник
*

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



Вам язык почесать негде? Или я что-то грубое сказал???
Go to the top of the page
 
+Quote Post
bahurin
сообщение Nov 13 2010, 11:36
Сообщение #12


Местный
***

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



Цитата(TViT @ Nov 13 2010, 11:24) *
Вам язык почесать негде? Или я что-то грубое сказал???


Это что еще за агрессия? Вообще то это у вас проблемы а не у нас. Если хотите получить совет то вот вам совет: Бегите от VB со всех ног в сторону С++. Это первое, второе бегите еще быстрее чем от VB от SCILab в сторону matlab или GNU Octave. Поверьте если результаты SCILab отличаются от matlab, то врет SCILab а не матлаб. Что касается dsp - matlab можно считать эталоном.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Nov 14 2010, 06:02
Сообщение #13


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(bahurin @ Nov 13 2010, 13:36) *
бегите еще быстрее ... в сторону matlab

...а еще никаДДа не используйте GCC... Ведь всем известно, что настоящие гуру от DSP используют исключительно кошерные решения - в виде готовых примеров поставляемых с IDE smile.gif

Цитата(bahurin @ Nov 13 2010, 13:36) *
GNU Octave.

...это жалкая пародия как на матлаб так и на скайлаб...

Цитата(bahurin @ Nov 13 2010, 13:36) *
Что касается dsp - matlab можно считать эталоном.

да-да... Как дэлфи-кодер - эталоном программиста...

P.S.: по-ходу у аФФтАра глючит исходник, а мы тут "холиварим"...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
bahurin
сообщение Nov 14 2010, 06:31
Сообщение #14


Местный
***

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



Цитата(DRUID3 @ Nov 14 2010, 09:02) *
...а еще никаДДа не используйте GCC... Ведь всем известно, что настоящие гуру от DSP используют исключительно кошерные решения - в виде готовых примеров поставляемых с IDE smile.gif

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

Цитата(DRUID3 @ Nov 14 2010, 09:02) *
...это жалкая пародия как на матлаб так и на скайлаб...


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

Цитата(DRUID3 @ Nov 14 2010, 09:02) *
да-да... Как дэлфи-кодер - эталоном программиста...


Сдается мне, что вы, батенька, троль wink.gif Результатам расчетов в матлабе я доверяю, ибо им пользуются миллионы. чего не скажешь о скайлабе.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Nov 14 2010, 07:17
Сообщение #15


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(bahurin @ Nov 14 2010, 08:31) *
Неправда GNU Octave практически полный аналог матлаба, совершенно бесплатный, с великим множенством тулбоксов. Оданко вы не найдете тормозных симулинков в октаве и красивого интерфейса, но что касается функций и их использования, то пожалуй октава ничем не хуже матлаба.

...нет, там функций много меньше... И еще вопрос - что лучше отсутствие функций вообще или наличие аналогов, но немного с другими параметрами или потребность разбиения одной функции на несколько...

Цитата(bahurin @ Nov 14 2010, 08:31) *
Сдается мне, что вы, батенька, троль wink.gif Результатам расчетов в матлабе я доверяю, ибо им пользуются миллионы. чего не скажешь о скайлабе.

Вы правы - я троль... но вернемся к вопросу. Миллиарды... Им пользуются миллиарды... В столице Украины при десятках тысяч работающих программистов хорошо если есть сотня активно юзающих математические пакеты. Кстати массы добровольных тестировщиков не всегда есть критерий безошибочности. Ошибку в quickSort во FreeBSD подправили пару лет назад - а если историю жизни проекта умножить на количество пользователей как раз и получатся трилиарды гуманоидов в мирриадах звездных систем smile.gif . Скайлаб в эпоху своей молодости тоже был коммерческим продуктом с радиотехническим уклоном! Для математики он юзает известные вычислительные библиотеки которыми пользуются все и далеко не только в этом проекте. Вряд ли у него есть ошибки в вычислительном ядре. Кстати, никто и нигде не дает гарантий что их нет в Матлаба tongue.gif . Еще с помощью Скайлаба очень удобно тестировать свои DSP исходники(вычислительную часть) не знаю как с этим в "матлабе"... Давайте говорить честно - матлаб это модно. Столько функций, а главное дофига всего в книгах и интернете - почти не надо думать. Токо копируй и в консоль, или как там оно зовеЦЦо у него, вставляй...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
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 - 21:02
Рейтинг@Mail.ru


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