Перейти к содержанию
    

Попрошу не бить, а помочь по возможности чайнику...

 

Нужно построить спектр огибающей в заданной полосе частот, но я не очень хорошо себе представляю как это сделать вообще, и как легче (по загрузке процессорного времени). Причем хотелось бы спектр огибающей иметь с лучшим разрешением (при той же разрядности ДПФ), чем у общей входной полосы частот... Сумбруно получается, потому что сам слабо себе представляю общую схему, но попробую рассказать...

 

Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на e(-jwt), сдвигая спектр таким образом, чтобы начало выделенной полосы частот совпадало с 0 на оси частот. По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы, после чего сделать ДПФ и получить искомый спектр.

Мой начальный вопрос - такая схема верна? Если нет - в чем ошибка?

 

Если где ошибся в определениях - не пинайте, лучше подскажите...

Спасибо...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на e(-jwt), сдвигая спектр таким образом, чтобы начало выделенной полосы частот совпадало с 0 на оси частот.
Даже лучче можно: сдвиньте его так, чтобы в 0 попала середина полосы (для многих сигналов это несущая). Тогда частота выборки после прореживания может быть выбрана с в 2 раза ниже. :)

...По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы, после чего сделать ДПФ и получить искомый спектр.

Мой начальный вопрос - такая схема верна? Если нет - в чем ошибка?

Всё верно.

Если будете делать так, как я предлагаю, получите именно спектр огибающей. В Вашем же случае он будет сдвинут на половину полосы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На счет середины полосы - понял, спасибо... Однако саму схему написал - но сам еще не осознал.

 

Вопрос по получению аналитического сигнала:

т.к. кроме этого нужно будет считать ДПФ общей полосы частот входного сигнала, было предположение: имеем действительный оцифрованный сигнал, далее сразу проводим ДПФ, проводим полосовую фильтрацию уже в частотной области. И обнуляем комплексную часть, *2 действительную - то есть проделываем преобразование Гильберта. Затем переходим во временную область проделывая ОДПФ, прореживаем и делаем опять ДПФ... По идее вроде так делать нельзя (или можно?) - мы на этих переходах потеряем информацию о различных составляющих огибающей или нет? Или соберем эффект Гиббса, который испортит конечную спектральную картинку?

Или лучше все делать во временной области как я указал в первом посте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю плясать "от печки". Первое, и самое главное - опишите сигнал на входе АЦП подробно (несущая, вид модуляции, ширина полосы и т.д.). Второе - имеется ли аналоговый ПФ? Если да, каковы его характеристики?

ЗЫ. Ваша задача - демодуляция сигнала, и получение спектра демодулированного сигнала, не так ли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача исследовательского рода, поэтому нет конкретных сигналов - такие требования выдвинули мне. Есть первоначальная полоса частот - в ней пользователю нужно смотреть спектр сигналов (сохранять эти спектральные "портреты" - но это уже к данному топику не относится и т.п.). Далее по выбору пользователя выделяется _произвольная_ полоса частот внутри основной, а далее Вы правильно написали - сигнал демодулируется (огибающую находим) и получаем его (ее) спектр с более подробным разрешением.

 

Поэтому на входе АЦП имеется просто некоторый набор сигналов в первоначальной полосе частот (все остальное отфильтровано) - какая несущая и проч - неизвестно, на входе вообще может быть только шум. Всем этим должен заниматься пользователь смотря на спектры - данная система идет как вспомогательный инструмент, который должен уметь смотреть общий спектр и более подробно - спектр огибающей... Собственный вносимый шум в указанную общую полосу должен быть <60 дБ, разрядность - фикс. точка 16 бит. Демодулирование должно быть в цифровом виде, а АЦП работать на одной частоте, т.к. данная обработка - всего лишь часть общей системы.

"аналоговый ПФ" - не понял, что это... ПФ - передаточная функция? Аналоговый(ая?) ПФ? Но в любом случае, повторюсь - нет информации о конкретных сигналах, пользователю представляются указанные спектры - все остальное думает и задает пользователь.

 

P.S.: Спасибо за внимание к моей проблеме...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотри для примера как это реализовано в DDC например от аналога или TI.

 

Что это за DDC? Может ссылки какие завалялись?

Спасибо...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача исследовательского рода, поэтому нет конкретных сигналов - такие требования выдвинули мне. Есть первоначальная полоса частот - в ней пользователю нужно смотреть спектр сигналов (сохранять эти спектральные "портреты" - но это уже к данному топику не относится и т.п.). Далее по выбору пользователя выделяется _произвольная_ полоса частот внутри основной, а далее Вы правильно написали - сигнал демодулируется (огибающую находим) и получаем его (ее) спектр с более подробным разрешением.

 

Поэтому на входе АЦП имеется просто некоторый набор сигналов в первоначальной полосе частот (все остальное отфильтровано) - какая несущая и проч - неизвестно, на входе вообще может быть только шум. Всем этим должен заниматься пользователь смотря на спектры - данная система идет как вспомогательный инструмент, который должен уметь смотреть общий спектр и более подробно - спектр огибающей... Собственный вносимый шум в указанную общую полосу должен быть <60 дБ, разрядность - фикс. точка 16 бит. Демодулирование должно быть в цифровом виде, а АЦП работать на одной частоте, т.к. данная обработка - всего лишь часть общей системы.

"аналоговый ПФ" - не понял, что это... ПФ - передаточная функция? Аналоговый(ая?) ПФ? Но в любом случае, повторюсь - нет информации о конкретных сигналах, пользователю представляются указанные спектры - все остальное думает и задает пользователь.

 

P.S.: Спасибо за внимание к моей проблеме...

ПФ - полосовой фильтр, наверное.

По Вашей теме, нужно сделать перенос участка спектра с ВЧ (по началу не думая ни о какой огибающей, главное чтобы фильтр по НЧ отфильтровывал полосу не меньше чем половина максимальной полосы занимаемой исследуемым сигналом - если конечно делать это квадратурным переносом и комплексным БПФ) на НЧ - ета курить надо SSB. А уже на НЧ работать с демодуляцией, фильтрацией и прочим. Вы часом радиолюбительской связью не интересовались? Очень познавательное хобби. Это SDR в чистом виде, моя "фоновая" работа, кстати, причем, как не удивительно в Киеве существую еще очаги такого безобразия :) , жаль, что коммерция и некоторая личная неприязнь нас разобщает...

Я так понял что это вроде системы радиомониторинга. Де младший офицерский состав выбирает заинтересовавший их частотный всплеск и наводит на него курсор для оценки сигнала. Забавно... :) ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попрошу не бить, а помочь по возможности чайнику...

 

Нужно построить спектр огибающей в заданной полосе частот, но я не очень хорошо себе представляю как это сделать вообще, и как легче (по загрузке процессорного времени). Причем хотелось бы спектр огибающей иметь с лучшим разрешением (при той же разрядности ДПФ), чем у общей входной полосы частот... Сумбруно получается, потому что сам слабо себе представляю общую схему, но попробую рассказать...

 

Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на e(-jwt), сдвигая спектр таким образом, чтобы начало выделенной полосы частот совпадало с 0 на оси частот. По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы, после чего сделать ДПФ и получить искомый спектр.

Мой начальный вопрос - такая схема верна? Если нет - в чем ошибка?

 

Если где ошибся в определениях - не пинайте, лучше подскажите...

Спасибо...

Начало верное:

1. Антиалиасинговый фильтр - это, как правило, фильтр Найквиста и он необходим перед проведением аналого-цифрового преобразования для того, чтобы внеполосные или другие побочные составляющие не проникли в спектр оцифрованного сигнала.

2. Получить аналитический сигнал используя преобразование Гильберта.

3. Получить комплексную огибающую полосового сигнала. Для этого полученный квадратурный сигнал снести в область нулевой частоты используя обычный преобразователь частоты (гетеродин + смеситель), т.е. как Вы указали домножить сигнал на поворачивающий множитель e(-jwt), обратите внимание на возможную при этом инверсию спектра. После этого можно понизить частоту дискретизации вплоть до частоты дискретизации, равную или несколько превышающую ширину полосы исходного сигнала, используя один из алгоритмов интерполяции.

4. Используя один из алгоритмов БПФ (FFT) для комплексных сигналов, получить Фурье-образ вашего сигнала. При этом, можно накапливать несколько независимых кадров для усредения составляющей шума, а также применить различные методы сглаживания соседних отсчетов, чтобы исключить случайные выбросы, сам все это использовал и проверял, получается довольно реалистично. Еще один момент - так как идеальные фильтры получить невозможно, а у реально спректированных имеется некоторая полоса перехода между полосой пропускания и полосой задержания, то при проведении FFT наш результирующий спектр будет завален на краях, и поэтому реально отображать надо не весь спектр, а лишь его часть, т.е. без полосы перехода. Например, разрешение FFT - 65536 точек и коэффициент сглаживания формирующего фильтра - 0,35. При этом реальное число отображаемых точек будет: 65536*(1-0,35)=42528.

5. Но при этом всем возникает еще одна проблема - мы будем видеть только половину спектра сигнала, т.к. он перенесен в область нулевой частоты, и таким образом реально складывающуюся картину сигнала мы не увидим. Поэтому можно предложить следующий вариант: перейти, если это возможно, с исходной частоты дискретизации АЦП на частоту дискретизации сигнала в 4 раза большую полосы исходного сигнала (это с учетом того, что после FFT, мы видим только половину спектра, т.к. вторая половина представляет собой зеркальное отображение первой) и затем перенести сигнал с несущей частоты на промежуточную частоту, номинал которой равен ширине полосы исходного сигнала, а затем уже можно использовать все те алгоритмы и методы которые описаны выше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 - понятно, просто и при уменьшении частоты дискретизации, чтобы не было переноса ВЧ в область низких частот - там тоже нужно все отфильтровывать. Просто в данном случае все это делает полосовой фильтр. Но в целом - согласен.

 

2,4 - тоже согласен.

 

А вот дальше, не понял... "Но при этом всем возникает еще одна проблема - мы будем видеть только половину спектра сигнала, т.к. он перенесен в область нулевой частоты...", думаю видеть это мы будем не из-за переноса, а из-за того, что ранее Вы предложили "После этого можно понизить частоту дискретизации вплоть до частоты дискретизации, равную или несколько превышающую ширину полосы исходного сигнала, используя один из алгоритмов интерполяции.". Нужно частоту дискретизации выбирать 2*полосу выделенного сигнала, чтобы уложить весь сигнал до частоты Найквиста, тогда и получить должны нормальный спектр (с учетом некоторого завала по краям)...

 

И еще все же интересно, можно ли обойти преобразование Гильберта и получение огибающей с ее квадратами и корнем используя то, что первоначальную широкую полосу мы тоже раскладываем с помощью комплексного ДПФ - а далее в частотной области сделать полосовую фильтрацию и преобразование Гильберта и потом собрать сигнал с помощью ОДПФ, потом уже снести к 0 и т.д. Потеряем ли мы всю полезную информацию при таких преобразоаниях туда-сюда с помощью Фурье?

 

DRUID3

 

Нет, радиолюбительством не интересовался, к сожалению.

Всякие переносы с ВЧ и проч. - это все более/менее понятно. Больше интересует полосовой фильтр ,преобразование Гильберта и огибающая - как бы все это ужать и рациональнее посчитать...

А то уж больно много вычислений получается, ежели "в лоб"... Особенно смущает то, что все равно есть уже ДПФ общей полосы и можно, по крайней мере, легко отфильтровать полосу по выбору, а не синтезировать с помощью опять же ДПФ, например, полосовой фильтр КИХ и фильтровать во временной области... Хотя понятно, что синтез этот на загрузке процессора и не отобразится...

Спасибо за советы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DDC это цифровой понижающий конвертер.

На сайте аналога им посвешена отдельная тема.

 

В них как раз преобразование гилберта не используется, там цифровой комплексный гетеродин и низко частотные фильтры.

 

Кстати если не канает очень большой размер БПФ то можеш входной сигнал на прямую подавать на комплексный БПФ (все комплексные элементы равны нулю). на выходе получиш спектр в половину размера БПФ (старшая половина будет повторять зеркально младшую).

 

"И еще все же интересно, можно ли обойти преобразование Гильберта и получение огибающей с ее квадратами и корнем используя то, что первоначальную широкую полосу мы тоже раскладываем с помощью комплексного ДПФ - а далее в частотной области сделать полосовую фильтрацию и преобразование Гильберта и потом собрать сигнал с помощью ОДПФ, потом уже снести к 0 и т.д. Потеряем ли мы всю полезную информацию при таких преобразоаниях туда-сюда с помощью Фурье?"

 

Накой такой огород городить? переносы с обпф зачастую не нужны просто берем только требуемые фильтры из большого БПФ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попрошу не бить, а помочь по возможности чайнику...

 

Нужно построить спектр огибающей в заданной полосе частот, но я не очень хорошо себе представляю как это сделать вообще, и как легче (по загрузке процессорного времени). Причем хотелось бы спектр огибающей иметь с лучшим разрешением (при той же разрядности ДПФ), чем у общей входной полосы частот... Сумбруно получается, потому что сам слабо себе представляю общую схему, но попробую рассказать...

 

Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на e(-jwt), сдвигая спектр таким образом, чтобы начало выделенной полосы частот совпадало с 0 на оси частот. По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы, после чего сделать ДПФ и получить искомый спектр.

Мой начальный вопрос - такая схема верна? Если нет - в чем ошибка?

 

Если где ошибся в определениях - не пинайте, лучше подскажите...

Спасибо...

Для полосовых сигналов часто, вместо действтительного пол. фильтра+преобр. Гильберта, выгоднее комплексный полосовой фильтр, вырезающий нужную полосу только в положительных (например) частотах и беспощадно давящего оставшиеся положительные и все без исключения отрицательные.

Считается он не сложнее действительного. :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попрошу не бить, а помочь по возможности чайнику...

 

Нужно построить спектр огибающей в заданной полосе частот, но я не очень хорошо себе представляю как это сделать вообще, и как легче (по загрузке процессорного времени). Причем хотелось бы спектр огибающей иметь с лучшим разрешением (при той же разрядности ДПФ), чем у общей входной полосы частот... Сумбруно получается, потому что сам слабо себе представляю общую схему, но попробую рассказать...

 

Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на e(-jwt), сдвигая спектр таким образом, чтобы начало выделенной полосы частот совпадало с 0 на оси частот. По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы, после чего сделать ДПФ и получить искомый спектр.

Мой начальный вопрос - такая схема верна? Если нет - в чем ошибка?

 

Если где ошибся в определениях - не пинайте, лучше подскажите...

Спасибо...

А вот дальше, не понял... "Но при этом всем возникает еще одна проблема - мы будем видеть только половину спектра сигнала, т.к. он перенесен в область нулевой частоты...", думаю видеть это мы будем не из-за переноса, а из-за того, что ранее Вы предложили "После этого можно понизить частоту дискретизации вплоть до частоты дискретизации, равную или несколько превышающую ширину полосы исходного сигнала, используя один из алгоритмов интерполяции.". Нужно частоту дискретизации выбирать 2*полосу выделенного сигнала, чтобы уложить весь сигнал до частоты Найквиста, тогда и получить должны нормальный спектр (с учетом некоторого завала по краям)...

 

... Все дело в том, где будет стоять Ваш АЦП. Возможны два варианта: 1- по входу на какой-нибудь промежуточной частоте, при этом имеем дело с действительным сигналом. В этом случае, действительно, частоту дискретизации нужно выбирать 2*полосу выделенного сигнала. Вариант 2: оцифровка производится комплексной огибающей сигнала, т.е. уже после получения синфазной и квадратурной НЧ составляющих составляющих I и Q. В этом случае нам необходимо иметь уже 2 АЦП на каждый из квадратурных каналов. В этом случае частоту дискретизации можно выбирать не многим более полосы выделенного сигнала, т.к., повторюсь, уже имеем дело с комплексным сигналом, который в отличие от действительного является полностью самодостаточным. Единственно, что при этом невозможно будет по синфазной составляющей восстановить исходный сигнал (ну если это было бы необходимо). Что касается отображения спектра то тут я возможно не совсем удачно выразился, в области нулевой частоты мы будем видеть наложенную друг на друга смесь отрицательной и положительной половин спектра (так как в отличие от математического спектра мы имеем дело с физическим) и если спектр несимметричен, то визуально эти две половины спектра не различить. Поэтому спектр лучше отображать на какой-нибудь промежуточной частоте.

 

Далее...

И еще все же интересно, можно ли обойти преобразование Гильберта и получение огибающей с ее квадратами и корнем используя то, что первоначальную широкую полосу мы тоже раскладываем с помощью комплексного ДПФ - а далее в частотной области сделать полосовую фильтрацию и преобразование Гильберта и потом собрать сигнал с помощью ОДПФ, потом уже снести к 0 и т.д. Потеряем ли мы всю полезную информацию при таких преобразоаниях туда-сюда с помощью Фурье?

 

Отвечаю, можно обойтись и без преобразователя Гильберта. Известны два способа формирования отсчётов квадратурных составляющих при аналого-цифровом преобразовании сигнала на промежуточной частоте:

1. Используется преобразователь Гильберта (ПГ) и перенос спектра сигнала по оси частот на величину fд/4 с помощью комплексного перемножителя (КП) (рис. 1). Здесь m = 0,1,2,...; sin(pm/2) принимает значения {0, 1, 0, -1}, а cos(pm/2) — значения {1, 0, -1, 0};

 

2. Осуществляется перенос спектра сигнала по оси частот на величину fд/4 с помощью КП (при действительном входном сигнале реализация КП упрощается) и низкочастотная фильтрация полученного сигнала (рис. 2).

 

В принципе, в качестве ФНЧ (рис. 2) можно использовать ФНЧ с децимацией на 2, при этом отсчёты квадратурных составляющих на выходе формирователя квадратур (ФК) будут следовать с частотой fд/2. Тот же самый результат можно получить с помощью более простой в реализации схемы (рис. 3). Здесь в демультиплексоре (ДМ) осуществляется разделение отсчётов входного сигнала на чётные и нечётные, на выходах перемножителей знак каждого второго отсчёта меняется на противоположный, весовые коэффициенты ФНЧ1 равны чётным весовым коэффициентам ФНЧ на рис. 2, весовые коэффициенты ФНЧ2 равны нёчетным весовым коэффициентам ФНЧ на рис. 2.

post-26775-1177250284_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.. Все дело в том, где будет стоять Ваш АЦП. Возможны два варианта: 1- по входу на какой-нибудь промежуточной частоте, при этом имеем дело с действительным сигналом. В этом случае, действительно, частоту дискретизации нужно выбирать 2*полосу выделенного сигнала.

 

Вы забыли добавить что полоса оцифровки не должна пересекать точки N*(Fацп/2) иначе возникнут крайне неприятные эффекты.

 

И вообще крайне часто упоминали преобразование Гилберта.

Как правило в реальности оно нужно только для двух вещей.

 

первое показать какой ты умный и получить у начальства премию.

 

второе узнать фазу сигнала без перехода в частотную область.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы забыли добавить что полоса оцифровки не должна пересекать точки N*(Fацп/2) иначе возникнут крайне неприятные эффекты.

 

И вообще крайне часто упоминали преобразование Гилберта.

Как правило в реальности оно нужно только для двух вещей.

 

первое показать какой ты умный и получить у начальства премию.

 

второе узнать фазу сигнала без перехода в частотную область.

Действительно, при аналого-цифровом преобразовании на промежуточной частоте спектр сигнала, во избежание спектральных искажений, должен быть расположен в одной из спектральных полос, разделённых частотами 0,5*i*fд, где i = 0,1,2,... Следовательно, при ширине спектра сигнала на входе АЦП dfвх = 2fт, должны выполняться следующие условия:

 

fд > 4fт

 

fд = 4fпч /(2i + 1), где fпч — промежуточная частота сигнала, i = 0,1,2,...

 

А что касается применения преобразователя Гильберта, то смею заметить, оно повсеместно используется при цифровой обработке сигнала, так как с комплексным сигналом работать гораздо проще и удобнее. Особенно это хорошо помогает при построении различных программных модемов цифровых или аналоговых сигналов, т.к. большинство современных схем модемов строятся по квадратурной схеме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...