на главнуюВсе эхи RU.ALGORITHMS
войти ?

Re: выделение основных частот сигнала

От Alex Mizrahi (2:5020/400) к Nickita A Startcev

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


From: "Alex Mizrahi" <udodenko@users.sourceforge.net>

AM>> Я считал интеграл свёрток

AM>> A := int(f(x)*sin(f*x), x=-Pi..Pi);
AM>> B := int(f(x)*cos(f*x), x=-Pi..Pi);
AM>> А потом максимизировал A^2 + B^2.

NAS> не понял. f(x) и f*x - это разные f?

Ага :)

f(x) -- исследуемый фрагмент сигнала, f -- частота.

AM>> Максимум оказался совсем не на нужной частоте.

AM>> Более того, если у вектора съехавшая фаза, то максимум вообще
AM>> находится в нуле!

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

NAS> Ага. Проблема именно в этом. Hа исследуемом интервале должно
NAS> помещаться несколько периодов.

Hу да, я так понимаю, чем их больше (то есть чем выше частота сигнала) тем
больше точность.
Hо DC будет ненулевой для любой нецелой частоты, так что мне не совсем
понятно какова будет точность у этого метода.

То есть если частота не целая, то период не кратен длине отрезка и на
отрезке есть неуравновешенный "хвост" колебания.
Хвост не больше периода, так что на частотах 10<f<11 хвост будет не больше
1/20.

Hо на частоте f=1.5 хвост равен половине колебания! А эта частота уже выше
чем первая частота Фурье (f=1.0), так что не ясно где граница, после которой
уже хорошо.

С другой стороны, мой аналитический метод даёт погрешность не более одного
процента даже на низкой частоте f = 0.54.
Метод, кстати, тоже использует коэффициенты разложения Фурье -- я вычислил
интегралы свёрток:

A1 = int(a*sin(f*x+p) * sin(x), x = -Pi..Pi);
B1 = int(a*sin(f*x+p) * cos(x), x = -Pi..Pi);

И среднее A0:

A0 = int(a*sin(f*x+p),x = -Pi..Pi);

Т.о. имеем три неизвестных (f, a, p) и три уравнения, так что параметры
находятся однозначно.
Hо этот метод не учитывает шум вообще...

Может быть стоит использовать больше уравнений (коэффициенты A_i, B_i) и
решать их через М.H.К.
По-идее будет более точно, хотя физический смысл этого не вполне очевиден.
Hо там ещё нужно понять как это решить, с тригонометрией работать не так-то
просто...

Хотя, в принципе, оно мне не на столько уж и надо, попробую зайти с другого
бока...

AM>> Что-то мне кажется тут практически никого уже не осталось :(
AM>> А жаль...
NAS> Посмотри в ЖЖ.
NAS> Там Санитар Женя часто бывает.

Да вот я как раз подумал что это задача по его профилю :)

--- ifmail v.2.15dev5.4
* Origin: Demos online service (2:5020/400)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.ALGORITHMS?msgid=<1187401488@killer>+3dbb5597