psilogic: (wpriz)
psilogic ([personal profile] psilogic) wrote2015-12-26 03:59 pm

Вопрос математикам

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

Сами мы не местные, в смысле, я же не математик и понимаю, что мой вопрос может быть из разряда просьбы к френду-программисту "а напиши мне к завтрему с нуля аналог Microsoft Word". А, может, наоборот - решение на поверхности, а я его в упор не вижу, так как не математик.

Итак.

Дана вот такая функция Z(m,φ,k) =


где
N - целое, положительное, известно
k - целое от 0 до N/2, известно
m - действительное, превосходящее k не более, чем на 1, неизвестная
φ - действительное (фаза) от -пи до +пи, неизвестная
j - мнимая единица,
Z(m,φ,k) - комплексная функция.
Цель - найти m,φ

Известно отношение модулей |Z(m,φ,k)|/|Z(m,φ,k+1)|, известны комплексные фазы (аргументы) Z(m,φ,k) и Z(m,φ,k+1).
Сейчас я численно решаю систему
|Z(m,φ,k)|/|Z(m,φ,k+1)| = A
Arg(Z(m,φ,k+1)) = B
- путем попеременного варьирования m,φ

Физический смысл задачи - найти частоту и фазу гармоники, которая при разложении в дискретный спектр Фурье "размазалась" на множество гармоник по той причине, что не попала точно в одну из фурье-гармоник.
Музыкальный смысл задачи - уточнить высоту ноты, которую играют или поют в данное мгновение.

Иллюстрация: нота ля-бемоль в музыкальной записи с частотой дискретизации 44100 Гц. В исходном сигнале - единственная гармоника в районе 415 Гц и амплитудой 10000, а в результате преобразования Фурье (N = 1000) получается ЭТО:



Есть идеи?

[identity profile] http://users.livejournal.com/taras_/ 2015-12-26 06:12 pm (UTC)(link)
[допустим k поcредине в районе N/4, m - там же, тогда exp(-2pi*j*(m+k)/N) ~ exp(-pi*j/2) ~ -j ... э... ну и?]

В знаменателе второго слагаемого будет -j-1, то есть его модуль sqrt(2). Допустим, m-k = 0.5, N = 1000, тогда в модуль знаменателя первого слагаемого

|exp(2pi*j/2000) - 1| = 3.1416e-03

то есть примерно в 450 раз меньше.

Теперь посмотрим на числители. Поскольку exp(2*pi*j*k) = 1 для всех целых k, то

exp(2*pi*j*(m-k)) = exp(2*pi*j*(m+k)) = exp(2*pi*j*m)

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

Если ссылаться, то можно, например, сюда: http://www.tvd-home.ru/

[identity profile] psilogic.livejournal.com 2015-12-26 06:49 pm (UTC)(link)
а, блин, тормозил, не туда смотрел
ещё раз спасибо :)