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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> фильтр визуализации
PlainUser
сообщение Apr 14 2016, 07:11
Сообщение #1


Частый гость
**

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



Чем отфильтровать среднеквадратичное для индикации измеряемого напряжения в рмс вольтметре.
Измеряем 50гц.
Рубим выборки 8кгц непрерывно.
Убираем постоянную составляющую фильтром фвч.
Перемножаем , получаем квадраты.
Идет последовательность квадратов 8кгц.
Из них нужно непрерывно выделять постоянную составляющую цифровым фильтром.
Каким?
Пробовал бесселя 4п со срезом 5Гц и семплами 8кгц , фигня какая-то выходит.
Возможно частоты далеко друг от друга.

Подсчет суммы квадратов за 1сек дает замечательный результат с точностью даже выше чем надо несмотря на так-сказать прямоугольное окно , но нет непрерывности.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Apr 14 2016, 07:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(PlainUser @ Apr 14 2016, 10:11) *
Измеряем 50гц.
Подсчет суммы квадратов за 1сек дает замечательный результат с точностью даже выше чем надо несмотря на так-сказать прямоугольное окно, но нет непрерывности.

Подсчет суммы квадратов за 1сек будет работать, если на интервале 1 сек укладывается целое число периодов "квадратов".
Если частота на входе 50,25 Гц, то частота "квадратов" будет равна 100,5 Гц и на интервале 1 сек поместится 100,5 периодов,
что даст ошибку при подсчете суммы равную сумме значений "квадратов" за пол периода.
Если, конечно, я правильно понял смысл выражения "нет непрерывности".
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 14 2016, 07:31
Сообщение #3


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

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



Цитата(PlainUser @ Apr 14 2016, 10:11) *
Подсчет суммы квадратов за 1сек дает замечательный результат с точностью даже выше чем надо несмотря на так-сказать прямоугольное окно , но нет непрерывности.

Сделайте скользящее окно по принципу MAF.
Go to the top of the page
 
+Quote Post
PlainUser
сообщение Apr 14 2016, 07:50
Сообщение #4


Частый гость
**

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



Цитата(_Anatoliy @ Apr 14 2016, 10:31) *
Сделайте скользящее окно по принципу MAF.


Хто такой MAF ?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 14 2016, 07:54
Сообщение #5


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

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



Цитата(PlainUser @ Apr 14 2016, 10:50) *
Хто такой MAF ?

MAF
Go to the top of the page
 
+Quote Post
PlainUser
сообщение Apr 14 2016, 08:04
Сообщение #6


Частый гость
**

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



Цитата(blackfin @ Apr 14 2016, 10:29) *
Подсчет суммы квадратов за 1сек будет работать, если на интервале 1 сек укладывается целое число периодов "квадратов".
Если частота на входе 50,25 Гц, то частота "квадратов" будет равна 100,5 Гц и на интервале 1 сек поместится 100,5 периодов,
что даст ошибку при подсчете суммы равную сумме значений "квадратов" за пол периода.
Если, конечно, я правильно понял смысл выражения "нет непрерывности".


Я знаю.
"...Подсчет суммы квадратов за 1сек дает замечательный результат с точностью даже выше чем надо... "

Цитата(_Anatoliy @ Apr 14 2016, 10:54) *


Вон че , MAF это просто скользящее среднее.
Вроде надо что-то получше с более крутыми скатами.

Частота среза 5-10Гц а частота сигнала на входе 50Гц , остаток в полосе должен быть не более 0.03% примерно.


Сообщение отредактировал PlainUser - Apr 14 2016, 07:56
Go to the top of the page
 
+Quote Post
blackfin
сообщение Apr 14 2016, 08:13
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(PlainUser @ Apr 14 2016, 12:04) *
Вон че , MAF это просто скользящее среднее.
Вроде надо что-то получше с более крутыми скатами.

Сомнительно, что в природе существует КИХ-фильтр "с более крутыми скатами", чем у фильтра на основе "скользящего среднего".
"Скользящее среднее" это же по сути "бин" преобразования Фурье на нулевой частоте и, следовательно, имеет АЧХ пропорциональную sinc-функции (если точнее, АЧХ пропорциональную функции Дирихле).
Go to the top of the page
 
+Quote Post
PlainUser
сообщение Apr 14 2016, 09:24
Сообщение #8


Частый гость
**

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



Цитата(blackfin @ Apr 14 2016, 11:13) *
Сомнительно, что существует в природе КИХ-фильтр "с более крутыми скатами", чем у фильтра на основе "скользящего среднего".
"Скользящее среднее" это же по сути "бин" преобразования Фурье на нулевой частоте и, следовательно, имеет АЧХ пропорциональную sinc-функции (если точнее, АЧХ пропорциональную функции Дирихле).


Не могли-бы вы привести яркий пример для моего случая , особенно что касается расчета количества необходимых точек.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Apr 14 2016, 09:31
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(PlainUser @ Apr 14 2016, 12:24) *
Не могли-бы вы привести яркий пример для моего случая , особенно что касается расчета количества необходимых точек.

Все "яркие примеры для вашего случая" хранятся в MATLAB'e в пакете с именем fdatool. Дерзайте! biggrin.gif
Go to the top of the page
 
+Quote Post
PlainUser
сообщение Apr 14 2016, 09:40
Сообщение #10


Частый гость
**

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



Цитата(blackfin @ Apr 14 2016, 12:31) *
Все "яркие примеры для вашего случая" хранятся в MATLAB'e в пакете с именем fdatool. Дерзайте! biggrin.gif


Звучит неубедительно.

Откуда взялся фильтр бесселя.
Вот отсюда.
http://www.kit-e.ru/articles/circuit/2010_07_144.php


Хотелось-бы услышать какие-то слова в пользу одной из сторон.Лучше с цифрами.

Сообщение отредактировал PlainUser - Apr 14 2016, 09:42
Go to the top of the page
 
+Quote Post
PlainUser
сообщение Apr 14 2016, 10:51
Сообщение #11


Частый гость
**

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



Вот сам фильтр который не желает усреднять.
Может с ним что не так?

Есть подозрение что у коэфф. точности флоата не хватает и он возбуждается.
Но не уверен.

/**************************************************************
WinFilter version 0.8
http://www.winfilter.20m.com
akundert@hotmail.com

Filter type: Low Pass
Filter model: Bessel
Filter order: 4
Sampling Frequency: 8 KHz
Cut Frequency: 0.005000 KHz
Coefficents Quantization: float

Z domain Zeros
z = -1.000000 + j 0.000000
z = -1.000000 + j 0.000000
z = -1.000000 + j 0.000000
z = -1.000000 + j 0.000000

Z domain Poles
z = 0.994770 + j -0.001392
z = 0.994770 + j 0.001392
z = 0.999100 + j -0.004321
z = 0.999100 + j 0.004321
***************************************************************/
#define NCoef 4
float iir(float NewSample) {
float ACoef[NCoef+1] = {
0.00000000008095721658,
0.00000000032382886631,
0.00000000048574329947,
0.00000000032382886631,
0.00000000008095721658
};

float BCoef[NCoef+1] = {
1.00000000000000000000,
-3.98773984171834520000,
5.96328712390839670000,
-3.96335452951837610000,
0.98780724756468707000
};

static float y[NCoef+1]; //output samples
static float x[NCoef+1]; //input samples
int n;

//shift the old samples
for(n=NCoef; n>0; n--) {
x[n] = x[n-1];
y[n] = y[n-1];
}

//Calculate the new output
x[0] = NewSample;
y[0] = ACoef[0] * x[0];
for(n=1; n<=NCoef; n++)
y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];

return y[0];
}

Сообщение отредактировал PlainUser - Apr 14 2016, 11:13
Go to the top of the page
 
+Quote Post
thermit
сообщение Apr 14 2016, 12:24
Сообщение #12


Знающий
****

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



y[0] = ACoef[0] * x[0];

y[0] = BCoef[0] * x[0];

y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];

y[0] += BCoef[n] * x[n] - ACoef[n] * y[n];

Сообщение отредактировал thermit - Apr 15 2016, 05:42
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Apr 14 2016, 16:36
Сообщение #13


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(blackfin @ Apr 14 2016, 11:13) *
Сомнительно, что в природе существует КИХ-фильтр "с более крутыми скатами", чем у фильтра на основе "скользящего среднего".
"Скользящее среднее" это же по сути "бин" преобразования Фурье на нулевой частоте и, следовательно, имеет АЧХ пропорциональную sinc-функции (если точнее, АЧХ пропорциональную функции Дирихле).

Как это? Нет ничего круче (в счысле скатов) чем синк?Наоборот синк не очень убедительный фильтр (но простой в реализации). КИХ со скатами круче синка слеадть легко (ну в смысле коэффициентов не много понадобится).
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 14 2016, 22:42
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



thermit , Вы думаете WinFilter нагенерил бред?
to PlainUser: поставте static перед массивами коэффициентов.
Go to the top of the page
 
+Quote Post
thermit
сообщение Apr 15 2016, 05:40
Сообщение #15


Знающий
****

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



Нет. Винфильтер все правильно сгенерил. Это я сгенерил бред.

Щас буду исправляться:

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

Закончил исправляться.



Сообщение отредактировал thermit - Apr 15 2016, 05:58
Go to the top of the page
 
+Quote Post

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

 


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


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