|
|
  |
Ищу метод интерполяции ... |
|
|
|
Mar 19 2006, 14:21
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Пробую сейчас делать прораммный эквалайзер звукого сигнала. В тестовом примере фильтрацию частот буду призводить методом изменения коэфициентов прямого преобразования Фурье. Эквалайзер будет 10 полосным. Вот передо мной и встала задача проинтерполлировать значения огибающей АЧХ на основе значений регуляторов полос эквалайзера. Требования к методу интерполяции следующие: 1. Непрерывность первой и второй производной кривой интерполяции 2. Критерий "не выхождения" кривой на отрезке [Xi-1; Xi] за пределы значений [Y-1; Yi] Бъюсь над поблемой 3-й день. Пробовал использовать кубические сплайны. Такой метод удовлетворяет по 1-му условию, но не проходит по 2-му. Пробовал интерполировать "кусочно-полиномально" полиномами 2-й и 3-й степени, к-ты которых вычеслены на основе соседних опорных точек (заданых точек). В таком случае кривая соответствует 2-му критерию, но не имеет непрерывной 2-й производной. Какой метод посоветуете ? Пните в правильном направлении  , плииз.
|
|
|
|
|
Mar 20 2006, 07:18
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Цитата(Krys @ Mar 20 2006, 05:45)  А как же метод наименьших квадратов? Не уверен наверняка, но исходя из его мат. представления, он не удовлетворяет 2-му условию. Т.е возможны такие ситуации, когда, например на интервалe (a, b ) точка с (с принадлежит (a, b )), S( c ) > S( a ) и S( c ) > S( b ), где S- кривая интерполяции.
|
|
|
|
|
Mar 20 2006, 08:10
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Цитата(NickNich @ Mar 20 2006, 08:23)  В ограничениях на используемый метод не указан способ сшивки отдельных спектральных блоков. Я несколько не понял, что Вы имеете ввиду под сшивкой спектральных блоков. Если Вы про восстановление сигнала обратным преобразованием Фурье из обработанных коэфициентов, то в этом особой проблемы нет, если использовать достаточно большой размер окна и перекрытия. Хотя на низких частотах появляются паразитные гармоники, если задаваемое АЧХ в этой области частот имеет резкие фронты. Цитата(NickNich @ Mar 20 2006, 08:23)  Если такой проблемы не стоит (например - интерполяция используется для отрисовки огибающей спектра по текушим положениям регуляторов), и частотная сетка равномерна (т.е. частоты регуляторов сдвинуты на одинаковый шаг), то всем условиям удовлетворяют кубические B-сплайны. Частотная сетка логарифмически равномерна. Ну, например, 40 Гц, 80, 160, 320, 640 и т.д За наводку спасибо! Буду копать
|
|
|
|
|
Mar 20 2006, 09:35
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Цитата(Andrew10 @ Mar 20 2006, 10:50)  Добрый день!
Что-то кажется мне, что при произвольном выборе точек интерполяции условия 1) и 2) несовместны. Либо нужно вводить ограничение на класс интерполируемых функций. Пример: Если функция имеет локальный экстремум, то в общем случае его положение не обязательно совпадет с точкой интерполяции. И условие 2) будет нарушено. Если взять всем известный WinAmp и поиграться с его встроенным эквалайзером, можно проследить, что огибающая АЧХ формируемая там соответствует обоим критериям.
|
|
|
|
|
Mar 21 2006, 05:32
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Цитата(KolyanV @ Mar 20 2006, 13:18)  Не уверен наверняка, но исходя из его мат. представления, он не удовлетворяет 2-му условию. Т.е возможны такие ситуации, когда, например на интервалe (a, b ) точка с (с принадлежит (a, b )), S( c ) > S( a ) и S( c ) > S( b ), где S- кривая интерполяции. И всё же не стоит отбрасывать этот метод. Это лишь общая "канва", определяющая критерий оптимизации (по наименьшим квадратам ошибок). А внутри может быть что угодно (любые кривые), в частности, и то, что удовлетворяет вашим условиям. Метод позволяет просто подобрать коэффициенты. Кроме того, метод можно и видоизменить как критерий, так, чтобы ошибка "в минус" была неоптимальна. Это определяется формулой подсчёта ошибки. Например, брать не квадрат ошибки, а какую-то ещё формулу от ошибки. Это, конечно, я всё сумбурно говорю, глубоко не вникал.
Сообщение отредактировал Krys - Mar 21 2006, 05:32
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|