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

 
 
> Офлафн оценка скорости по дискретным отсчетам, Какие есть методы?
RHnd
сообщение Aug 15 2013, 20:43
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Исходные данные - есть дискретные квантованные отсчеты некоторого сигнала. Мы знаем, что этот сигнал - выход некоторой механической системы, т.е. как минимум дважды дифференцируем. Более того, если надо, то мы можем априорно предположить некоторые ограничения на первую и вторую производные. Уровень квантования сигнала достаточно маленький по сравнению с диапазоном изменений сигнала. Частота дискретизации достаточно велика по сравнению со скоростью самого процесса. Скажем, дискретизация 1кГц при том, что в составе сигнала нет существенных компонент с частотами выше 50Гц.
Записанный процесс достаточно длинный - несколько сотен тысяч отсчетов, сигнал имеет совершенно произвольную форму (с учетом дифференцируемости), но преобладают низкие частоты.

Задача - как по имеющимся отсчетам оценить скорость? Какие есть оффлайновые методы? Если кто-то сможет дать ссылку на какой-то перечень или обзор, то было бы здорово. Рабочая среда - матлаб.

Я бы решал задачу так - прорядил бы отсчеты, взяв, например, каждый 20-й. Полученные отсчеты описал бы каким-то сплайном, а затем по найденному сплайну вычисли бы значения производной во всех исходных точках. Плюс - в матлабе это делается в две строчки, и если исходный сигнал достаточно гладкий, то получается приемлемая точность. Но при таком методе есть недостаток - выпадают промежуточные, прореженные точки, т.е. часть информации пренебрегается. Кто как решает, на какие методы стоит посмотреть?
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 54)
_pv
сообщение Aug 15 2013, 20:56
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



тогда сразу натягивать на все точки кубический сплайн со сглаживанием, это когда натягивается новая сетка, на этой сетке как и в обычном сплайне строятся полиномы 3й степени, с теми же неприрывностями производных, только наименьшими квадратами по исходным данным и только в наименьших квадратах еще квадрат второй производной добавляется, чтобы резко не менялся.
а зачем вообще там сплайны? считайте скорость да фильтруйте
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 15 2013, 22:09
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Спасибо за наводку на сглаживающий сплайн. Не очень понял, что вы имеете ввиду под "натягиванием новой сетки", но попробую разобраться.

А что вы имеете ввиду "считайте скорость и фильтруйте"? Вопрос - как именно считать и как фильтровать?

Дополню:
Так как квантование все-таки есть, то обработка экспериментальных (как и модельных) данных показывает - брать каждый отсчет даже для сглаживающего сплайна - нехорошо. Допустим, у нас некоторая небольшая постоянная скорость. Исходный сигнал представляет из себя, соответственно. прямую. Однако из-за квантования он выглядит как пять точек на одном уровне, ступенька, пять точек на следующему уровне, ступенька, и так далее. Если все точки использовать для сглаживающего сплайна, то он будет стремиться минимизировать расстояние до всех точек и аппроксимирующая кривая будет так же похожа на ступеньки, только сглаженные. В результате оценка производной по такой кривой весьма паршивая. Если же прорядить исходный сигнал и построить сглаживающий сплайн по каждому k-ому отсчету, то это затруднение исчезает при хорошем выборе k.

Еще дополнительно: Разобрался, что проблема может быть решена выбором настраиваемого параметра при сглаживающей интерполяции. Т.е., почти такая же такая же степень свободы, как и шаг прореживания, разве что шаг можно (при большом желании) выбрать неравномерным. Есть ли какие-то рекомендации по выбору параметра в сглаживании сплайном, кроме как пробовать и смотреть?
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 16 2013, 06:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(RHnd @ Aug 16 2013, 05:09) *
А что вы имеете ввиду "считайте скорость и фильтруйте"? Вопрос - как именно считать и как фильтровать?

Y'[i] = (Y[i]-Y[i-1]) / (X[i]-X[i-1])
а дальше любой ФНЧ, z = z + (y-z)/K


Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 16 2013, 06:25
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Это работало бы, если бы пренебрежимо малое квантование. А так после вычисления первой разности мы получим чудовищно зашумленный сигналы, до уровня непригодности. А дальнейшая фильтровка приведет к существенной задержке.
И это не оффлайн метод. sm.gif
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 16 2013, 16:11
Сообщение #6


Знающий
****

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



Сначала ФНЧ, затем дифференцировать. ФНЧ ограничит полосу и не даст развалиться дифференцированию.

ps
Естественно, без прореживания. Прореживание без фильтрации смысла не имеет в данном случае.

Сообщение отредактировал thermit - Aug 16 2013, 16:15
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 16 2013, 16:33
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Использование ФНЧ приведет к появлению задержки, что, естественно, нежелательно. Конечно, я могу пропустить сигнал через фильтр типа s/(a*s+1) или аналогичный, но смысл? Это никаким образом не использует того, что у нас уже есть все отсчеты и что мы работаем оффлайн и можем себе позволить трудоемкие вычисления.
Go to the top of the page
 
+Quote Post
Alex11
сообщение Aug 16 2013, 17:03
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Если Вы работаете offline, то что Вам до задержки. Она фиксирована и строго определена фильтром.
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 16 2013, 17:05
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата
Сначала ФНЧ, затем дифференцировать. ФНЧ ограничит полосу и не даст развалиться дифференцированию.
операции линейные, от смены очерёдности результат никак не поменяется.
Цитата( @ Aug 16 2013, 22:33) *
Использование ФНЧ приведет к появлению задержки, что, естественно, нежелательно. Конечно, я могу пропустить сигнал через фильтр типа s/(a*s+1) или аналогичный, но смысл? Это никаким образом не использует того, что у нас уже есть все отсчеты и что мы работаем оффлайн и можем себе позволить трудоемкие вычисления.

сделайте КИХ фильтр (у него ФЧХ линейная), сдвинув его на пол длинны, никакой задержки не будет.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 16 2013, 17:10
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Alex11 @ Aug 16 2013, 21:03) *
Если Вы работаете offline, то что Вам до задержки. Она фиксирована и строго определена фильтром.

Простите, какая задержка фиксирована и строго определна фильтром, если мы говорим о произвольной глакой форме сигнала? UPD. Простите, понял. Вы тоже про КИХ говорили?

Цитата(_pv @ Aug 16 2013, 21:05) *
сделайте КИХ фильтр (у него ФЧХ линейная), сдвинув его на пол длинны, никакой задержки не будет.

Сдвинув его на половину длины чего? Простите, я вас не понимаю. UPD: Ага, кажется понял на счет сдвига на половину и устранение задержки. Какую форму фильтра стоит выбрать? Я сейчас поэкспериментировал с различными дифференциаторами, которые мне Matlab fdatool считает, дошел до порядка 300, но результат по качеству весьм далек от сглаживающего сплайна с хорошо выбранным коэффициентом сглаживания или с прореживанием.
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 16 2013, 20:16
Сообщение #11


Знающий
****

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



Цитата
_pv:
операции линейные, от смены очерёдности результат никак не поменяется.


да об чем речь? Конечно не поменяется. Но тут хотят прореживать/интерполировать/дифференцировать. Дык этот подход есть есть лажа.


Цитата
RHnd:
Сдвинув его на половину длины чего? Простите, я вас не понимаю. UPD: Ага, кажется понял на счет сдвига на половину и устранение задержки. Какую форму фильтра стоит выбрать?



На половину длины импульсной х-ки фильтра. Форма никакой роли не играет (если речь идет о фнч)
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 16 2013, 21:57
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(thermit @ Aug 17 2013, 00:16) *
Но тут хотят прореживать/интерполировать/дифференцировать. Дык этот подход есть есть лажа.

Почему?

Цитата(thermit @ Aug 17 2013, 00:16) *
Форма никакой роли не играет (если речь идет о фнч)

Под формой я имею ввиду форму АЧХ фильтра. Как так роли не играет... я, конечно, в ЦОС не особо, не моя тематика, но эксперименты показывают, что очень даже играет. На сколько я понимаю, АЧХ в полосе пропускания должна быть как можно ближе к единице и все отклонения будут сказываться.
Скажите, пожалуйста, что именно вы имеете ввиду, когда говорите "дифференцировать" применительно к задаче? Просто первая разность?


Вспомнил, что в матлабе есть такая замечательная функция filtfilt! Можно обойтись без КИХ фильтров, использовать БИХ. Вроде, результат должен стать получше.

Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 17 2013, 07:37
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(RHnd @ Aug 17 2013, 03:57) *
Вспомнил, что в матлабе есть такая замечательная функция filtfilt! Можно обойтись без КИХ фильтров, использовать БИХ. Вроде, результат должен стать получше.

у БИХ фазовая характеристика не линейная, соответственно задержки будут не постоянны, как в случае с КИХ, а будут зависеть от формы сигнала.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 17 2013, 08:29
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(_pv @ Aug 17 2013, 11:37) *
у БИХ фазовая характеристика не линейная, соответственно задержки будут не постоянны, как в случае с КИХ, а будут зависеть от формы сигнала.

На сколько я понимаю, именно это и компенсируется функцией filtfilt. Разве нет?
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 17 2013, 09:38
Сообщение #15


Знающий
****

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



Цитата
RHnd:
Почему?


Да зачем прореживать, чтобы потом интерполировать? Тем более, сплайном.
Оставляем сигнал на исходной частоте дискретизации, обрабатываем фнч с полосой равной полосе полезного сигнала (тем самым уменьшаем мощность шума) и потом обрабатываем ких с их [0.5 -0.5]. Чх такого фильтра близка к х-ке дифференциатора вблизи 0. Если сигнал проредить, придется использовать широкополосный дифференциатор.

Если обработка оффлайн, можно использовать бих фнч, но с 2-й фильтрацией сигнала (после 1-ой фильтрации сигнал фильтруется еще раз задом на перед). Фаза сигнала после такой фильтрации не изменится, но будет квадрат ачх. Матлабский аналог filtfilt.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 17 2013, 10:43
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



1) Если в самом сигнале шумов нет и все проблемы связаны только с квантованием, то прореживание, как мне кажется, даст эффект, близкий к сглаживанию фнч, но без смещения. А потом по сглаженному сигналу оценить производную - такая была исходная идея.

2) Да, действительно, на моих модельных данных filtfilt БИХ ФНЧ + первая разность дают приличный результат. Но, все же, чуть хуже и менее гладкий, чем сглаживающий сплайн с последующим дифференцированием. Возможно, дело в том, что хорошо подобрать один сглаживающий параметр проще, чем ФНЧ. Могу выложить исходные данные.

2) Если бы речь шла про онлайн, то есть эффективные методы, практически не уступающие по фильтрации фнч+дифференциатор, но почти не дающие задержки - тот же slliding differentiator. Задача в том, что оффлайн обработка должна дать лучше результат, чем то, что можно получить онлайн.
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 18 2013, 19:52
Сообщение #17


Знающий
****

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



Вот скрипт иллюстрирующий оценку производной при помощи fir-дифферециатора.
Код
clear all;

NB=12;%Num bits
M=20;%Num sins
N=4000;%Seq length
L=300;%Differentiators length
Fd=1000;%Sam[ling freq
Fmax=50;%Max freq

%Random phase
p=randn(1,M);

f=(1:M)*Fmax/M;
x=(0:N-1).'*2*pi*f/Fd;
x=x+repmat(p,length(x),1);

s=sum(sin(x).')/M; %Sequence
%s=s+randn(1,length(s))*0.001*std(s);

s=round(s*(2^NB))/(2^NB);% Quantization

ds=(1/M:1/M:1)*cos(x).';%Reference Derivative Sequence

h=firpm(L,[0 Fmax 1.6*Fmax Fd/2]/(Fd/2),[0 M 0 0],'differentiator');

plot(0:Fd/20000:Fd/2-Fd/20000,20*log10(abs(freqz(h,1,10000))));
grid on;


y=filter(h,1,[ s(end-L/2+1:end) s s(1:L/2+1)]);% Calculation Derivative from sequence
y=y(L+1:end-1);
disp(['Max error =  ',num2str(max(abs(ds-y))/std(ds))]);%Compare with ref


Точность оценки может быть 10^-6 и круче...

Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 19 2013, 06:17
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Спасибо за код.

Смотрите, убираем вашу строчку
Код
s=round(s*(2^NB))/(2^NB);% Quantization

а после вычисления ds добавляем:
Код
t=(0:N-1)/Fd;
a=[2*ones(1e3,1); zeros(1e3,1); -1.95*ones(1e3,1); 2*zeros(1e3,1)];
vel=lsim(tf(1,[1 0]),a,t);
pos=lsim(tf(1,[1 0]),vel,t);

s=pos'+s;
ds=vel'+ds;

s=quant(s,range(s)/3e3);


И результаты заметно ухудшаются. Как повысить точность оценки?
Я, кстати, возможно погорячился на счет 50 Гц. Можно, наверное, 15 Гц ограничить.
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 19 2013, 12:09
Сообщение #19


Знающий
****

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



Это была иллюстрация. Ваши поправки требуют изменений:

Код
clear all;

NB=12;%Num bits
M=20;%Num sins
N=4000;%Seq length
L=200;%Differentiators length
Fd=1000;%Sam[ling freq
Fmax=50;%Max freq

%Random phase
p=randn(1,M);

f=(1:M)*Fmax/M;
x=(0:N-1).'*2*pi*f/Fd;
x=x+repmat(p,length(x),1);

s=sum(sin(x).')/M; %Sequence
%s=s+randn(1,length(s))*0.001*std(s);

%s=round(s*(2^NB))/(2^NB);% Quantization

ds=(2*pi*f/M)*cos(x).';%Reference Derivative Sequence

t=(0:N-1)/Fd;
a=[2*ones(1e3,1); zeros(1e3,1); -1.95*ones(1e3,1); 2*zeros(1e3,1)];
vel=lsim(tf(1,[1 0]),a,t);
pos=lsim(tf(1,[1 0]),vel,t);

s=pos'+0.2*s;
ds=vel'+0.2*ds;

s=quant(s,range(s)/3e3);

h=firpm(L,[0 Fmax 1.5*Fmax Fd/2]/(Fd/2),[0 2*pi*Fmax 0 0],'differentiator');

plot(0:Fd/20000:Fd/2-Fd/20000,20*log10(abs(freqz(h,1,10000))));
grid on;


y=filter(h,1,[ s(end-L+1:end) s s(1:L)]);% Calculation Derivative from sequence
y=y(L+1+L/2:end-L/2);
disp(['Mean error =  ',num2str(std((ds(L/2:end-L/2+1)-y(L/2:end-L/2+1)))/std((ds)))]);%Compare with ref
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2013, 13:14
Сообщение #20


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 16 2013, 02:09) *
Дополню:
Допустим, у нас некоторая небольшая постоянная скорость. Исходный сигнал представляет из себя, соответственно. прямую. Однако из-за квантования он выглядит как пять точек на одном уровне, ступенька, пять точек на следующему уровне, ступенька, и так далее. Если все точки использовать для сглаживающего сплайна, то он будет стремиться минимизировать расстояние до всех точек и аппроксимирующая кривая будет так же похожа на ступеньки, только сглаженные. В результате оценка производной по такой кривой весьма паршивая. Если же прорядить исходный сигнал и построить сглаживающий сплайн по каждому k-ому отсчету, то это затруднение исчезает при хорошем выборе k.

Но Вы же не можете знать, как на самом деле ведет себя система. Может, скорость не постоянная, и там, где Вы видите ступеньку, а думаете, что там прямая, там ступенька и есть на самом деле.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 19 2013, 14:34
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(thermit @ Aug 19 2013, 16:09) *
Это была иллюстрация. Ваши поправки требуют изменений:


Спасибо!
У меня пара вопросов осталось, если не трудно:
1) Из каких соображений L=300 заменили на L=200? И отсечение с 1.6*Fmax на 1.5*Fmax?
2) Почему
Код
y=filter(h1,1,[ s(end-L+1:end) s s(1:L)]);

а не, например,
Код
y2=filter(h1,1,[ s(1:L) s s(end-L+1:end)]);

Мне упраженения показывают, что второй лучше дает результаты, нет колебаний в начале и конце отрезка, но я от ЦОС далек и не знаю.

UPD: Есть, правда, один недостаток. Если теперь в примере убрать синусоидальные компоненты и оставить только ускоренное движение (s=pos'+0*s;
ds=vel'+0*ds), то результрующая оценка скорости будет сильно колебаться вокруг истинного знаечния. Предполагаю, что это как раз из-за квантования. Как быть в этом случае?

Цитата(Tanya @ Aug 19 2013, 17:14) *
Но Вы же не можете знать, как на самом деле ведет себя система. Может, скорость не постоянная, и там, где Вы видите ступеньку, а думаете, что там прямая, там ступенька и есть на самом деле.


В общем случае это совершенно справедливое замечание.
В тех конкретных примерах, которые я держу в голове и моделирую, речь идет именно о невыскоих скоростях. Это можно косвенно оценить, например, по физическому смыслу эксперимента и по другим наблюдаемым состояниям. При оценке скорости я хотел задать это как ограничение на ускорение, что, в принципе, срабатывает при использовании сглаживающего сплайна. При использовании фильтров такое ограничение, видимо, должно регулироваться через настройку полосы пропускания.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2013, 15:59
Сообщение #22


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 19 2013, 18:34) *
В общем случае это совершенно справедливое замечание.
В тех конкретных примерах, которые я держу в голове и моделирую, речь идет именно о невыскоих скоростях. Это можно косвенно оценить, например, по физическому смыслу эксперимента и по другим наблюдаемым состояниям. При оценке скорости я хотел задать это как ограничение на ускорение, что, в принципе, срабатывает при использовании сглаживающего сплайна. При использовании фильтров такое ограничение, видимо, должно регулироваться через настройку полосы пропускания.

Если сделать ограничения на ускорение и скорость, то такой алгоритм будет нелинейным... А все Ваши фильтры...
И мелкие ступеньки могут скрывать все, что угодно. Их никаким образом невозможно "правильно приукрасить"
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 19 2013, 17:17
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Tanya, простите, а в чем смысл вашего коментария?
Вы считаете, что методы (сглаживающий сплайн, фильтр) не позволяют ограничить ускорение и/или высокочастотные компоненты аппроксимирующей кривой? Или считаете, что неправильно их ограничивать основываясь на физическом смысле процесса?
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 20 2013, 12:55
Сообщение #24


Знающий
****

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



Цитата
RHnd:
1) Из каких соображений L=300 заменили на L=200? И отсечение с 1.6*Fmax на 1.5*Fmax?


Можно чуть повысить точность меняя х-ки дифференциатора. Но вообще-то - ловля блох...

Цитата
2) Почему
Код
y=filter(h1,1,[ s(end-L+1:end) s s(1:L)]);

а не, например,
Код
y2=filter(h1,1,[ s(1:L) s s(end-L+1:end)]);


Непринципиально. В любом случае в начале и в конце отсчеты числом равным половине длины дифференциатора будут кривыми.

Цитата
Есть, правда, один недостаток. Если теперь в примере убрать синусоидальные компоненты и оставить только ускоренное движение (s=pos'+0*s;
ds=vel'+0*ds), то результрующая оценка скорости будет сильно колебаться вокруг истинного знаечния. Предполагаю, что это как раз из-за квантования. Как быть в этом случае?


ФНЧ, ограничивающий полосу полезного сигнала

например
Код
[b,a]=butter(6,0.25*Fmax/Fd);
y=filtfilt(b,a,y);

Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 20 2013, 14:06
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Но если взять такой фнч, то при наличии синусоидальных компонент, он их съест.

На данный момент я пришел к выводу, что при налчии среднечастотных колебаний стоит использовать один метод (дифференциатор со сдвигом), а если таких колебаний нет и появляются ступеньки из-за квантования, то другой метод (предварительный фнч или сгл. сплайны). К сожалению, пока у меня не получилось сформирвать метод, который хорошо работал бы и в том случае, и в другом. Жаль.
Большое спасибо за помощь!

Цитата(thermit @ Aug 20 2013, 16:55) *
Непринципиально. В любом случае в начале и в конце отсчеты числом равным половине длины дифференциатора будут кривыми.

Да, но степень кривизны получается разная. Возможно, еще лучше поставить x(1)*ones(1,L) - тогда хотя бы разрыва фильтруемого сигнала не будет. А вообще, конечно, к недостаткам метода надо отнести, что L точек теряется. На больших данных это фигня, конечно, но все же.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 20 2013, 14:59
Сообщение #26


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 19 2013, 21:17) *
Tanya, простите, а в чем смысл вашего коментария?
Вы считаете, что методы (сглаживающий сплайн, фильтр) не позволяют ограничить ускорение и/или высокочастотные компоненты аппроксимирующей кривой? Или считаете, что неправильно их ограничивать основываясь на физическом смысле процесса?

Это я к тому, что вот, допустим, имеется длинная ступенька в один квант расстояния. Никакими сглаживаниями нельзя восстановить "правильную скорость". Ограничение на скорость даст только небольшое уменьшение пространства.
У Вас ведь реальная система подчиняется "правилам", поэтому все ступеньки уже должны быть "правильными".
Вы же, насколько я понимаю Вас, не считаете измерения зашумленными, когда всякие там методы фильтрации были бы уместны... Через Ваши ступеньки можно провести сколько угодно сколь угодно гладких кривых, удовлетворяющих "правилам" - с ограниченной первой и второй производными. Почти всегда.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 20 2013, 16:20
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Я не пойму, к чему вы ведете. Вы считаете, что рассмотренные методы по каким-то причинам нельзя использовать? Или хотите предложить более удачные решения?

Да, существует множество кривых с ограниченными производными, которые после квантования дадут одинаковый набор измерений, это очевидно.
Если я вижу набор ступенек, то буду искать движение с малым интегралом квадрата ускорения (ну или с отстутсвующими среднечастотными составляющими). Логика простая - проще предположить отсутствие колебаний, чем такие специальные колебания переменной частоты, что их не видно в измерениях. В зависимости от штрафа за ускорение или полосы пропускания я, естественно, буду получать разные кривые, но они будут близки друг к другу. Если же я увижу осцилляции в измерениях, то буду искать движение, в котором есть среднечастотные компоненты.


Придумалась такая возможная идея.
Параметризуем алгоритм аппроксимации некоторым параметром Q . Это может быть или штраф за ускорение, или полоса пропускания фнч. Чем Q меньше, тем более сглаженный и низкочастотный сигнал получается на выходе. Далее этот выходной сигнал квантуем с известным шагом квантования. И считаем отклонение исходного сигнала от проквантованного сглаженного. Далее два варианта: либо найти наименший Q, при котором имеем нулевой отклонение, либо минимизировать некоторый критерий, сочетающий норму отклонения и штраф за величину Q.
Т.е. найти самую низкочастотную кривую, которая после квантования будет близка к исходному сигналу.
UPD: Действительно, я сейчас промоделировал - работает, по первым прикидкам, очень неплохо. И для сигналов с среднечастотными колебательными компонентами, и без таких - один и тот же код выдает очень хорошую оценку скорости. Уф.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 20 2013, 16:27
Сообщение #28


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 20 2013, 19:59) *
Я не пойму, к чему вы ведете. Вы считаете, что рассмотренные методы по каким-то причинам нельзя использовать? Или хотите предложить более удачные решения?

Да что там мудрить... Проводите ломаную между точками - наклон - это скорость. Получается лестница со ступеньками. Ускорение только в точках квантования будет бесконечным. Модифицируем картинку - вертикальные кусочки меняем на наклонные (с максимальным наклоном) - вот и поправили. Если у Вас имеются априорные данные о связи ускорения со скоростью или координатой, - учитываем это.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 20 2013, 16:37
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Это вы мне первую разность предложили использовать? Шутите, что ли? Или тонкий сарказм?
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Aug 21 2013, 06:57
Сообщение #30





Guests






Это не задача ЦОС, это задача идентификации динамической системы и построения оптимального наблюдателя за вектором состояния системы.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 07:10
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(TSerg @ Aug 21 2013, 10:57) *
Это не задача ЦОС, это задача идентификации динамической системы и построения оптимального наблюдателя за вектором состояния системы.

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

Но я предположил, что, возможно, есть какие-то методы из смежних областей, например ЦОС, о которых я не знаю, но они могут хорошо сработать в оффлайн.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 21 2013, 07:13
Сообщение #32


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 20 2013, 20:37) *
Это вы мне первую разность предложили использовать? Шутите, что ли? Или тонкий сарказм?

Нисколечко...
Вот если бы у Вас была модель, то Вы бы могли обучить нейронную сеть или какую-нибудь искаженную (женскую) логику.
Это если бы Вы знали какие-то зависимости и ограничения на функцию и ее производные.
А если не знаем, то может быть любое, построение которого я и предложила. Если результат Вы отвергаете, значит знаете нечто априори, что отвергает такое решение.
А искать философскую формулу - задача для алматематики.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Aug 21 2013, 07:38
Сообщение #33





Guests






>Да, если бы решалась онлайн.

Не имеет значения - офф или он.
Если параметры модели известны - на основе обратной модели вычисляете вход, затем на основе входа и прямой модели - ненаблюдаемые переменные состояния.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 08:13
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(TSerg @ Aug 21 2013, 11:38) *
Если параметры модели известны - на основе обратной модели вычисляете вход, затем на основе входа и прямой модели - ненаблюдаемые переменные состояния.

Модель - два интегратора с неизвестным сигналом на входе. Какая такая обратная модель? Дифференциатор второго порядка? Так задача и сформулирована - как по набору измерений провести дифференцирование хотя бы первого порядка. А вы предлагаете сразу восстанавливать оценку входа (ускорения). Как?


Цитата(Tanya @ Aug 21 2013, 11:13) *
Вот если бы у Вас была модель, то Вы бы могли обучить нейронную сеть ...
Если бы у меня была какая-то более информативная модель, чем два интегратора, а, еще лучше, какие-то входные сигналы этой какой-то модели, то я бы, как правильно пишет TSerg, рассматривал бы задачу в контексте идентификации и построения некоторого наблюдателя. Но у меня нет ни того, ни другого. Давайте оставаться в рамках постановки задачи.

Цитата(Tanya @ Aug 21 2013, 11:13) *
Это если бы Вы знали какие-то зависимости и ограничения на функцию и ее производные.
А если не знаем, то может быть любое, построение которого я и предложила. Если результат Вы отвергаете, значит знаете нечто априори, что отвергает такое решение.
Пожалуйста, прочитайте тему с начала. Там есть про ограничения на значения скорости и усорения, про ограничения на частотные компоненты (что будет порушено при взятии первой разности). И даже немного про выбор кривой из семейства за счет штрафа на ускорение. Более того, уже было предложение использовать первую разность. И был мой ответ.

Цитата(Tanya @ Aug 21 2013, 11:13) *
какую-нибудь искаженную (женскую) логику.
Давайте воздерживаться от таких высказываний.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 21 2013, 08:50
Сообщение #35


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 21 2013, 12:13) *
Пожалуйста, прочитайте тему с начала. Там есть про ограничения на значения скорости и усорения, про ограничения на частотные компоненты (что будет порушено при взятии первой разности). И даже немного про выбор кривой из семейства за счет штрафа на ускорение. Более того, уже было предложение использовать первую разность. И был мой ответ.

Давайте воздерживаться от таких высказываний.

Если бы Вы тоже внимательно читали, то воздержались бы от подобных высказываний. Я предлагала сглаживать ступеньки с учетом ограничений.
Вот тогда и симулируйте - случайное значение ускорения (или еще какие условия от положения или скорости) интегрируем (знаем идеальную скорость), интегрируем второй раз - идеальное положение, квантуем и получаем наблюдаемый сигнал...
И тренируем женскую логику или имитатор кусочка мозга. Вот что я и предлагала.
А чем Вам не нравятся мои высказывания?
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 09:03
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Tanya @ Aug 21 2013, 12:50) *
Вот тогда и симулируйте - случайное значение ускорения (или еще какие условия от положения или скорости) интегрируем (знаем идеальную скорость), интегрируем второй раз - идеальное положение, квантуем и получаем наблюдаемый сигнал...
И тренируем женскую логику или имитатор кусочка мозга. Вот что я и предлагала.

Т.е. вы прелагаете построить и обучить некоторую нейронную сеть, которая по набору квантованных измерений положения будет выдавать хорошую и не сдвинутую оценку скорости, так? И будет хорошо работать во всем диапазоне входных сигналов? Я с нейронными сетями знаком очень поверхностно, но в области управления не припомню никаких работ, где бы использовались дифференциаторы, построенные на нейронных сетях. Можете указать такие статьи/книги? Или сами что-то подобное делали?

Пожалуйста, не надо писать про женскую логику. Мне неприятно.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 21 2013, 09:21
Сообщение #37


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 21 2013, 13:03) *
будет выдавать хорошую и не сдвинутую оценку скорости, так? И будет хорошо работать во всем диапазоне входных сигналов?
Пожалуйста, не надо писать про женскую логику. Мне неприятно.

Вот у меня нет критерия "хорошести". Ведь квантование искажает картинку. Даже если бы квантование по ординате было более мелкое, квантование по времени внесет всегда ошибку в вычисление скорости и ускорения.
Если нет ограничений, то невозможно получить ничего хорошего. Чем теснее ограничения, тем лучше будет получаться. Но ведь нет другого пути?
Хорошо, буду использовать alias (или эвфемизм) - FUZZY.
Сети очень давно не трогала... Когда-то были free пакеты.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 09:35
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Tanya @ Aug 21 2013, 13:21) *
Вот у меня нет критерия "хорошести". Ведь квантование искажает картинку. Если нет ограничений, то невозможно получить ничего хорошего. Чем теснее ограничения. тем лучше будет получаться. Но ведь нет другого пути?
Видимо, я раньше не достаточно отчетливо высказал мысль, что из множества кривых, описывающий квантованные данные, я хочу выбрать ту, где наименьший квадрат ускорения. Или где наименьший вклад компонентов с большими частотами. Т.е. если две кривые описывают квантованные данные, но у одной существенно преобладают низкие частоты, а у другой заметно присутствуют среднечастотные, то первая кривая лучше. Вот такой у меня критерий "хорошести", который проистекает из физическиой природы сигнала.

Цитата(Tanya @ Aug 21 2013, 13:21) *
Сети очень давно не трогала... Когда-то были free пакеты.
Я же не про пакеты спрашивал, их бесплатность меня на данном этапе вообще не волнует. Я спрашивал, известны ли вам успешные примеры использования нейронных сетей для решения поставленной задачи. Из литературы или из личного опыта. Мне - не известны.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 21 2013, 09:46
Сообщение #39


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 21 2013, 13:35) *
Видимо, я раньше не достаточно отчетливо высказал мысль, что из множества кривых, описывающий квантованные данные, я хочу выбрать ту, где наименьший квадрат ускорения. Или где наименьший вклад компонентов с большими частотами. Т.е. если две кривые описывают квантованные данные, но у одной существенно преобладают низкие частоты, а у другой заметно присутствуют среднечастотные, то первая кривая лучше. Вот такой у меня критерий "хорошести", который проистекает из физическиой природы сигнала.

Я же не про пакеты спрашивал, их бесплатность меня на данном этапе вообще не волнует. Я спрашивал, известны ли вам успешные примеры использования нейронных сетей для решения поставленной задачи. Из литературы или из личного опыта. Мне - не известны.

Что значит выбрать с наименьшим квадратом ускорения? Если Вы знаете, в каких пределах лежит реальное ускорение. то из этого и нужно исходить. Вы еще можете наложить ограничение на третью производную при моделировании. А что до частот, то при дифференцировании всегда возрастают высокочастотные компоненты...
Про сети. Я такие примеры знаю, но это коммерческий проект. Не скажу. Сеть ведь не знает ничего про физический смысл... Берет себе разности... Вы еще в данном случае должны определиться с временным интервалом. Если ускорение скачет раз в секунду, то это тоже нужно учесть, выбирая правильное число точек в секунду для анализа.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 10:27
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Tanya @ Aug 21 2013, 13:46) *
Что значит выбрать с наименьшим квадратом ускорения?

Минимизировать штраф, пропорциональный интегралу квадрата ускорения.

Цитата(Tanya @ Aug 21 2013, 13:46) *
А что до частот, то при дифференцировании всегда возрастают высокочастотные компоненты...
Цитата(Tanya @ Aug 21 2013, 13:46) *
Я такие примеры знаю, но это коммерческий проект. Не скажу.
Цитата(Tanya @ Aug 21 2013, 13:46) *
Если ускорение скачет раз в секунду, то это тоже нужно учесть, выбирая правильное число точек в секунду для анализа.

Спасибо, я вас понял.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 21 2013, 10:41
Сообщение #41


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Aug 21 2013, 14:27) *
Минимизировать штраф, пропорциональный интегралу квадрата ускорения.

А откуда такие условия? Вот если у нас есть две "точные" точки (время, координата), то мы уверенно можем сказать, что средняя скорость равна (Вы будете смеяться?) разности координат, деленной на разность времен. Мы можем положить скорость константой на этом интервале - соответственно, ускорение равно нулю (прекрасно), но для следующей точки, если мы будем придерживаться этого подхода, придется принять, что ускорение сделало дельтаобразный выброс. а потом опять стало постоянным... нулем.
Не нравится? Берем три точки. По ним можно точно определить начальную скорость и ускорение (если мы положим его постоянным). Таким образом, ничего не удается минимизировать.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Aug 21 2013, 11:20
Сообщение #42





Guests






Рискну предположить, что речь идет, к примеру, об [электро]приводе чего-либо, с фиксацией значений угловой или линейной координаты.
Это не совсем двойное интегрирование, но допустить можно.

Будьте смелее в части технического описания задачи и условий. sm.gif

P.S.
Было бы неплохо скинуть реализацию процесса, хоть бы и в приват - если данные жутко секретные excl.gif
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 11:30
Сообщение #43


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(TSerg @ Aug 21 2013, 15:20) *
Рискну предположить, что речь идет, к примеру, об [электро]приводе чего-либо, с фиксацией значений угловой или линейной координаты.
Это не совсем двойное интегрирование, но допустить можно.

А принципиально? Хорошо, пусть это будет выход электропривода - двойное интегрирование неизвестного неизмеряемого момента, деленного на момент инерции. Или пусть это будет линейный гидропривод - двойное интегрирование неизвестной неизмеряемой силы, деленной на массу. Мне кажется, это никак не упрощает, да и вообще не меняет исходной задачи. Нет?
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Aug 21 2013, 11:44
Сообщение #44





Guests






Если мы ведем речь о динамической, возможно упрощенно линейной системе, то методы идентификации ее параметров или уточнения их давным давно изучены.
Есс-но, нужна более правдоподобная модель, чем просто два интегратора, но даже и такой случай не критичен.
Что это дает?
Это дает правильное понимание методических и алгоритмических возможностей по извлечению полезных (внутренних) сигналов из выходных наблюдаемых координат.
Каким бы ни был вход, корреляционная функция выхода хорошо будет известна в рамках принятой модели, а ее уточнение - чисто техническая задача.
И опирается такой подход на теорию динамических систем, классический стат. аппарат и предельные теоремы.
Если говорить о теоретико-методическоих подходах, то это два основных: метод пространства состояний и метод ошибки предсказания.

P.S.
Заодно уж найдите и почитайте о "традиционном" подходе, предложенным Тихоновым Андреем Николаевичем в его трудах "Методы решения некорректных задач", Наука 1974-1979

P.P.S.
Задача ЦДС давным давно решена разными способами в рамках тех же ПВО и ПРО, иначе бы С-300 промахивалисьsm.gif
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 12:56
Сообщение #45


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



В целом, все ваши рассуждения об известной динамической моедли и тому подобном - справедливы. Но это все - общие слова. Я испытываю некоторые сомнения, что они существенно пригодятся для решения данной задачи. Какие методические и алгоритмические возможности можно вытащить из этой информации, которых нет в изначальной постановке задачи?

Цитата(TSerg @ Aug 21 2013, 15:44) *
Задача ЦДС давным давно решена разными способами в рамках тех же ПВО и ПРО, иначе бы С-300 промахивалисьsm.gif

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

Цитата(TSerg @ Aug 21 2013, 15:44) *
Заодно уж найдите и почитайте о "традиционном" подходе, предложенным Тихоновым Андреем Николаевичем в его трудах "Методы решения некорректных задач", Наука 1974-1979

Постараюсь посмотреть. Что-то конкретно, или всю книгу вообще?


Выкладываю данные. Это модельные данные, так что исходная скорость известна. Тут t - время, x1, w1 - положение и скорость в первом эксперименте, x2, w2 - положение и скорость во втором эксперименте, quant_size - размер кванта. Отличаются два эксперимента наличием среднечастотных составляющих, до 50 Гц. Я ищу метод, который в обоих случаях дает оценку, близкую к модельной скорости. Пока лучше всего себя показывает подход, который я описал в сообщении #27. Полученные этим методом скорости в переменных est_w1, est_w2.
Прикрепленные файлы
Прикрепленный файл  data.zip ( 371.82 килобайт ) Кол-во скачиваний: 29
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 21 2013, 13:13
Сообщение #46


Знающий
****

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



Цитата
Постараюсь посмотреть. Что-то конкретно, или всю книгу вообще?


4-я глава 6 параграф.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 13:40
Сообщение #47


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(thermit @ Aug 21 2013, 17:13) *
4-я глава 6 параграф.

Спасибо, посмотрел. На сколько я с наскоку понял, это просто о регуляризации. Т.е. сглаживающий сплайн тоже является частным случаем подхода, рассмторенного в книге. А параметр регуляризации альфа предлагается выбирать "по невязке", т.е., если я правильно понял, подбором.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Aug 21 2013, 13:55
Сообщение #48





Guests






Из новомодных - Hilbert–Huang transform (HHT):
empirical mode decomposition (EMD) + intrinsic mode functions (IMF)
(огибающие сглаживаются кубическим сплайном или скользящим квадратичным полиномом).

Еще можно взглянуть на Майстренко, Старовойтов "ЦДС с применениме многоточечных методов" и др. их работы. НГУ, Томск
Go to the top of the page
 
+Quote Post
thermit
сообщение Aug 21 2013, 14:21
Сообщение #49


Знающий
****

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



Цитата
RHnd:
Спасибо, посмотрел. На сколько я с наскоку понял, это просто о регуляризации. Т.е. сглаживающий сплайн тоже является частным случаем подхода, рассмторенного в книге. А параметр регуляризации альфа предлагается выбирать "по невязке", т.е., если я правильно понял, подбором.


Да. В любом случае все действия сводятся к аппроксимации исходной последовательности гладкой функцией. Суть низкочастотная фильтрация.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 15:43
Сообщение #50


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(TSerg @ Aug 21 2013, 17:55) *
Из новомодных - Hilbert–Huang transform (HHT):
empirical mode decomposition (EMD) + intrinsic mode functions (IMF)
Выглядит интересно. К сожалению, вряд ли я стану сам это программировать, а готовых пакетов в матлабе не нашел.

Цитата(TSerg @ Aug 21 2013, 17:55) *
Еще можно взглянуть на Майстренко, Старовойтов "ЦДС с применениме многоточечных методов" и др. их работы. НГУ, Томск
Онлайн.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Aug 21 2013, 16:13
Сообщение #51





Guests






HHT
http://www.mathworks.com/matlabcentral/fil...m/content/emd.m

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

Довольно хорошо это описано у Бесекерского, Изранцева "Системы автоматического управления с микроЭВМ", Наука, 1987
$4.1 Дифференцирование цифровых последовательностей.

Начать с методических ошибок дифф-я случайных стационарных сигналов, поскольку остальное - вторично.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 17:21
Сообщение #52


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(TSerg @ Aug 21 2013, 20:13) *
HHT

Спасибо. Хотя, честно говоря, как-то у меня с этим не очень получается. Разбил я исходные данные на несколько сигналов imf. А дальше что делать, как теперь скорость посчитать?

Цитата(TSerg @ Aug 21 2013, 20:13) *
На самом-то деле, я бы рекомендовал обратиться вначале к теоретическим основам вычисления производных непрерывных функций, квантованных по времени и уровню.
Довольно хорошо это описано у Бесекерского, Изранцева "Системы автоматического управления с микроЭВМ", Наука, 1987
$4.1 Дифференцирование цифровых последовательностей.
Начать с методических ошибок дифф-я случайных стационарных сигналов, поскольку остальное - вторично.

То, на что вы ссылаетесь - вычисление матожидания и дисперсии ошибки цифрового дифференцирования в реальном времени для аналитически заданного сигнала или сигнала с аналитически заданной корелляционной функцией сигнала, его производной и их взаимной. Объясните мне, я действительно не понимаю. Какое отношение это имеет к поставленной задаче оффлайн нахождения оценки производной для гладкой кривой, у которой нет аналитического задания, а как случайный процесс она может быть нестационарной?
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Aug 21 2013, 22:50
Сообщение #53


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Цитата(RHnd @ Aug 21 2013, 21:21) *
Какое отношение это имеет к поставленной задаче оффлайн нахождения оценки производной для гладкой кривой, у которой нет аналитического задания
Не являясь специалистом в ЦОС, покрутил я ваши данные, для медленно меняющегося процесса получил приближение лучше вашего, для быстрого - такое же как у вас (оно и так у вас хорошее), но при чем здесь ваши слова про гладкую кривую? Ваш набор х1 это отнюдь не гладкая кривая, и для разных наборов данных я использовал разную фильтрацию, дифференцирование - по 5 точкам в обоих случаях (это не принципиально, можно хоть по любому количеству, хоть те же первые разности, которые вам советовали но которые вы почему-то считаете шуткой), безо всякого прореживания и сглаживающих сплайнов. Имхо, если вы хотите в первом наборе видеть гладкую кривую производной при ступенчатом характере кривой данных, надо знать, до какой степени эти данные можно фильтровать = сглаживать.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 21 2013, 23:08
Сообщение #54


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Если вы для разных наборов использовали разные параметры фильтрации, которые выбирали вручную (я вас правильно понял?), то это не интересно. Уважаемый thermit уже написал и показал, что под конкретные данные можно очень сильно подогнать фильтр. Хотелось бы видеть метод, который не надо руками перенастраивать. Возможно, я многого хочу, но задачу подгонки под конкретные данные мы уже обсудили на первых двух страницах и с ней, вроде как, все более-менее ясно. Те оценки, которые в файле, — они получены одним и тем же методом без варьирования коэффициентов. Точнее, коэффициент алгоритмически находится по анализу данных.

Первую разность можно использовать только в связке с каким-то фнч, что было на первой странице темы. Без фильтрации первая разность будет бесполезна для данной задачи. Соответственно, предлагать использовать первую разность, не оговорив используемый фильтр или другой метод сглаживания - сомнительно и не интересно.

x1, как и x2, — квантованные дискретные отсчет гладкой кривой с непрерывными первой и второй производными. Когда я говорил про гладкую кривую, я имел ввиду именно это.

UPD: Если не сложно, уточните, пожалуйста, как именно вы фильтровали, каким типом фильтра, и как считали производную. Использовали ли оффлайновость?
Go to the top of the page
 
+Quote Post
iDiode
сообщение Oct 28 2013, 05:19
Сообщение #55


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 9-07-10
Пользователь №: 58 360



Пользовался вот этим:
http://en.wikipedia.org/wiki/Savitzky%E2%8...differentiation
Удобно и быстро.
Автоматически определить оптимальный параметр сглаживания (регуляризации) - можно, и, разумеется, ето было сделано, с разными оговорками, лет 20 тому назад, некто Hansen, все ето обоbщил на матлабе и сделал библиотеку Regularization Tools.
http://www2.imm.dtu.dk/~pcha/Regutools/

Сообщение отредактировал iDiode - Oct 28 2013, 05:30
Go to the top of the page
 
+Quote Post

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

 


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


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