Вот у нас есть сигнал. узкополосный, 60МГц+-600гц, длина сигнала около 1-10с (сигнал нарастает и спадает, примерно кусочком синусоиды), сигнал состоит из кучи узких (чуть ли не 1гц) линий с разной интенсивностью
( Read more... )
Я не специалист в вопросе, но опыт подсказывает, что анализ таких вводных требует серьёзного владения математикой, а у вас сплошные "эдак", в том числе и в части постановки задачи. Вопрос, который вы задаёте на форуме, тянет на полноценное предпроектное исследование. Под такие проекты обычно планируют финансирование, нанимают узких специалистов и т.п.; в итоге, когда и если всё это отливается в готовое изделие, выходящее на рынок, "цена электроники" в нём теряется на фоне цены решения всех остальных необходимых задач.
> поскольку у нас вся полоса сигнала 1200Гц, я подозреваю, что его спектр можно как-то не очень сложно > численно сдвинуть до, например, 600-1800гц или 10000-10120гц без потери инфы из той части исходных А зачем так сложно? Выберите частоту дисретизации не 80MHz, а 80001KHz, и будет вам на сабсамплинге именно это.
> сигналов, которые заметно слабее основного, передискретизировать до, например, 40кГц или даже > 4кГц 32бит и только потом на весь секундный блок разом натянуть FFT. И опять же -- нафига? Обработайте секунду полученного сэмпла, результат тот же, имхо. Ну понятно, памяти больше надо -- но даже если делать тупо, и класть ваши 12 бит в два байта, секунда даст грубо 160 мегабайт, FFT вполне прожует. Или вы это хотите непосредственно в микроконтроллере сделать?
С шумом все достаточно просто. Вы вносите шум квантования и шум дискретизации. Шум дискретизации в данном случае некритичен (точнее, он для вас и есть полезный сигнал строго говоря), шум квантования -- это всяко LSB плюс все шумы/нелинейности АЦП
Перенос полосы шума не вносит, вы собственон по-любому им занимаетесь, лучше (имхо) сразу перенести куда удобно. Ресемплирование по идее (если заведомо нет более высоких гармоник) ситуацию с шумом даже где-то как-то будет улучшать, это ж фактически усреднение в данном случае. Как пример (из другой оперы, но суть, в общем-то, та же) -- вместо единичного измерения попробовал делать 10 и усреднять (а на самом деле просто суммировать, они изначально 8-бит, потому не жалко, а величины все равно относительные) -- так если смотреть график, он реально стал совсем гладким (до того дрожал на 2LSB постоянно) -- а это собственно ресемплирование и есть, в грубой форме.
> Обработайте секунду полученного сэмпла, результат тот же, имхо
Если нам нужно получить из сигнала 20MSPS спектр с разрешением 1Гц, то это 20 миллионов сэмплов, однако. А потом выкинуть все 20M отсчетов спектра, оставив только интересующую полоску в 1кГц. А если 0.1Гц? А если сигнал исчезнет, пока мы будем накапливать наши 200М отсчетов?
Квадратурный детектор с последующей передискретизацией в разы эффективнее.
А зачем АЦП 80 мегасэмплов? Достаточно простого приемника. Либо прямого преобразования, либо супергетеродинного. Как бонус - можно будет использовать 24-х битный ADC от стандартного аудио, и получать на порядок более качественную картину...
Ну я так понял, он по сути и хочет смоделировать гетеродин в цифре. Преобразование на ПЧ1 (20Mhz) у него получается автоматически на входе АЦП, преобразование на ПЧ2 он хочет делать математикой. Почему именно так - не знаю, вероятно не нашел перестраиваемых фильтров на вход (смутно вспоминаю предыдущую тему) и хочет фильтровать цифровым фильтром на ПЧ1. Или просто схему из гнурадио содрал :-)
Я не уверен что от 24 бита будет какой-то толк, там и на 12 все утонет в шумах. Та же гнурадива, ЕМНИП, использует 14-битные АЦП.
я хочу потыкать палочкой разные варианты и сравнить/оценить их не паяя/покупая сразу все.
и да, я уже понял что при 60МГц сигнале лучше сразу на этак 60.01 МГц семплировать-фильтровать-ресемплировать, а потом в результирующих примерно 0-10 кГц ловить нужные мне этак килогерц.
Не лучше. У тебя там разные ядрышки будут все звенеть по-разному, если я правильно помню теорию. То есть тебе нужно захватить достаточно широкую полосу рядом с сигналом возбуждения, а потом там искать узкие полоски звона, причем где конкретно они будут находиться - вопрос, там плюс-минус миллитесла и все уехало уже.
Во-вторых, что-то мне подсказывает, что сэмплирующая система, способная разом обработать и 60МГц и 60.01Мгц - дело нетривиальное, и проблемы с точностью-разрешением там вылезут в полный рост.
Прогнав в цифре через квадратурный детектор (т.е. умножив на синус и на косинус 20 МГц и аккуратно передискретизировав результат на низкую частоту) ничего не потеряете.
А вот не потеряете ли раньше - вопрос к знающим людям. Меня смущает, к примеру, ловля линии шириной 1 Гц на 1-10 секундах.
меня тоже, но может это такое косноязычное изложение. т.е. может реально сигнал на одной частоте, длительностью 1-10 секунд, но модулированный и интересная информация получается из линий, которые необходимо детектировать с точностью 1гц.
Comments 100
Вопрос, который вы задаёте на форуме, тянет на полноценное предпроектное исследование. Под такие проекты обычно планируют финансирование, нанимают узких специалистов и т.п.; в итоге, когда и если всё это отливается в готовое изделие, выходящее на рынок, "цена электроники" в нём теряется на фоне цены решения всех остальных необходимых задач.
Reply
Reply
Судя по описанию, первач забористый. Будет. Самогонный аппарат с МРТ!
Reply
> численно сдвинуть до, например, 600-1800гц или 10000-10120гц без потери инфы из той части исходных
А зачем так сложно? Выберите частоту дисретизации не 80MHz, а 80001KHz, и будет вам на сабсамплинге именно это.
> сигналов, которые заметно слабее основного, передискретизировать до, например, 40кГц или даже
> 4кГц 32бит и только потом на весь секундный блок разом натянуть FFT.
И опять же -- нафига? Обработайте секунду полученного сэмпла, результат тот же, имхо. Ну понятно, памяти больше надо -- но даже если делать тупо, и класть ваши 12 бит в два байта, секунда даст грубо 160 мегабайт, FFT вполне прожует. Или вы это хотите непосредственно в микроконтроллере сделать?
С шумом все достаточно просто. Вы вносите шум квантования и шум дискретизации. Шум дискретизации в данном случае некритичен (точнее, он для вас и есть полезный сигнал строго говоря), шум квантования -- это всяко LSB плюс все шумы/нелинейности АЦП
Reply
вы хотели сказать 60001КГц, да?
FFT грубо на 120М семплов? а смысл? будет ли это лучше (и насколько) чем если отфильтровать и передискретизировать сигнал?
>Вы вносите шум квантования и шум дискретизации.
"ресемплирование" или "перенос полосы" - не вносят доп.шумов в нужную нам полосу?
Reply
Это будет (мне кажется) проще.
Перенос полосы шума не вносит, вы собственон по-любому им занимаетесь, лучше (имхо) сразу перенести куда удобно.
Ресемплирование по идее (если заведомо нет более высоких гармоник) ситуацию с шумом даже где-то как-то будет улучшать, это ж фактически усреднение в данном случае.
Как пример (из другой оперы, но суть, в общем-то, та же) -- вместо единичного измерения попробовал делать 10 и усреднять (а на самом деле просто суммировать, они изначально 8-бит, потому не жалко, а величины все равно относительные) -- так если смотреть график, он реально стал совсем гладким (до того дрожал на 2LSB постоянно) -- а это собственно ресемплирование и есть, в грубой форме.
Reply
Если нам нужно получить из сигнала 20MSPS спектр с разрешением 1Гц, то это 20 миллионов сэмплов, однако. А потом выкинуть все 20M отсчетов спектра, оставив только интересующую полоску в 1кГц. А если 0.1Гц? А если сигнал исчезнет, пока мы будем накапливать наши 200М отсчетов?
Квадратурный детектор с последующей передискретизацией в разы эффективнее.
Reply
Reply
Я не уверен что от 24 бита будет какой-то толк, там и на 12 все утонет в шумах. Та же гнурадива, ЕМНИП, использует 14-битные АЦП.
Reply
и да, я уже понял что при 60МГц сигнале лучше сразу на этак 60.01 МГц семплировать-фильтровать-ресемплировать, а потом в результирующих примерно 0-10 кГц ловить нужные мне этак килогерц.
Reply
Во-вторых, что-то мне подсказывает, что сэмплирующая система, способная разом обработать и 60МГц и 60.01Мгц - дело нетривиальное, и проблемы с точностью-разрешением там вылезут в полный рост.
Reply
А вот не потеряете ли раньше - вопрос к знающим людям. Меня смущает, к примеру, ловля линии шириной 1 Гц на 1-10 секундах.
Reply
т.е. может реально сигнал на одной частоте, длительностью 1-10 секунд, но модулированный и интересная информация получается из линий, которые необходимо детектировать с точностью 1гц.
Reply
в реальности сигнал - смесь сигналов с близкой частотой. вот вполне типовой спектр высокого разрешения:
( ... )
Reply
Reply
Leave a comment