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

 
 
> Не получается рассчитать/подобрать фильтр., LPF
misyachniy
сообщение Nov 30 2014, 14:52
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Я использовал winfilter для генерации исходника
http://www.winfilter.20m.com/

Код вставлял в Builder без изменений (FIR 4).

Исходно идет оцифровка сигнала 17300 Гц 4-х кратной чатотой.
Затем вычисляются sin/cos и суммирование за 64 периода

Код
balance_value =  ADC_GetInjectedConversionValue(ADC3, ADC_InjectedChannel_1);
  switch (i & 3)
  {
   case 0: Re += balance_value; break;
   case 1: Im += balance_value; break;
   case 2: Re -= balance_value; break;
   case 3: Im -= balance_value; break;
  }  
  
  i++;
  
  if (i == MAX_AVERAGE_BALANCE_SIGNAL )
  {
   i  = 0;
    
   Re /= (MAX_AVERAGE_BALANCE_SIGNAL/4);
   Im /= (MAX_AVERAGE_BALANCE_SIGNAL/4);

    re_value = Re;
    im_value = Im;

    amp_series_samples = (Re * Re + Im * Im);
  }


Чтобы результат (Re * Re + Im * Im) поместился в 32 бита накопленные значение делятся на 4.
Но на расчет фильтра, по моему, не должны влиять

Для расчета фильтра нужна частота семплирования и верхняя граница пропускания.

Частоту семплирования я рассчитал как 17300 * 4 / 64 = 1082Гц.
Частоту верхней границы ставил от 1 до 10Гц но "красивого" гладкого сигнала не получил.
меньше 1 Гц программа не позволяет использовать
Пробовал 1082Гц увеличивать/уменьшать 2 и 4 раза - не помогло.

Пример плохого сигнала "small_fe.PNG", хорошего "big_cu.PNG", сдвоеного "1_cop_ua.PNG" в архиве.
В нем же csv данные.
Одну картинку прикладываю отделльно для оперативного просмотра



Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  _________________________________.rar ( 133.88 килобайт ) Кол-во скачиваний: 10
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rx9cim
сообщение Dec 25 2014, 16:56
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-07-12
Пользователь №: 72 593



Посмотрите прогу rxdisp для SDR, там есть исходники, в том числе нужные вам, правда для float.
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jan 2 2015, 11:56
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Наиболее хорошо получился результат с такой прогаммой расчета коэффициентов.
http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html

Код
//-----------------------------------------------------
#define NZEROS 2
#define NPOLES 2

// bessel 2 order  Fs =423, Fc = 5
float gain = 4.854200800e+02;
float coef_0 =  -0.8489920322;
float coef_1 =  1.8407517468;

float filter_bessel_5Hz_AMP(float input_value)  // 11.6 uS
  {
      static float xv[NZEROS+1], yv[NPOLES+1];  
       xv[0] = xv[1]; xv[1] = xv[2];
        xv[2] = input_value / gain;
                                            
        yv[0] = yv[1]; yv[1] = yv[2];
        
        yv[2] = xv[0] + xv[2] + 2 * xv[1]
                      + (coef_0 * yv[0]) + (coef_1 * yv[1]);

        return  yv[2];
  }

Исходник сгенерированный программой пришлось перекроить и вынести коэффициенты в переменную.
cortex m3 имеет систему команд в 16 бит шириной и с константами работает медленнее.( ИМХО :-))

Результат на рисунке:
Прикрепленное изображение


На верхнем графике амплитуда и фаза до фильтрации
На нижнем амплитуда после фильтрации.

Возник вопрос по определению наличия сигнала.
Вот увеличенный отфильтрованный сигнал:
Прикрепленное изображение


Явно виден тренд к повышению уровня постоянной составляющей.
Если ее отсечь, то определить пики сигнал легко.

Порылся в интернете по слову "тренд" - предлагают фильтры для торговли на бирже.
Или низкочастотные или текущее среднее предлагают.
Есть ли другие фильтры для поиска сигнала? Как они называются?

Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 2 2015, 13:34
Сообщение #4


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

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



Цитата(misyachniy @ Jan 2 2015, 14:56) *
Явно виден тренд к повышению уровня постоянной составляющей.
Если ее отсечь, то определить пики сигнал легко.

Порылся в интернете по слову "тренд" - предлагают фильтры для торговли на бирже.
Или низкочастотные или текущее среднее предлагают.
Есть ли другие фильтры для поиска сигнала? Как они называются?

ФВЧ? biggrin.gif
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jan 2 2015, 18:11
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(ViKo @ Jan 2 2015, 15:34) *
ФВЧ? biggrin.gif

Бесселя ФВЧ не бывает.
Другие фильтры дадут выбросы.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- misyachniy   Не получается рассчитать/подобрать фильтр.   Nov 30 2014, 14:52
- - Maverick   Цитата(misyachniy @ Nov 30 2014, 16:52) Я...   Dec 1 2014, 11:40
|- - Lmx2315   QUOTE (Maverick @ Dec 1 2014, 14:40) в ма...   Dec 1 2014, 11:48
|- - misyachniy   Попробовал "чистый" matlab. Фильтр Батте...   Dec 4 2014, 17:13
|- - ViKo   Цитата(misyachniy @ Jan 2 2015, 21:11) Бе...   Jan 3 2015, 07:50
- - des00   Извините за глупый вопрос, а откуда вообще берется...   Jan 3 2015, 17:02
|- - misyachniy   Цитата(des00 @ Jan 3 2015, 19:02) Извинит...   Jan 4 2015, 11:06
|- - des00   Цитата(misyachniy @ Jan 4 2015, 18:06) Тр...   Jan 4 2015, 15:18
|- - misyachniy   Цитата(des00 @ Jan 4 2015, 17:18) банальн...   Jan 12 2015, 16:49
|- - des00   Цитата(misyachniy @ Jan 13 2015, 00:49) Э...   Jan 12 2015, 17:18
|- - misyachniy   Цитата(des00 @ Jan 12 2015, 19:18) dc(k) ...   Jan 12 2015, 19:30
|- - des00   Цитата(misyachniy @ Jan 13 2015, 02:30) П...   Jan 12 2015, 19:42
- - ViKo   Что вам мешает вместо (вместе с) R8 поставить конд...   Jan 4 2015, 11:41
|- - misyachniy   Цитата(ViKo @ Jan 4 2015, 13:41) Что вам ...   Jan 4 2015, 12:54
|- - ViKo   Цитата(misyachniy @ Jan 4 2015, 15:54) По...   Jan 4 2015, 12:58
- - Hose   Интегрирование за 64 определит частотную характери...   Jan 8 2015, 12:08


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

 


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


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