|
Демодуляция АМ сигнала |
|
|
|
Sep 1 2011, 07:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Есть сигнал, несущая около 1кгц, промодулированная (АМ) низкочастотным (0.1-10гц) сигналом. Сигнал приходит (с АЦП) в виде uint16 /10kHz SR. Нужно выделить модулирующий сигнал и сделать децимацию на 50гц. Сейчас я делаю просто: output=IIR_LPF_20Гц (abs(input)); Затем беру каждый 20-й отсчет. Все работает, но - так как индекс модуляции весьма мал (3-5%), то и сигнал на выходе я получаю весьма маленькой амплитуды (разрядности). Вместе с тем, когда я беру модуль входного сигнала, он содержит большую постоянную составляющую. Если перед тем как делать LPF вычесть константу из этого модуля, то наверное можно повысить разрядность выходного сигнала. Вопрос первый - так ли это (типа "а не дурк ли я?"  ), и второй - как лучше выделить эту константу (постоянную составляющую)? Амплитуда несущей может быть разной, это непредсказуемо. Выделять по простому, поставить еще один LPF, с частотой среза ниже нижней частоты полезного сигнала, и вычитать его выход их модуля входного сигнала, перед основым LPF и децимацией? P.S. Все происходит не на ДСП а на обычном МК (АРМ7).
|
|
|
|
|
Sep 1 2011, 11:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(fontp @ Sep 1 2011, 10:33)  Цифровой детекторный приемник? Ага  Цитата Попробуйте сделать супергетеродинный с переносом частоты. Если несущая фиксирована, перенос частоты для прямого преобразования можно сделать на биениях, просто сразу прорежая входной сигнал Несущая не фиксирована и не стабильна.
|
|
|
|
|
Sep 1 2011, 14:54
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Allregia @ Sep 1 2011, 11:38)  индекс модуляции весьма мал (3-5%), то и сигнал на выходе я получаю весьма маленькой амплитуды (разрядности). Повышение разрядности это только на идеальных АЦП. Легкая нелинейность и шум с ненормальным распределением все испортят. Мне пришлось все переделать и поставить 24 разрядный. Они шумят на несколько последних разрядов, но все-равно точнее.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 1 2011, 16:10
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(Allregia @ Sep 1 2011, 14:47)  Несущая не фиксирована и не стабильна. Все-таки, какая-то полоса есть? Если это так, то наверняка, полезен будет полосовой фильтр для отделения сигнала от помех. Таким образом, уйдет постоянная составляющая. А разрядность 'сама повысится' на выходе фильтра. Можно сразу решить задачу с помощью квадратурного приема огибающей. Для вычисления каждой точки огибающей нужно выполнить две свертки (сразу с нужным прореживанием, т.е. один раз в 20 мс). Делать свертку сигнала (перемноженного на окно эквивалентного фнч, выбранное в зависимости от болтанки несущей + полоса сигнала) с синусом и косинусом центральной частоты. Для получения точки огибающей нужно векторно сложить результаты сверток (сумма квадратов под корнем). Чем узкополоснее будет фильтр (длиннее ядро), тем выше разрядность выходного сигнала. Останется только отбросить младшие разряды. PS. Скорее всего, нужен будет еще один полосовой фильтр уже для огибающей
Сообщение отредактировал sup-sup - Sep 1 2011, 16:29
|
|
|
|
|
Sep 1 2011, 19:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(sup-sup @ Sep 1 2011, 18:10)  Все-таки, какая-то полоса есть? Если это так, то наверняка, полезен будет полосовой фильтр для отделения сигнала от помех. Полоса есть конечно, примерно 800-2500 гц. Полосовой фильтр есть - после АЦП стоит HPF 4 порядка на 600гц, без него там вообще все в НЧ гумах и наводках потонуло бы. Цитата Таким образом, уйдет постоянная составляющая. А разрядность 'сама повысится' на выходе фильтра. В исходном сигнале постоянной составляющей нет - там сигнал через несколко конденсаторов еще до АЦП проходит. Она появляется когда я модуль беру (abs) Цитата Можно сразу решить задачу с помощью квадратурного приема огибающей. Для вычисления каждой точки огибающей нужно выполнить две свертки (сразу с нужным прореживанием, т.е. один раз в 20 мс). Делать свертку сигнала (перемноженного на окно эквивалентного фнч, выбранное в зависимости от болтанки несущей + полоса сигнала) с синусом и косинусом центральной частоты. Для получения точки огибающей нужно векторно сложить результаты сверток (сумма квадратов под корнем). Чем узкополоснее будет фильтр (длиннее ядро), тем выше разрядность выходного сигнала. Останется только отбросить младшие разряды. PS. Скорее всего, нужен будет еще один полосовой фильтр уже для огибающей Врядли успею в реалтайме, но попробую.
|
|
|
|
|
Sep 2 2011, 04:13
|

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

|
Сначала вы говорите Цитата Есть сигнал, несущая около 1кгц, промодулированная (АМ) низкочастотным (0.1-10гц) сигналом. Сигнал приходит (с АЦП) в виде uint16 /10kHz SR. Нужно выделить модулирующий сигнал и сделать децимацию на 50гц. А потом Цитата(Allregia @ Sep 1 2011, 23:13)  Полоса есть конечно, примерно 800-2500 гц. Полосовой фильтр есть - после АЦП стоит HPF 4 порядка на 600гц, без него там вообще все в НЧ гумах и наводках потонуло бы. Я себе очень слабо представляю как модулируя АМ 10 -ти герцовым сигналом можно добиться полосы 2500 Гц да еще и на несущей 1 кГц. Цитата Врядли успею в реалтайме, но попробую. Да бросьте 10 кГц SampleRate можно даже в столбик на листочке успеть в реал тайме обработать. 7 arm схавает и даже не заметит.
Сообщение отредактировал bahurin - Sep 2 2011, 04:20
|
|
|
|
|
Sep 2 2011, 04:28
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(bahurin @ Sep 2 2011, 09:13)  Сначала вы говорите ... А потом ... Я себе очень слабо представляю как модулируя АМ 10 -ти герцовым сигналом можно добиться полосы 2500 Гц да еще и на несущей 1 кГц. А в промежутке было Цитата Несущая не фиксирована и не стабильна" ... примерно 800-2500 гц. Разве не очевидно? Цитата(bahurin @ Sep 2 2011, 09:13)  10 кГц SampleRate можно даже в столбик на листочке успеть в реал тайме обработать  Это смотря какой алгоритм, сколько у него будет мат.операций на 1 сэмпл.
Сообщение отредактировал GetSmart - Sep 2 2011, 04:28
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 2 2011, 04:52
|

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

|
Цитата(GetSmart @ Sep 2 2011, 08:28)  А в промежутке было Разве не очевидно?  Это смотря какой алгоритм, сколько у него будет мат.операций на 1 сэмпл. Не передергиваете сказано было что около 1 кГц. 2.5 кГц это уже нифига не около согласитесь. Это первое. Во вторых полоса 2500 Гц и нестабильность несущей в пределах 2500 Гц это совершенно 2 разные вещи. Если несущая частота меняется от 800 до 2500 Гц, то надо знать на каком временном интервале это может происходить. Потому что изменение несущей во времени приводит к паразитной частотной модуляции на выходе, которая в свою очередь сопровождается паразитной АМ, которая в свою очередь изничтожит полезную АМ с глубиной 3-5%. Постановка задачи совершенно не понятна. Поэтому я и спросил.
|
|
|
|
|
Sep 2 2011, 05:31
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(bahurin @ Sep 2 2011, 09:52)  Не передергиваете сказано было что около 1 кГц. 2.5 кГц это уже нифига не около согласитесь. Не соглашусь. Не все поголовно пофи, которые фильтруют каждое слово. Так что с учётом поправочки на неспециалиста всё становится понятно. Цитата(bahurin) Во вторых полоса 2500 Гц и нестабильность несущей в пределах 2500 Гц это совершенно 2 разные вещи. Если несущая частота меняется от 800 до 2500 Гц, то надо знать на каком временном интервале это может происходить. Вот и задайте прямой вопрос. Сэкономите время.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 2 2011, 07:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(bahurin @ Sep 2 2011, 06:52)  Не передергиваете сказано было что около 1 кГц. 2.5 кГц это уже нифига не около согласитесь. В среднем - 1кгц. Цитата Это первое. Во вторых полоса 2500 Гц и нестабильность несущей в пределах 2500 Гц это совершенно 2 разные вещи. Если несущая частота меняется от 800 до 2500 Гц, то надо знать на каком временном интервале это может происходить. На любом, несущая - псевдошумоподобный сигнал. На 3гц она обрезана сверху антиалиасным фильтром на входе АЦП. АЦП - 16 бит. Цитата Потому что изменение несущей во времени приводит к паразитной частотной модуляции на выходе, которая в свою очередь сопровождается паразитной АМ, которая в свою очередь изничтожит полезную АМ с глубиной 3-5%. Постановка задачи совершенно не понятна. Поэтому я и спросил. Нет там никакой ПАМ, это не радиоприемник с контуром на входе. Во всяком случае - я ее не вижу. Цитата Да бросьте 10 кГц SampleRate можно даже в столбик на листочке успеть в реал тайме обработать. 7 arm схавает и даже не заметит. Их таких 8 каналов, имеющийся алголритм успевает, но загрузка 72мгц проца уже под 80%. т.к.. один из фильтров (LPF) приходится делать во float.
|
|
|
|
|
Sep 2 2011, 07:08
|

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

|
QUOTE (Allregia @ Sep 2 2011, 11:03)  Их таких 8 каналов, имеющийся алголритм успевает, но загрузка 72мгц проца уже под 80%. т.к.. один из фильтров (LPF) приходится делать во float. В любом случае оптимальное решение - синхронный детектор с ФАПЧ. Вычислительная сложность его совсем не велика - табличный ГУН, умножитель, пропорционально-интегрирующий фильтр и IIR-ФНЧ на выходе Другое дело, что ФАПЧ нужно проектировать - так есть литература. Детекторный приемник - решение далеко не оптимальное. Да и у Вас возможности улучшений почти отсутствуют . Что остается - сделать полосовой фильтр на входе до взятия абсолюта, убирать постоянную составляющую на выходе узкополосным режектором, пожалуй что всё...
|
|
|
|
|
Sep 2 2011, 07:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(fontp @ Sep 2 2011, 09:08)  В любом случае оптимальное решение - синхронный детектор с ФАПЧ. Я не знаю как себя поведет PLL на шумоподобном сигнале. Цитата Детекторный приемник - решение далеко не оптимальное. Да и у Вас возможности улучшений почти отсутствуют . Что остается - сделать полосовой фильтр на входе до взятия абсолюта, убирать постоянную составляющую на выходе узкополосным режектором, пожалуй что всё... Полосовой фильтр перед взятием модуля и так стоит, а вот про узкополсный фильтр - можно поподробнее ? На какие частоты его сделать?
|
|
|
|
|
Sep 2 2011, 07:57
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Все-таки, в общем случае, если нужно просто отловить энергию сигнала в полосе 600-3000 Гц, то схема с детектором огибающей способом свертки сигнала с двумя полосовыми FIR, с синусным и косинусным заполнением, решает задачу сразу. Никаких других фильтров не нужно. Нужно просчитывать две свертки один раз в 20 мс. Если 8 каналов, то одно вычисление в 1.25 мс. Еще вариант, умножить сигнал на частоту 2.5 кГц (умножать на 0, +1, 0, -1, 0, +1, и т.д.), отфильтровав перед этим верхние частоты. Перейти на частоту 5 кГц и сделать ФНЧ на ~2 кГц, чтобы отсечь бывшие 600 Гц низких частот. После этой промежуточной фильтрации - децимации - фильтрации будет меньше нагрузка на 8 каналов обработки.
Сообщение отредактировал sup-sup - Sep 2 2011, 08:02
|
|
|
|
|
Sep 2 2011, 08:13
|

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

|
QUOTE (Allregia @ Sep 2 2011, 11:42)  Я не знаю как себя поведет PLL на шумоподобном сигнале.
Полосовой фильтр перед взятием модуля и так стоит, а вот про узкополсный фильтр - можно поподробнее ? На какие частоты его сделать? PLL на шумоподобном сигнале ведёт себя по теории, т.е. хорошо и полностью предсказуемо. )) Пропорционально-интегрирующий фильтр специально рассчитывают, чтобы достичь нужного компромисса между подавлением шума и полосой захвата. Впрочем ФАПЧ нужен только если несущая нестабильна. Узкополосный фильтр на выходе Вы всегда можете приделать, только он будет удалять не только паразитную постоянную составляющую, но и постоянную компоненту сигнала в той же полосе. Они неотличимы уже. Для звука это безразлично (до 20 гц всегда можно прибить), а у как оно у Вас решайте сами на какие частоты. IIR небольшого порядка на все ненужные. Если все частоты нужные - тогда никак, тогда Вы с детекторного приемника выжали всё. Другое дело приемник с прямым преобразованием
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|