|
Сдвиг сигнала на небольшое время (меньше интервала дискретизации). |
|
|
|
 |
Ответов
|
Nov 20 2008, 13:33
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(AlexOr @ Nov 20 2008, 15:44)  Как осуществить сдвиг сигнала во временной области на небольшое время с наименьшими потерями по точности? Речь о временном ряде ограниченном по длине таким образом, что количество отсчетов кратно 2 в целой степени.
Время дискретизации - Td; Требуемый сдвиг - Tsh; Число отсчетов - N;
Есть идея для сдвига на произвольное время Tsh: 1. сделать дискретное преобразование Фурье 2. перевести полученные комплексные коэффициенты в показательную форму 3. изменить показатель(фазу) каждого коэффициента на соответствующий угол. 4. сделать обратное дискретное преобразование Фурье
Показатель(фазу) менять на величину k * 2 * PI * Tsh/ (Td * N), где k – номер коэффициента ДПФ. Таким образом показатель нулевого коэффициента не меняется, а первый и остальные меняются. Собственно тут производится сдвиг на одинаковое время всех спектральных составляющих сигнала.
Насколько правильна или неправильна такая идея? Может быть есть другие варианты? Оно может и правильно, только сдвиг наверно получется циклическим )) Обычно делают не так: 1. Если нужно сдвигать на фиксированую дельту лучшие результаты получаются если применить полиморфную фильтрацию. Вставляют нули между реальными отсчетами и фильтруют хорошим НЧ фильтром - получается интерполяция на более мелкую сетку. Потом обратно прорежают под другой фазой (или даже частотой) 2. Если нужно двигать на произвольную дельту используют сплайн интерполяцию чаще кубическую. В-сплайны
|
|
|
|
|
Nov 24 2008, 22:29
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(fontp @ Nov 20 2008, 16:33)  Оно может и правильно, только сдвиг наверно получется циклическим )) И что из того? Читайте условие внимательнее. Речь идёт о небольших сдвигах. По моему скромному недомыслию, в пределах +/- 0,5 временнОй дискреты.  Больше не имеет смысла. Впрочем, произвольная величина сдвига принципиального значения также не имеет. Цитата(fontp @ Nov 20 2008, 16:33)  1. Если нужно сдвигать на фиксированую дельту лучшие результаты получаются если применить полиморфную фильтрацию. Вставляют нули между реальными отсчетами и фильтруют хорошим НЧ фильтром - получается интерполяция на более мелкую сетку. Потом обратно прорежают под другой фазой (или даже частотой) Если точность большая не нужна, это в некоторых случаях может оказаться и быстрее FFT, но если нужна - увы... Цитата(fontp @ Nov 20 2008, 16:33)  ...2. Если нужно двигать на произвольную дельту используют сплайн интерполяцию чаще кубическую. В-сплайны Не понимаю всё же кардинальных преимуществ. Экстраполяцию или интерполяцию краевых участков после FFT-IFFT можно сделать аналогичным образом. Но это займёт гораздо меньше времени, чем полная сплайн-интерполяция, равно как и полиморфная фильтрация всего куска, если нужна мало-мальски приличная точность. Могу продемонстрировать, как примерно надо делать подобные вещи. Цитата(GetSmart @ Nov 25 2008, 00:46)  Применение для сдвига прямого и обратного FFT вероятно будет самым медленным из возможных алгоритмов. Ох, Горе-Горькое... Сдвиг через БПФ-ОБПФ - это самый быстрый и точный вариант алгоритма сдвига на произвольное время из всех возможных, скажем, для комплексных и полосовых сигналов. В том числе, и способов, предложенных ув. fontp. Когда ж Вы за ум возьмётесь, наконец, и перестанете писать о вещах, далёких от Вашего понимания?.. Цитата(GetSmart @ Nov 25 2008, 00:46)  ...ИМХО из самых скорострельных и достаточно точных алгоритмов для сдвига сигнала на любую дельту между отсчётами будет (почти как и предлагал fontp) пересчёт новых отсчётов сигнала по sinx/x. Для хорошей точности нового отсчёта достаточно посчитать свёртку в окресности 10..100 отсчётов. Желательно на нечётное кол-во, симметричное слева и справа. Итого будет N*K (K=10..100, а N=кол-во отсчётов) умножений и сложений. SinX/X для оптимизации быстродействия можно посчитать один раз для нужного сдвига и занести в таблицу. Америка открыта.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 25 2008, 09:12
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(petrov @ Nov 25 2008, 11:58)  Слишком категорично, а если нужно каждый отсчёт на произвольное время сдвигать, в модемах как раз и используется обычно полифазная фильтрация совместно с интерполятором лагранжа. Ну, в условии же написано: Цитата(AlexOr @ Nov 20 2008, 15:44)  Как осуществить сдвиг сигнала во временной области на небольшое время с наименьшими потерями по точности?.. А как можно сдвинуть сигнал на произвольное время с наименьшими потерями по точности, я и не знаю, честно говоря... Надо определиться, что вообще подразумевать под произвольным временнЫм сдвигом... Добавление/пропуск выборок допустимы, или сигнал всё же должен оставаться непрерывным?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
Сообщений в этой теме
AlexOr Сдвиг сигнала на небольшое время (меньше интервала дискретизации). Nov 20 2008, 12:44 AlexOr Цитата(fontp @ Nov 20 2008, 23:33) Оно мо... Nov 20 2008, 13:44  alex_os Цитата(AlexOr @ Nov 20 2008, 16:44) Цикли... Nov 20 2008, 14:06  AlexOr Уже...
Все работает на ура.
C#
Кодusing System;
... Nov 20 2008, 15:28   niksfromru Цитата(AlexOr @ Nov 20 2008, 19:28) Уже..... Jun 16 2010, 09:03   Stanislav Цитата(petrov @ Nov 25 2008, 11:58) Слишк... Nov 26 2008, 22:40 vadkudr А Fractional Delay Filters не пробовали? Nov 24 2008, 14:47 Fat Robot http://www.acoustics.hut.fi/~vpv/publicati...icass... Nov 24 2008, 19:28 ivan219 AlexOr
А в исходниках на Delphi есть??? Nov 24 2008, 21:13 GetSmart Применение для сдвига прямого и обратного FFT веро... Nov 24 2008, 21:46 fontp Цитата(GetSmart @ Nov 25 2008, 00:46) При... Nov 26 2008, 08:12 GetSmart Цитата(fontp)Вот! Вы наверно открыли самый мед... Nov 26 2008, 09:00 fontp Цитата(GetSmart @ Nov 26 2008, 12:00) Кро... Nov 26 2008, 09:40  Stanislav Цитата(fontp @ Nov 26 2008, 12:40) ...Вот... Nov 27 2008, 01:24   fontp Отвечу в Вашем стиле. Векторным многокомпонентным ... Nov 27 2008, 11:39    Stanislav Цитата(fontp @ Nov 27 2008, 14:39) 1. Это... Nov 27 2008, 18:28     blackfin Цитата(Stanislav @ Nov 27 2008, 21:28) А ... Nov 27 2008, 19:15      Stanislav Цитата(blackfin @ Nov 27 2008, 22:15) Быс... Nov 27 2008, 19:59       blackfin Цитата(Stanislav @ Nov 27 2008, 22:59) Бу... Nov 28 2008, 02:51        Stanislav Цитата(blackfin @ Nov 28 2008, 05:51) Не ... Nov 28 2008, 07:06     fontp Цитата(Stanislav @ Nov 27 2008, 21:28) Гд... Nov 28 2008, 08:35      Stanislav Цитата(fontp @ Nov 28 2008, 11:35) O... Nov 28 2008, 08:41       fontp Цитата(Stanislav @ Nov 28 2008, 11:41) Та... Nov 28 2008, 08:44        Stanislav Цитата(fontp @ Nov 28 2008, 11:44) это кт... Nov 28 2008, 08:49         fontp Цитата(Stanislav @ Nov 28 2008, 11:49) Та... Nov 28 2008, 08:52          Stanislav Цитата(fontp @ Nov 28 2008, 11:52) Вы сам... Nov 28 2008, 08:56      Stanislav Цитата(fontp @ Nov 28 2008, 11:35) Расска... Nov 28 2008, 08:46       fontp Цитата(Stanislav @ Nov 28 2008, 11:46) Пр... Nov 28 2008, 08:48        blackfin Цитата(fontp @ Nov 28 2008, 11:48) Ладно.... Nov 28 2008, 11:17     fontp Цитата(Stanislav @ Nov 27 2008, 21:28) Гд... Nov 28 2008, 08:56     Fat Robot грозный Stanislav такой грозный. pic related.
Ц... Nov 28 2008, 11:12 GetSmart Цитата(fontp)Соответственно, если для эффективност... Nov 26 2008, 11:23 petrov Цитата(GetSmart @ Nov 26 2008, 14:23) Син... Nov 26 2008, 11:35 GetSmart Цитата(petrov)Обрезанный синк и есть ФНЧ только пл... Nov 26 2008, 11:56 petrov Цитата(GetSmart @ Nov 26 2008, 14:56) Sin... Nov 26 2008, 12:08 GetSmart Цитата(petrov)Вы понимаете что происходит со спект... Nov 26 2008, 13:09 petrov Цитата(GetSmart @ Nov 26 2008, 16:09) Не ... Nov 26 2008, 13:42 GetSmart petrov, Вы на вопрос не ответили. Вопросом на вопр... Nov 26 2008, 13:56 petrov Цитата(GetSmart @ Nov 26 2008, 16:56) pet... Nov 26 2008, 14:23 Leka А зачем синк обрезать? Свернуть с дираковской греб... Nov 26 2008, 19:50 Leka Имел в виду, что произведению прямоугольника на гр... Nov 26 2008, 23:15 GetSmart Цитата(Leka)А зачем синк обрезать? Свернуть с дира... Nov 27 2008, 03:28 Leka Цитата(Stanislav @ Nov 27 2008, 04:24) Бр... Nov 27 2008, 11:36 GetSmart Цитата(fontp)не говоря уже о том, что одно время т... Nov 27 2008, 11:55 fontp Цитата(GetSmart @ Nov 27 2008, 14:55) Нел... Nov 27 2008, 12:12 GetSmart Цитата(Leka)Дискретизация реального сигнала - уже ... Nov 27 2008, 15:16 GetSmart А я предлагаю заяву написать коллективную на Напол... Nov 28 2008, 02:37 anton Зря читал последние два листа (по теме было сказан... Nov 29 2008, 19:57 Stanislav Цитата(Fat Robot @ Nov 28 2008, 14:12) гр... Nov 29 2008, 22:45 fontp Сбой в Матрице. Дежавю.
4 месяца было:
Пост отред... Dec 1 2008, 08:34 Stanislav Цитата(fontp @ Dec 1 2008, 11:34) Сбой в ... Dec 1 2008, 16:28 ClockworkOrange 2 Stanislav Dec 19 2008, 12:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|