|
|
  |
вопрос про интерполяцию |
|
|
|
Nov 5 2010, 16:45
|

тут может быть ваша реклама
    
Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280

|
Здравствуйте. Возник вопрос, который быть может, надуман, но хочется разобраться. Есть сигнал - результат НЧ фильтрации исходного сигнала с целью определить его постоянную составляющую. То есть полоса сигнала в общем то составляет доли Герца, но среднее значение (или нулевая гармоника) может варьироваться в довольно большом диапазоне. Частоту дискретизации этого сигнала нужно поднять в 25 раз, для чего требуется провести интерполяцию. В книжках прочитал, что делается это с помощью добавления нужного числа нулей между исходными отсчетами и пропусканием через ФНЧ для удаления размноженных гармоник. В принципе все работает, но появляются артефакты. Дело в том, что во всех книжках, где рассказывается про интерполяцию, нарисован сигнал с околонулевой постоянной составляющей, ну либо нулевая гармоника много меньше других гармоник в сигнале. И тут все прекрасно, добавляются нули, затем они сглаживаются ФНЧ. Но в случае когда, нулевая гармоника является преобладающей добавление в сигнал отсчетов, сильно отличающихся от текущего значения сигнала (а именно нулевые отсчеты) каждый раз вызывают всплеск на выходе фильтра, пропорциональный разнице между нулем и реальным значением сигнала и зависящим от ИХ фильтра. Этот всплеск у меня много больше шума исходного сигнала, являющейся собственно постоянным током и недопустим. Что делают гуру в таких ситуациях? У самого есть идея следующая. Не добавлять нулевых отсчетов и не ставить ФНЧ, а вписывать какой-нибудь полином, тот же сплайн, в реальные отсчеты сигнала, а затем, найдя коэффициенты сплайна, рассчитывать 24 значения между исходными выборками. Минус такого решения, что это не риал тайм, нужно дождаться следующего отсчета прежде чем получить 24 точки до него, но мне не страшно это. Справедливо ли решение или есть какие-то более мудрые действия? Спасибо.
|
|
|
|
|
Nov 5 2010, 17:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
А если не нулями 24 отсчета забивать, а собственно самим отсчетом? А потом также через ФНЧ. Т.е. не 14,0,0,0,0....18,0,0...20,0,0 а так: 14,14,14,14.......18,18,18.....20,20,20
|
|
|
|
|
Nov 5 2010, 17:16
|

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

|
Цитата(jorikdima @ Nov 5 2010, 19:45)  Этот всплеск у меня много больше шума исходного сигнала, являющейся собственно постоянным током и недопустим. Что делают гуру в таких ситуациях? Тут кто во что горазд. Попробуйте, например, отобразить сигнал зеркально относительно нулевого отсчёта времени. Или инициализировать память фильтра матожиданием сигнала. Про гуру Вы загнули, даже отвечать стрёмно... Цитата(jorikdima @ Nov 5 2010, 19:45)  ...Справедливо ли решение или есть какие-то более мудрые действия? Линейная фильтрация - лишь частный приближённый способ интерполяции сигнала, основанный на предположении об ограниченности его спектра. А так, конечно, можно и короткие сплайны применить. Только при этом возникнут нелинейные искажения исходного сигнала. Длинные же сплайны могут дать меньшие искажения, но всё равно будут осциллировать на краях. ЗЫ. Это на пальцах, простите... ЗЗЫ. О том, что у любого ФНЧ существует задержка, не забыли? Кроме того, Вы не привели тип использованного фильтра-интерполятора. Я понял так, что это БИХ или минимально-фазовый, но необходимо уточнить.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 5 2010, 17:27
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Stanislav @ Nov 5 2010, 11:23)  Под зеркалами, хотя это и не правильно, я понимаю то что автор назвал "ФНЧ для удаления размноженных гармоник". Ошибки интерполяции приведут к тому, что они хотя и будут подавлены 30-50дБ, но все равно будут (модель в симулинке, которая демонстрирует этот эффект собирается на раз-два-три) Цитата При чём здесь нулевая ПЧ, не просветите? У автора проблема с обработкой сигнала на околонулевой ПЧ, то пусть рассмотрит вариант ухода на нормальную, пусть и низкую ПЧ. В ноль снесет уже в цифре, после интерполяции и демодуляции.
--------------------
|
|
|
|
|
Nov 5 2010, 17:32
|

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

|
Цитата(des00 @ Nov 5 2010, 20:27)  Под зеркалами, хотя это и не правильно, я понимаю то что автор назвал "ФНЧ для удаления размноженных гармоник". Ошибки интерполяции приведут к тому, что они хотя и будут подавлены 30-50дБ, но все равно будут Это неверно. Полиномиальная интерполяция способна подавить то, что Вы называете "зеркалами", на любую заданную величину. PS. Речь идёт о сплайн-интерполяции, конечно. Как того и хочет Автор темы. Цитата(des00 @ Nov 5 2010, 20:27)  У автора проблема с обработкой сигнала на околонулевой ПЧ, то пусть рассмотрит вариант ухода на нормальную, пусть и низкую ПЧ. Это он Вам сообщил, или сами догадались?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 5 2010, 17:37
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Stanislav @ Nov 5 2010, 11:32)  Это неверно. Полиномиальная интерполяция способна подавить то, что Вы называете "зеркалами", на любую заданную величину. модель в Simulink е в студию, спектр со скруглением RRC = 0.15, интерполяция ну положим на 16ть. Модель должна демонстрировать выходной спектр сигнала. Интерполятор возьмите любой. Нет модели, нет разговора. Цитата Это он Вам сообщил, или сами догадались? Вам хочется пофлудить, после длительного молчания, или вы сознательно не прочитали слова автора топика "Есть сигнал - результат НЧ фильтрации исходного сигнала с целью определить его постоянную составляющую. То есть полоса сигнала в общем то составляет доли Герца, но среднее значение (или нулевая гармоника) может варьироваться в довольно большом диапазоне."
--------------------
|
|
|
|
|
Nov 5 2010, 17:51
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата jorikdima: Что делают гуру в таких ситуациях Перемежают нулями и выполняют фильтрацию. Наличие артефактов означает неправильно посчитанный фильтр-интерполятор.
|
|
|
|
|
Nov 5 2010, 17:58
|

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

|
Цитата(des00 @ Nov 5 2010, 20:37)  модель в Simulink е в студию, спектр со скруглением RRC = 0.15, интерполяция ну положим на 16ть. Модель должна демонстрировать выходной спектр сигнала. Интерполятор возьмите любой. Нет модели, нет разговора. Вы про какие-то модели в Симулинке разговор начали - Вам и предъявлять. А я поправлю, если что. Поскольку Симулинком не пользовался сроду. Цитата(des00 @ Nov 5 2010, 20:37)  Вам хочется пофлудить, после длительного молчания, Что за чушь? Держите себя в рамках, уважаемый. Или за время моего отсутствия модераторы электроникса окончательно мутировали в попсу? Что ни тема - то россыпь перлов. И модераторы в "застрельщиках". Цитата(des00 @ Nov 5 2010, 20:37)  ...или вы сознательно не прочитали слова автора топика "Есть сигнал - результат НЧ фильтрации исходного сигнала с целью определить его постоянную составляющую. То есть полоса сигнала в общем то составляет доли Герца, но среднее значение (или нулевая гармоника) может варьироваться в довольно большом диапазоне." Итак, Вы утверждаете, что, совершив НЧ фильтрацию исходного ПЧ-сигнала, Автор темы получил полосу в доли герца, я правильно Вас понял? Цитата(thermit @ Nov 5 2010, 20:51)  Перемежают нулями и выполняют фильтрацию. Наличие артефактов означает неправильно посчитанный фильтр-интерполятор. Не то, чтобы неправильно, скорей всего... Тут условия не совсем понятны. Видимо, нужно получать результат сразу же по приходу первых отсчётов. А такое действо предполагает некую искусственную процедуру инициализации памяти фильтра - интерполятора.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 5 2010, 18:00
|
Гуру
     
Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290

|
Цитата(alexPec @ Nov 5 2010, 22:08)  А если не нулями 24 отсчета забивать, а собственно самим отсчетом? А потом также через ФНЧ. Т.е. не 14,0,0,0,0....18,0,0...20,0,0 а так: 14,14,14,14.......18,18,18.....20,20,20 В таком случае может понадобится доп. коррекция АЧХ. Обратная sin(x)/x Цитата(Stanislav @ Nov 5 2010, 22:36)  Понеслась нелёгкая, похоже... 
--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
|
|
|
|
|
Nov 5 2010, 18:49
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(jorikdima @ Nov 5 2010, 19:45)  Здравствуйте. Возник вопрос, который быть может, надуман, но хочется разобраться. Есть сигнал - результат НЧ фильтрации исходного сигнала с целью определить его постоянную составляющую. То есть полоса сигнала в общем то составляет доли Герца, но среднее значение (или нулевая гармоника) может варьироваться в довольно большом диапазоне. Частоту дискретизации этого сигнала нужно поднять в 25 раз, для чего требуется провести интерполяцию. В книжках прочитал, что делается это с помощью добавления нужного числа нулей между исходными отсчетами и пропусканием через ФНЧ для удаления размноженных гармоник. В принципе все работает, но появляются артефакты. Дело в том, что во всех книжках, где рассказывается про интерполяцию, нарисован сигнал с околонулевой постоянной составляющей, ну либо нулевая гармоника много меньше других гармоник в сигнале. И тут все прекрасно, добавляются нули, затем они сглаживаются ФНЧ. Но в случае когда, нулевая гармоника является преобладающей добавление в сигнал отсчетов, сильно отличающихся от текущего значения сигнала (а именно нулевые отсчеты) каждый раз вызывают всплеск на выходе фильтра, пропорциональный разнице между нулем и реальным значением сигнала и зависящим от ИХ фильтра. Этот всплеск у меня много больше шума исходного сигнала, являющейся собственно постоянным током и недопустим. Что делают гуру в таких ситуациях? У самого есть идея следующая. Не добавлять нулевых отсчетов и не ставить ФНЧ, а вписывать какой-нибудь полином, тот же сплайн, в реальные отсчеты сигнала, а затем, найдя коэффициенты сплайна, рассчитывать 24 значения между исходными выборками. Минус такого решения, что это не риал тайм, нужно дождаться следующего отсчета прежде чем получить 24 точки до него, но мне не страшно это. Справедливо ли решение или есть какие-то более мудрые действия? Спасибо. Только добавлять нули и фильтровать, как изначально правильно решил автор. Правильно подобранный фильтр все и решит. Полоса сигнала не может быть больше, чем Fs/2, то есть полоса фильтра должна быть ниже, но как можно ближе к Fs/2 (к исходной частоте дискретизации. А значит, фильтр (обязательно КИХ) должен быть крутой. Можно сделать интерполяцию в два захода (в пять и еще раз в пять раз). В этом случае фильтры будут в сумме короче. Для сравнения нужно профильтровать исходный сигнал на исходной частоте фильтром с такой же характеристикой и сравнивать уже этот сигнал с полученным после интерполяции. Совпадение должно быть хорошим.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|