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

 
 
> Помогите опознать алгоритм
ataradov
сообщение Oct 9 2011, 19:33
Сообщение #1


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Помогите опознать алгоритм пожалуйста.

Для размерности 3 выглядит вот так:

CODE
      a0[0] = a[1] * a[2];
      a0[1] = b[1] * a[2] + a[1] * b[2];
      a0[2] = b[1] * b[2];

      a0[0] += a[0] * a[2];
      a0[1] += b[0] * a[2] + a[0] * b[2];
      a0[2] += b[0] * b[2];

      a0[0] += a[0] * a[1];
      a0[1] += b[0] * a[1] + a[0] * b[1];
      a0[2] += b[0] * b[1];


a, b - исходные векторы размерности 3, a0 - результат.

В коде видны явные закономерности, похоже на какую-то стандартную операцию над векторами, но не могу понять какую именно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ataradov
сообщение Oct 12 2011, 18:10
Сообщение #2


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



LP - это линейное программирование?

Если что, вот статья про которую я говорю: https://ccrma.stanford.edu/~stilti/papers/rltalk.pdf

Вот немного более читаемый матлабовский код:
CODE
clear all;

arr = [261.4508114 261.5063567 261.6451613];
avg = sum(arr) / length(arr);

t = 1 - arr / avg;
a = (t+1) / (avg * 2);
b = t * (1) * pi;

az1 = conv(conv([1.0, 0.0], [a(2) b(2)]), [a(3) b(3)]);
az2 = conv(conv([1.0, 0.0], [a(1) b(1)]), [a(3) b(3)]);
az3 = conv(conv([1.0, 0.0], [a(1) b(1)]), [a(2) b(2)]);

a0 = az1+az2+az3;
a0 = [0 a0];

a1 = conv(az3, [a(2) b(3)]);

t0 = 199.1735851;
t1 = -0.00705058376;

z = t0 * a1(1:4) * exp(j*t1) - j*a0(1:4);

r = roots(z);

В результате
CODE
r =

  -0.0568 + 7.8407i
   0.3645 + 0.0279i
  -0.3631 + 0.0056i
что полностью согласуется с выводами в статье - получилось 3 "струны", одна затухает очень быстро (7.8407), а две остальные медленно (0.0279 и 0.0056) при этом они расстроены по частоте так, что образуются биения.

Я с корневыми годографами на "вы", так что осознать пока все это не могу, но похоже, что t1 - это то, что в статье обозвано коэффициентом связи (coupling coefficient). В параметрах модели он плавно меняется от 0 до -15 градусов (тут он переведен в радианы уже) при изменении номера клавиши от первой до последней.
Go to the top of the page
 
+Quote Post
iiv
сообщение Oct 15 2011, 19:30
Сообщение #3


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Я думал, что линейное предсказание, но, похоже, ошибался.

Если представить $a_i$, $b_i$ как входные векторы, то результат в матричном виде и латехе можно записать примерно так:

$$\left( \product_i (a_i I + b_i P) \right) \sum_i (a_i I + b_i P)^{-1} e,$$

где $e = (1, 0, ..., 0)^T$, а P матрица сдвига, как я сказал выше.

Правда мне такое представление ничего не дало чтобы упростить или как-то серьезно перекаверкать этот алгоритм...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Taradov Alexander   Помогите опознать алгоритм   Oct 9 2011, 19:33
- - iiv   Пусть у Вас есть матрица сдвига P (0 1 0) (0 0 1)...   Oct 9 2011, 20:40
- - Taradov Alexander   Вот более полный код, для N=3 эквивалентен вышепри...   Oct 10 2011, 12:11
|- - iiv   a1 инициализирован только в первых 4 элементах. А ...   Oct 10 2011, 14:52
|- - Taradov Alexander   QUOTE (iiv @ Oct 10 2011, 18:52) a1 иници...   Oct 10 2011, 15:10
- - Taradov Alexander   Немного становится понятнее. В цикле тут происходи...   Oct 11 2011, 06:12
- - Taradov Alexander   Вот эквивалентный код на Matlab-e: CODEarr = ...   Oct 11 2011, 16:19
- - Taradov Alexander   Нашел статью, в которой используется похожий подхо...   Oct 11 2011, 20:53
|- - iiv   Цитата(Taradov Alexander @ Oct 12 2011, 02...   Oct 12 2011, 15:09
- - Taradov Alexander   Похоже и не получится, похоже, что это результат н...   Oct 15 2011, 19:47
- - Taradov Alexander   Продолжаю ковырять этот алгоритм. Начал его исслед...   Oct 19 2011, 16:07


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:41
Рейтинг@Mail.ru


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