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

 
 
> Сдвиг сигнала на небольшое время (меньше интервала дискретизации).
AlexOr
сообщение Nov 20 2008, 12:44
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Как осуществить сдвиг сигнала во временной области на небольшое время с наименьшими потерями по точности? Речь о временном ряде ограниченном по длине таким образом, что количество отсчетов кратно 2 в целой степени.

Время дискретизации - Td;
Требуемый сдвиг - Tsh;
Число отсчетов - N;

Есть идея для сдвига на произвольное время Tsh:
1. сделать дискретное преобразование Фурье
2. перевести полученные комплексные коэффициенты в показательную форму
3. изменить показатель(фазу) каждого коэффициента на соответствующий угол.
4. сделать обратное дискретное преобразование Фурье

Показатель(фазу) менять на величину k * 2 * PI * Tsh/ (Td * N), где k – номер коэффициента ДПФ. Таким образом показатель нулевого коэффициента не меняется, а первый и остальные меняются. Собственно тут производится сдвиг на одинаковое время всех спектральных составляющих сигнала.

Насколько правильна или неправильна такая идея?
Может быть есть другие варианты?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fontp
сообщение Nov 20 2008, 13:33
Сообщение #2


Эксперт
*****

Группа: Свой
Сообщений: 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. Если нужно двигать на произвольную дельту используют сплайн интерполяцию чаще кубическую.
В-сплайны
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 24 2008, 22:29
Сообщение #3


Гуру
******

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



Цитата(fontp @ Nov 20 2008, 16:33) *
Оно может и правильно, только сдвиг наверно получется циклическим ))
И что из того?
Читайте условие внимательнее. Речь идёт о небольших сдвигах.
По моему скромному недомыслию, в пределах +/- 0,5 временнОй дискреты. smile.gif Больше не имеет смысла.
Впрочем, произвольная величина сдвига принципиального значения также не имеет.

Цитата(fontp @ Nov 20 2008, 16:33) *
1. Если нужно сдвигать на фиксированую дельту лучшие результаты получаются если применить полиморфную фильтрацию. Вставляют нули между реальными отсчетами и фильтруют хорошим НЧ фильтром - получается интерполяция на более мелкую сетку. Потом обратно прорежают под другой фазой (или даже частотой)
Если точность большая не нужна, это в некоторых случаях может оказаться и быстрее FFT, но если нужна - увы...

Цитата(fontp @ Nov 20 2008, 16:33) *
...2. Если нужно двигать на произвольную дельту используют сплайн интерполяцию чаще кубическую.
В-сплайны
Не понимаю всё же кардинальных преимуществ. sad.gif
Экстраполяцию или интерполяцию краевых участков после FFT-IFFT можно сделать аналогичным образом. Но это займёт гораздо меньше времени, чем полная сплайн-интерполяция, равно как и полиморфная фильтрация всего куска, если нужна мало-мальски приличная точность.
Могу продемонстрировать, как примерно надо делать подобные вещи. wink.gif

Цитата(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 для оптимизации быстродействия можно посчитать один раз для нужного сдвига и занести в таблицу.
Америка открыта. biggrin.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 25 2008, 08:58
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Stanislav @ Nov 25 2008, 01:29) *
Сдвиг через БПФ-ОБПФ - это самый быстрый и точный вариант алгоритма сдвига на произвольное время из всех возможных, скажем, для комплексных и полосовых сигналов.
В том числе, и способов, предложенных ув. fontp.


Слишком категорично, а если нужно каждый отсчёт на произвольное время сдвигать, в модемах как раз и используется обычно полифазная фильтрация совместно с интерполятором лагранжа.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 25 2008, 09:12
Сообщение #5


Гуру
******

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



Цитата(petrov @ Nov 25 2008, 11:58) *
Слишком категорично, а если нужно каждый отсчёт на произвольное время сдвигать, в модемах как раз и используется обычно полифазная фильтрация совместно с интерполятором лагранжа.
Ну, в условии же написано:
Цитата(AlexOr @ Nov 20 2008, 15:44) *
Как осуществить сдвиг сигнала во временной области на небольшое время с наименьшими потерями по точности?..

А как можно сдвинуть сигнал на произвольное время с наименьшими потерями по точности, я и не знаю, честно говоря...

Надо определиться, что вообще подразумевать под произвольным временнЫм сдвигом... Добавление/пропуск выборок допустимы, или сигнал всё же должен оставаться непрерывным?


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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