|
Вопрос про децимацию |
|
|
|
Sep 13 2010, 23:23
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(:-) @ Sep 14 2010, 01:37)  Возникла вот какая задача. Требуется перейти от частоты дискретизации 4 МГц к частоте дискретизации 2.048МГц. Сейчас для выполнения децимации просто выкидываю лишние данные (беру только i*2048/4000 1<i<=4000). Но возник вопрос насколько это коректно? Я вот точно так же однажды делала, а мне тоже сказали "некорректно". Ну и что, что некорректно? Зато просто и разницу между корректным и некорректным результатом фиг отличишь, тем паче, что в измерениях всегда присутствует шум, который обычно превышает потери точности от "некооректности". Ну а коли про корректный вариант говорить, то он примерно такой. Натягиваем поверх исходного частокола ломаную линию, превращая каждую соседнюю пару отсчетов в лежащую на боку трапецию. А потом находим величину отсчета на новой дискретной сетке, как интеграл. Т.е. площадь под ломаной огибающей исходного сигнала, заключенную между (i-0.5)*2048/4000 и (i+0.5)*2048/4000. Ну и видимо на какой-то коэффициент надо все те интегралы помножить, чтобы при горизонтальной линии высота совпадала. Видимо этот множитель будет той же дробью 2048/4000. И это все это только в том случае, если исходный частокол дает АЦП "мгновенного измерения". Поэтому и используем в качестве модели линейную интерполяцию между соседними значениями, полагая, что в промежутках между измерениями сигнал изменяется линейно. Но а если это, скажем, сигма-дельта АЦП, работающий в режиме непрерывного преобразования, то тогда ваши измерения уже являются значением интеграла за период измерения. И тогда уже правильнее будет не модель с огибающей, а модель из прямоугольничков (похожая на гистограмму), когда каждый i-ый отсчет представляется прямоугольником высотой в значение сигнала, и шириной от i-0.5 до i+0.5. Впрочем, старшие товарищи меня вероятно поправят  , найдя какие-нибудь ошибки в сказанном. Только дело это гиблое так считать  .
|
|
|
|
|
Sep 14 2010, 05:03
|
Местный
  
Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006

|
Полоса сигнала 2.046 МГц + доплер до 10 кГц. В общем это сигнал GPS. Играюсь вот с этой программой: http://www.gps-sdr.com/ . Одна из моих подзадач - это преобразование формата данных: вход программы - квадратуры, частота дискретизации 2.048 МГц. А у меня на макете частота дискретизации 16 МГц и без квадратур. Переход от 16 до 4 МГц - тривиальная задача. Просто беру каждый 4ый отсчет. А вот переход от 4 к 2.048 МГц казанным выше путём кажется "некорректным".
|
|
|
|
|
Sep 14 2010, 05:47
|

Местный
  
Группа: Участник
Сообщений: 240
Регистрация: 20-09-08
Пользователь №: 40 347

|
Цитата(:-) @ Sep 14 2010, 09:03)  Переход от 16 до 4 МГц - тривиальная задача. Просто беру каждый 4ый отсчет. А вот переход от 4 к 2.048 МГц казанным выше путём кажется "некорректным". 1. просто выкидывать отсчеты нельзя надо предварительно ставить фильтр, иначе будет алиасинг. 2. если у вас сигнал GPS то можно делать как вы делаете (разумеется предварительно поставив ФНЧ с частотой среза 2 МГц см. п. 1) . В вашем случае появится дополнительный фазовый шум но он не окажет существенного влияния ибо все равно у вас будет стоять следящий контур, который этот фазовый шум скомпенсирует.
|
|
|
|
|
Sep 14 2010, 07:08
|
Местный
  
Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006

|
Цитата(bahurin @ Sep 14 2010, 09:47)  1. просто выкидывать отсчеты нельзя надо предварительно ставить фильтр, иначе будет алиасинг. 2. если у вас сигнал GPS то можно делать как вы делаете (разумеется предварительно поставив ФНЧ с частотой среза 2 МГц см. п. 1) . В вашем случае появится дополнительный фазовый шум но он не окажет существенного влияния ибо все равно у вас будет стоять следящий контур, который этот фазовый шум скомпенсирует. Хочу уточнить вот какой вопрос: стоит ли бояться алиасинга в данном случае? Логика рассуждений следующая: изначально имею оцифрованный сигнал с полосой 8 МГц (частота дискретизации - 16 МГц). В этой полосе "полезными" являются только 2,046МГц. В остальной части нет никаких мешающих сигналов. Тогда после выкидывания "лишних" отсчетов в полосу полезного сигнала ничего не попадает (только тепловой шум).
|
|
|
|
|
Sep 14 2010, 09:16
|

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

|
QUOTE (:-) @ Sep 14 2010, 11:08)  Тогда после выкидывания "лишних" отсчетов в полосу полезного сигнала ничего не попадает (только тепловой шум). QUOTE (:-) @ Sep 14 2010, 09:03)  Переход от 16 до 4 МГц - тривиальная задача. Просто беру каждый 4ый отсчет. А вот переход от 4 к 2.048 МГц казанным выше путём кажется "некорректным". Казанным выше путём Вы заработаете небольшой фазовый шум в результате джиттера. Небольшой, поскольку 256/255 это почти 1 Кроме того выкидывание 3 лишних отсчетов усилит в 4 раза тепловой шум сначала и ещё в 2 раза потом. Если это всё некритично (есть запас по SNR), делайте "казанным путём".Если делать оптимально, то как говорилось уже нужно 1. Сначала отфильтровать прямоугольным ФНЧ нижнюю четверть частотного диапазона 2. Провести интерполяцию с помощью линейного интерполятора или интерполятора Лагранжа (в реализации интерполятора Фарроу).
|
|
|
|
|
Sep 14 2010, 10:17
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859

|
Если упростить соотношение частот 4000 и 2048, то получается 125/64.
Возможны два варианта: 1. Через ДПФ. Красиво но сложно. Делаем 125-точечный ДПФ, берем первые 64 точки и делаем обратный 64-точечный БПФ. ДПФ операция блочная, поэтому надо будет правильно организовать потоки, чтобы на выходе был сигнал без разрыва по фазе. Недостатки: нестандартный ДПФ на 125 точек плюс большие вносимые шумы квантования из-за ДОФ->ОБПФ.
2. Через интерполирующий КИХ фильтр. Полифазный интерполирующий на 64 КИХ фильтр с последующей децимацией на 125. Фильтр оптимальный по Чебышеву, число отсчетов имп. характеристики должно быть кратно 64. Получается, что с каждым поступающим отсчетом надо выполнять 64 свертки с полифазами фильтра, но с учетом того, что после фильтра идет децимация на 125, нужно вычислять только каждую 125-ю полифазу, а остальные пропускать. Просто и надежно. Линейный алгоритм без разветвлений - отсчет на входе, отсчет на выходе. Фаза сигнала выходе будет линейная, без скачков, демодуляция пойдет без проблем. Вычислительная сложность небольшая. Округление выполняется один раз на выходе - шумов соберете значительно меньше, чем в с БПФ. С Лагранжами и сплайнами не связывайтесь, это алгоритмы не для сигнальной обработки.
|
|
|
|
|
Sep 14 2010, 11:53
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859

|
))) уточню: Не для обработки радиосигналов. Радиоприемное устройство, в том числе и внутренние алгоритмы цифровой обработки должны вносить минимум искажений в принимаемый сигнал. Этому критерию удовлетворяют не все алгоритмы. Если сомневаетесь, проделайте простой эксперимент: Сгенерируйте в матлабе отрезок синусоиды. Посмотрите спектр с хорошим разрешением - сигнал будет качественный. Теперь пробуйте интерполяцию разными алгоритмами, и смотрите на спектр выходного сигнала. Увидите много чего интересного. Простой и корректный критерий выбора. Впрочем, если на качество сигнала не волнует - вопросов нет
|
|
|
|
|
Sep 14 2010, 12:18
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(soldat_shveyk @ Sep 14 2010, 15:53)  Не для обработки радиосигналов. Как раз широко используются интерполяторы Лагранжа в модемах. Цитата(soldat_shveyk @ Sep 14 2010, 15:53)  Радиоприемное устройство, в том числе и внутренние алгоритмы цифровой обработки должны вносить минимум искажений в принимаемый сигнал. Этому критерию удовлетворяют не все алгоритмы. Если сомневаетесь, проделайте простой эксперимент: Сгенерируйте в матлабе отрезок синусоиды. Посмотрите спектр с хорошим разрешением - сигнал будет качественный. Теперь пробуйте интерполяцию разными алгоритмами, и смотрите на спектр выходного сигнала. Увидите много чего интересного. Простой и корректный критерий выбора. Впрочем, если на качество сигнала не волнует - вопросов нет  Всегда можно обеспечить необходимое качество.
|
|
|
|
|
Sep 14 2010, 12:30
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата petrov: Как раз широко используются интерполяторы Лагранжа в модемах. Дык, широко. Если частота дискретизации достаточно высока для обеспечения приемлемой ошибки интерполяции. А если нет - один фиг без полифазного фильтра не обойтись... Цитата Всегда можно обеспечить необходимое качество. Угу. Вопрос только в цене.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|