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

 
 
> Цифровые фильтры, помогите разобраться
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
 
Start new topic
Ответов
TViT
сообщение Nov 15 2010, 16:01
Сообщение #2


Участник
*

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



Как ни странно все работает. Думаю так для производительности может сделали чтобы небыло лишних циклов записи чтения памяти она там флеш медленная.

Вот по тем же параметрам посчитал в матлабе где тут что, где А где В.

Код
/*
* Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool
*
* Generated by MATLAB(R) 7.9 and the Signal Processing Toolbox 6.12.
*
* Generated on: 15-Nov-2010 18:56:58
*
*/
/*
* Discrete-Time IIR Filter (real)
* -------------------------------
* Filter Structure    : Direct-Form II, Second-Order Sections
* Number of Sections  : 1
* Stable              : Yes
* Linear Phase        : No
*/

#define MWSPT_NSEC 3
const int NL[MWSPT_NSEC] = { 1,3,1 };
const real32_T NUM[MWSPT_NSEC][3] = {
  {
    0.02771298587,              0,              0
  },
  {
                1,              0,             -1
  },
  {
                1,              0,              0
  }
};
const int DL[MWSPT_NSEC] = { 1,3,1 };
const real32_T DEN[MWSPT_NSEC][3] = {
  {
                1,              0,              0
  },
  {
                1,   -1.721542239,   0.9445739985
  },
  {
                1,              0,              0
  }
};



Сообщение отредактировал TViT - Nov 15 2010, 16:12
Go to the top of the page
 
+Quote Post
bahurin
сообщение Nov 15 2010, 16:27
Сообщение #3


Местный
***

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




NUM[MWSPT_NSEC][3] это B (числитель)
DEN[MWSPT_NSEC][3] зто А (знаменатель)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TViT   Цифровые фильтры   Nov 10 2010, 13:33
- - Джеймс   Алгоритм одинаковый что для ФВЧ, что для ПФ. Меняю...   Nov 10 2010, 18:07
- - TViT   Джеймс Да вобщем и у меня так там последовательно ...   Nov 10 2010, 19:53
- - DRUID3   Цитата(TViT @ Nov 10 2010, 15:33) так вот...   Nov 11 2010, 02:11
- - TViT   ...Понимаю что гдето моя ошибка... Продумаю по вни...   Nov 11 2010, 08:05
- - TViT   Все разобрался просто игнорирую ошибку выход из ди...   Nov 11 2010, 10:45
- - TSerg   Занятное решение.   Nov 11 2010, 11:39
- - TViT   TSerg Это если быстро сказать. На самом деле приве...   Nov 12 2010, 07:34
|- - bahurin   Цитата(TViT @ Nov 12 2010, 10:34) TSerg Э...   Nov 13 2010, 06:40
- - TSerg   Я - пас. Мой мозг отказался перевести сообщение №8...   Nov 13 2010, 08:20
- - TViT   Вам язык почесать негде? Или я что-то грубое сказа...   Nov 13 2010, 08:24
|- - bahurin   Цитата(TViT @ Nov 13 2010, 11:24) Вам язы...   Nov 13 2010, 11:36
|- - DRUID3   Цитата(bahurin @ Nov 13 2010, 13:36) беги...   Nov 14 2010, 06:02
|- - bahurin   Цитата(DRUID3 @ Nov 14 2010, 09:02) ...а ...   Nov 14 2010, 06:31
|- - DRUID3   Цитата(bahurin @ Nov 14 2010, 08:31) Непр...   Nov 14 2010, 07:17
|- - bahurin   Цитата(DRUID3 @ Nov 14 2010, 10:17) Давай...   Nov 14 2010, 08:01
- - TViT   ЦитатаЭто что еще за агрессия? Вообще то это у вас...   Nov 14 2010, 12:35
|- - bahurin   Цитата(TViT @ Nov 14 2010, 15:35) А что м...   Nov 14 2010, 13:17
- - TViT   В том то и дело что Матлаб не купленый... Мне поку...   Nov 14 2010, 13:56
|- - bahurin   Код понять не могу, т.к. на VB не пишу. Но одно к...   Nov 14 2010, 14:32
|- - AlikM   Цитата(bahurin @ Nov 14 2010, 17:32) Но о...   Nov 16 2010, 21:40
- - TViT   вот тот же код на Си из AVR32 DSPlib: Код { int...   Nov 14 2010, 15:02
|- - bahurin   Не видел таких конструкций. не понятен смысл Код...   Nov 14 2010, 15:21
- - PetrovichKR   ЦитатаИнтересно, это где же так принято и по каким...   Nov 17 2010, 04:44
- - TViT   Ребят кто разбирается в Scilab помогите еще, нужно...   Dec 18 2010, 05:55
- - lisstret   ЦитатаУ фильтра принято обозначать к-ты числителя ...   Dec 19 2010, 20:52
- - TViT   Все понятно с коэффициентами. Подскажите по сущест...   Dec 20 2010, 13:24
- - TViT   Нашел функцию casc — cascade realization of filter...   Dec 22 2010, 04:17
- - PetrovichKR   ЦитатаМне кажется что он писал так, как было приня...   Dec 22 2010, 07:38
|- - bahurin   Цитата(PetrovichKR @ Dec 22 2010, 13:38) ...   Dec 23 2010, 05:01
- - TViT   Вот описание функции: Кодfunction cels=casc(x,...   Dec 23 2010, 16:48


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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 08:15
Рейтинг@Mail.ru


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