Andrey_1 0 26 января, 2011 Опубликовано 26 января, 2011 · Жалоба Наверное, не только в этом случае. Если верить авторскому рисунку, кроме затухания происходит перенос энергии основной моды в гармоники. И обратно? Это очень умная мысль - как раз такой "перенос" и возникает когда нет желания выполнять частотный анализ в режиме ZOOM - алаверды Бобу Рэндаллу Частотный Анализ 1989 год издание фирмы Брюль и Къер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorchem 0 3 марта, 2011 Опубликовано 3 марта, 2011 (изменено) · Жалоба В идеале нужен алгоритм, который позволит по заданному числу контрольных точек определть их положение так, чтобы СКО было минимальным. Или наоборот, по заданному СКО определить требуемое число точек и их положение. Если Вам необходимо найти оптимальные распределения точек для сплайн аппроксимации k-ой степени в l2 норме, можно поступить так: вначале аппроксимируете Вашу функцию сплайном k+2 степени s_{k+2}(x). Далее ищите разбиение x_0 < ... < x_i < ... < x_n так, чтобы \int_{x_i}^{x_{i+1}} \left(\frac{\delta^{k+1} s_{k+2}(x)}{\delta x^{k+1}}\right)^{\frac1{k+1}} dx было одинакого на всех отрезках. Если запутаетесь или не сможете сами, постораюсь формулы выложить, но, очень надеюсь, что сами справитесь. От себя хочу по самой задаче добавить. Кажется, если я правильно понял, есть желание аппроксимировать несколько (около 100) функций, у которых есть схожие формы, то есть вначале много осцилляций, в конце - все гладко и есть желание чуток поиграться с шумом. Моя идея - запишите эти функции (n штук) вначале на очень мелкой сетке с кусочно-постоянными или кусочно-линейными базисными функциями, чтобы шаг такой сетки был существенно меньше минимальной осцилляции. У Вас будет n векторов, образуйте из них матрицу. Сделайте этой матрице сингулярное разложение и выбросьте все сингулярные вектора, сингулярные значения которых будут меньше точности оцифровки вашого сигнала. Примените то, что я описал к оставшимся левым сингулярным векторам. Есть большая уверенность, что после всего этого Вы сильно сожмете эти данные, распаковка их будет съедать только несколько операций на точку, да и шум Вы тоже погасите. Изменено 3 марта, 2011 пользователем igorchem Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrey_1 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба Если Вам необходимо найти оптимальные распределения точек для сплайн аппроксимации k-ой степени в l2 норме, можно поступить так: вначале аппроксимируете Вашу функцию сплайном k+2 степени s_{k+2}(x). Далее ищите разбиение x_0 < ... < x_i < ... < x_n так, чтобы \int_{x_i}^{x_{i+1}} \left(\frac{\delta^{k+1} s_{k+2}(x)}{\delta x^{k+1}}\right)^{\frac1{k+1}} dx было одинакого на всех отрезках. Если запутаетесь или не сможете сами, постораюсь формулы выложить, но, очень надеюсь, что сами справитесь. От себя хочу по самой задаче добавить. Кажется, если я правильно понял, есть желание аппроксимировать несколько (около 100) функций, у которых есть схожие формы, то есть вначале много осцилляций, в конце - все гладко и есть желание чуток поиграться с шумом. Моя идея - запишите эти функции (n штук) вначале на очень мелкой кусочно-постоянной или кусочно линейной сетке, чтобы шаг такой сетки был существенно меньше минимальной осцилляции. У Вас будет n векторов, образуйте из них матрицу. Сделайте этой матрице сингулярное разложение и выбросьте все сингулярные вектора, сингулярные значения которых будут меньше точности оцифровки вашого сигнала. Примените то, что я описал к оставшимся левым сингулярным векторам. Есть большая уверенность, что после всего этого Вы сильно сожмете эти данные, распаковка их будет съедать только несколько операций на точку, да и шум Вы тоже погасите. help polyfit POLYFIT Fit polynomial to data. P = POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of degree N that fits the data Y best in a least-squares sense. P is a row vector of length N+1 containing the polynomial coefficients in descending powers, P(1)*X^N + P(2)*X^(N-1) +...+ P(N)*X + P(N+1). [P,S] = POLYFIT(X,Y,N) returns the polynomial coefficients P and a structure S for use with POLYVAL to obtain error estimates for predictions. S contains fields for the triangular factor ® from a QR decomposition of the Vandermonde matrix of X, the degrees of freedom (df), and the norm of the residuals (normr). If the data Y are random, an estimate of the covariance matrix of P is (Rinv*Rinv')*normr^2/df, where Rinv is the inverse of R. [P,S,MU] = POLYFIT(X,Y,N) finds the coefficients of a polynomial in XHAT = (X-MU(1))/MU(2) where MU(1) = MEAN(X) and MU(2) = STD(X). This centering and scaling transformation improves the numerical properties of both the polynomial and the fitting algorithm. Warning messages result if N is >= length(X), if X has repeated, or nearly repeated, points, or if X might need centering and scaling. Class support for inputs X,Y: float: double, single See also poly, polyval, roots, lscov. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorchem 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба help polyfit POLYFIT Fit polynomial to data. ... Уважаемый Андрей, очень хочу поинтересоваться смыслом Вашего ответа на мой топик, мне не понятно несколько моментов: 1. зачем копировать текст от матворкса без ссылки - Ваша копия получилась с не очень красивой визуализацией математических формул, поэтому, на мой вгляд, было бы правильннее дать ссылку на полифит, например так: http://www.mathworks.com/help/techdoc/ref/polyfit.html 2. как полифит согласуется с вопросом топикстартера? 3. как полифит может быть ответом на мой текст об оптимальном разбиении сплайн-аппроксимации? 4. Вы хоть раз пробовали вписывать такие функции как у топикстартера в полиномы высоких степеней сами, и видели, какая ошибка хоть в l1, хоть в l2 или l_{\infty} получается не говоря об устойчивости такого вписывания? Если нет, то не советуйте то, что не знаете, а если да, очень рад буду от Вас увидеть такие результаты (мне даже достаточно ссылки на Вашу публикацию в нормальном цитируемом журнале), с радостью просвещусь Вашими знаниями! С уважением ИИ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба очень хочу поинтересоваться смыслом Вашего ответа на мой топик, мне не понятно несколько моментов: Не обращайте внимания, человек то-ли самоутверждается, то-ли посты копит для становления своим. По теме: в формуле с помощью \delta - это обычная производная так странно записана или это какая-то особая производная? Выбор числа k: при степенях полинома больше 10 получается уже не очень хорошо, много осциляций. Каков физический смысл подинтегрального выражения? Вообще исходную задачу удалось свести к хранению быстро меняющейся части и представления плавной части экспонентами, но исходный вопрос все-еще интересен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorchem 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба Написал Вам ответ и прикрепил свой первый пост в файле http://www.elegant-mathematics.com/electronix.pdf через пару дней - уберу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба Написал Вам ответ и прикрепил свой первый пост в файле Спасибо, попробую разобраться. Вообще сам график - это одна гармоника записи звкуа фортепиано. В процессе разбирательства выяснилось, что синтезатор Pianoteq (идеальный результат для всей данной работы), хотя и заявляет о полноценном моделировании, сам использует семплы удара молоточка по заглушенной струне для возбуждения резонаторов модели. Решением диф. уравнения колебания жесткой струны является сумма гармоник, затухающих по экспонетам, где частоты гармоник и показатели экспонент зависят от физических параметров струны. Соотетственно затухающую часть можно не сжимать, а порсто заново восстанавливать при помощи простого банка фильтров. Получается естественно не 1:1 исходный графиг, но и фортепиано все звучат немного по-разнму, так что такое решение даже лучше простого сжатия. Сложный харакер огибающей на приведенном графике обусловлен биениями хора струн (нота С4, 3 струны). Как именно в такой модели физично сделать биения я пока не знаю, но работаю над этим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorchem 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба Решением диф. уравнения колебания жесткой струны является сумма гармоник, затухающих по экспонетам, где частоты гармоник и показатели экспонент зависят от физических параметров струны. Соотетственно затухающую часть можно не сжимать, а порсто заново восстанавливать при помощи простого банка фильтров. Получается естественно не 1:1 исходный графиг, но и фортепиано все звучат немного по-разнму, так что такое решение даже лучше простого сжатия. Понятно, и, кстати, очень разумно. Иначе надо было бы огород городить или заумные пакеты пользовать. У Вас действительно стоит задача много (100 и более) схожих семплов саппроксимировать? Если да, попоробуйте сингулярное разложение. Реально поможет! Если есть трудности - пишите в личку, помогу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться