Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Спектр огибающей...
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
ASergej_R19
Попрошу не бить, а помочь по возможности чайнику...

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

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

Если где ошибся в определениях - не пинайте, лучше подскажите...
Спасибо...
Stanislav
Цитата(ASergej_R19 @ Apr 20 2007, 22:14) *
Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на e(-jwt), сдвигая спектр таким образом, чтобы начало выделенной полосы частот совпадало с 0 на оси частот.
Даже лучче можно: сдвиньте его так, чтобы в 0 попала середина полосы (для многих сигналов это несущая). Тогда частота выборки после прореживания может быть выбрана с в 2 раза ниже. smile.gif
Цитата(ASergej_R19 @ Apr 20 2007, 22:14) *
...По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы, после чего сделать ДПФ и получить искомый спектр.
Мой начальный вопрос - такая схема верна? Если нет - в чем ошибка?
Всё верно.
Если будете делать так, как я предлагаю, получите именно спектр огибающей. В Вашем же случае он будет сдвинут на половину полосы.
ASergej_R19
На счет середины полосы - понял, спасибо... Однако саму схему написал - но сам еще не осознал.

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

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

P.S.: Спасибо за внимание к моей проблеме...
anton
Посмотри для примера как это реализовано в DDC например от аналога или TI.
ASergej_R19
Цитата(anton @ Apr 21 2007, 16:29) *
Посмотри для примера как это реализовано в DDC например от аналога или TI.


Что это за DDC? Может ссылки какие завалялись?
Спасибо...
DRUID3
Цитата(ASergej_R19 @ Apr 21 2007, 13:08) *
Задача исследовательского рода, поэтому нет конкретных сигналов - такие требования выдвинули мне. Есть первоначальная полоса частот - в ней пользователю нужно смотреть спектр сигналов (сохранять эти спектральные "портреты" - но это уже к данному топику не относится и т.п.). Далее по выбору пользователя выделяется _произвольная_ полоса частот внутри основной, а далее Вы правильно написали - сигнал демодулируется (огибающую находим) и получаем его (ее) спектр с более подробным разрешением.

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

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

ПФ - полосовой фильтр, наверное.
По Вашей теме, нужно сделать перенос участка спектра с ВЧ (по началу не думая ни о какой огибающей, главное чтобы фильтр по НЧ отфильтровывал полосу не меньше чем половина максимальной полосы занимаемой исследуемым сигналом - если конечно делать это квадратурным переносом и комплексным БПФ) на НЧ - ета курить надо SSB. А уже на НЧ работать с демодуляцией, фильтрацией и прочим. Вы часом радиолюбительской связью не интересовались? Очень познавательное хобби. Это SDR в чистом виде, моя "фоновая" работа, кстати, причем, как не удивительно в Киеве существую еще очаги такого безобразия smile.gif , жаль, что коммерция и некоторая личная неприязнь нас разобщает...
Я так понял что это вроде системы радиомониторинга. Де младший офицерский состав выбирает заинтересовавший их частотный всплеск и наводит на него курсор для оценки сигнала. Забавно... smile.gif ...
Serg76
Цитата(ASergej_R19 @ Apr 20 2007, 22:14) *
Попрошу не бить, а помочь по возможности чайнику...

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

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

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

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

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

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

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

DRUID3

Нет, радиолюбительством не интересовался, к сожалению.
Всякие переносы с ВЧ и проч. - это все более/менее понятно. Больше интересует полосовой фильтр ,преобразование Гильберта и огибающая - как бы все это ужать и рациональнее посчитать...
А то уж больно много вычислений получается, ежели "в лоб"... Особенно смущает то, что все равно есть уже ДПФ общей полосы и можно, по крайней мере, легко отфильтровать полосу по выбору, а не синтезировать с помощью опять же ДПФ, например, полосовой фильтр КИХ и фильтровать во временной области... Хотя понятно, что синтез этот на загрузке процессора и не отобразится...
Спасибо за советы...
anton
DDC это цифровой понижающий конвертер.
На сайте аналога им посвешена отдельная тема.

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

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

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

Накой такой огород городить? переносы с обпф зачастую не нужны просто берем только требуемые фильтры из большого БПФ.
-=ВН=-
Цитата(ASergej_R19 @ Apr 20 2007, 22:14) *
Попрошу не бить, а помочь по возможности чайнику...

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

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

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

Для полосовых сигналов часто, вместо действтительного пол. фильтра+преобр. Гильберта, выгоднее комплексный полосовой фильтр, вырезающий нужную полосу только в положительных (например) частотах и беспощадно давящего оставшиеся положительные и все без исключения отрицательные.
Считается он не сложнее действительного. :-)
Serg76
Цитата(ASergej_R19 @ Apr 20 2007, 22:14) *
Попрошу не бить, а помочь по возможности чайнику...

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

Есть оцифрованный действительный сигнал -> выделяем нужную полосу частот полосовым фильтром. Далее делаем преобразование Гильберта и получаем аналитический сигнал. Далее находим амплитудную огибающую как модуль аналитического сигнала и домножаем на 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.
anton
Цитата
.. Все дело в том, где будет стоять Ваш АЦП. Возможны два варианта: 1- по входу на какой-нибудь промежуточной частоте, при этом имеем дело с действительным сигналом. В этом случае, действительно, частоту дискретизации нужно выбирать 2*полосу выделенного сигнала.


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

И вообще крайне часто упоминали преобразование Гилберта.
Как правило в реальности оно нужно только для двух вещей.

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

второе узнать фазу сигнала без перехода в частотную область.
Serg76
Цитата(anton @ Apr 22 2007, 19:15) *
Вы забыли добавить что полоса оцифровки не должна пересекать точки N*(Fацп/2) иначе возникнут крайне неприятные эффекты.

И вообще крайне часто упоминали преобразование Гилберта.
Как правило в реальности оно нужно только для двух вещей.

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

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

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

fд > 4fт

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

А что касается применения преобразователя Гильберта, то смею заметить, оно повсеместно используется при цифровой обработке сигнала, так как с комплексным сигналом работать гораздо проще и удобнее. Особенно это хорошо помогает при построении различных программных модемов цифровых или аналоговых сигналов, т.к. большинство современных схем модемов строятся по квадратурной схеме.
st256
Цитата(Stanislav @ Apr 21 2007, 03:24) *
Даже лучче можно: сдвиньте его так, чтобы в 0 попала середина полосы (для многих сигналов это несущая). Тогда частота выборки после прореживания может быть выбрана с в 2 раза ниже. smile.gif


Мда? Вы так уверены, что что-то там будет в 2 раза ниже? Офигеть!

Цитата(ASergej_R19 @ Apr 21 2007, 03:45) *
На счет середины полосы - понял, спасибо... Однако саму схему написал - но сам еще не осознал.

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


А Вы, оказывается неплохо подкованы! Действительно, так "в лоб" делать нельзя. А не "в лоб" можно делать и в частотной области.

Цитата(DRUID3 @ Apr 22 2007, 01:42) *
ПФ - полосовой фильтр, наверное.
По Вашей теме, нужно


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



Цитата(DRUID3 @ Apr 22 2007, 01:42) *
...как не удивительно в Киеве существую еще очаги такого безобразия smile.gif , жаль, что коммерция и некоторая личная неприязнь нас разобщает...


Нет, что Вы! Мы так любим ходить на вас смотреть по телевизору! Кстати, вопрос не в тему: а когда у вас там окончательно воцариться Девушка С Косой? Я, просто, обожаю ужасы с стиле А.К. Толстого! Просимо! smile.gif)))
ASergej_R19
anton

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

Теперь понял... Видимо о чем-то вроде этого пишет Serg76. Однако DDC - это отдельные компоненты, у меня же задача сделать все в цифре. И уже имеется оцифрованный действительный сигнал...
С комплексным БПФ - все понятно, но, конечно же, делать его настолько большим - нет никакой ни возможности, ни прямой надобности. Как я уже говорил БПФ первоначальной широкой полосы делается, но с "малым" разрешением, для первичной оценки пользователя...

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

Serg76
М-да... Большое спасибо, очень интересная информация. И перенос на Fd/4 тоже вобщем-то не смертелен - ведь Fd можно и понизить при выборе определенной полосы до проведения этого преобразования, правда добавятся дополнительные антиалиазинговые фильтры...
Однако, как я понимаю, данная схема поможет нам сформировать комплексный аналитический сигнал, но не избавит собственно от нахождения амплитудной огибающей (с ее корнем из суммы квадратов I и Q) и переносе ее спектра в 0?
Надо мне время немного подумать... За информацию - большое спасибо...
-=ВН=-
Цитата(ASergej_R19 @ Apr 23 2007, 23:00) *
-=BH=-
Вопрос по этой теме я планировал задать чуть позже. Действительно слышал, что вроде как преобразование Гильберта и полосовой фильтр можно совмещать и слышал "звон" про комплексные фильтры, но ничего не знаю про это. А ведь нужно будет в программе синтезировать такой фильтр для заданной полосы частот - может посоветуете какие-нибудь книги по проще по этой теме? И не очень понимаю, как его применять к действительному сигналу? Или (по аналогии с комплексным БПФ) он давит комплексные составляющие в частотной области, тогда как во временной комплексная часть будет = 0 (до фильтрации)? А на выходе, соответственно, уже будем иметь комплексный сигнал?
Просто вопрос полосовой фильтрации мне интересен не только по данной теме... Заранее - спасибо...

Он не комплексные составляющие в частотной области давит. Он, применительно к Вашему случаю, давит ВСЕ отрицательные частоты и те положительные, которые не попали в интересующую Вас полосу.
Это фильтр с комплексными к-тами. На выходе у негго комплексный сигнал.


Разобраться Вы с ним элементарно можете сами.
На простом примере.
Рассчитайте самый что ни на есть действительный КИХ фильтр нижних частот (чем угодно, хоть матлабом). С шириной полосы пропускания, равной половине ширине полосы Вашего сигнала, или, по другому, равной половине ширины полосы пропускания Вашего действительного фильтра.
С шириной переходной полосы, равной ширине переходной полосы Вашего действительного фильтра.
С подавлением в полосе непропускания, таким же, как и у Вашего действительного ф. С такой же неравномерностью в полосе проп.
Умножьте полученную действительную импульсную характеристику КИХ ФНЧ на exp(j*W0*(t-((N-1)/2))). W0=2pi*F0/Fdiskr. F0 =центральной частоте Вашего действительного фильтра.
Получитк комплексную имп. характеристику. Возьмите от нее Фурье и посмотрите на результат.
Я Вам описал расчет комплексного полосового КИХ фильтра.
Для БИХ тоже все очень просто. Например рассчитать вначале аналоговый ФНЧ прототип и затем воспользоваться слегка модифицированным билинейным z-преобразованием.
Вместо g*(1-Z^(-1))/(1+Z^(-1)), преобразующим ФНЧ в ФНЧ, использовать g*(exp(-jW0)-Z^(-1))/(exp(-jW0)+Z^(-1)), преобразующим ФНЧ в комплексный полосовой с центром в W0=2PI*F0/Fdiskr.
В общем по этой трактовке цифровые ФНЧ и ФВЧ - это комплексные полосовые фильтры, первый с центром в 0, второй с центром в pi.

Комплексный полосовой исключает нужду в выравнивателе групповой задержке, необходимом в случае ПГ.
anton
Комплексный фильтр не упрощает процес децимации.
Поэтому схема подобная DDC более простая и в вашем случае она просто будет не ввиде отдельно микросхемы, а будет реализована программно.
В принципе ее тебе уже рисовали это комплексный гетеродин (умножение входных выборок на синус и косинус) и НЧ фильтры после них можеш прореживать выборки.

Fd/4 это частный случай когда в гетеродине синус и косинус вырождаются в +-1.
-=ВН=-
Цитата(anton @ Apr 24 2007, 12:37) *
Комплексный фильтр не упрощает процес децимации.
Поэтому схема подобная DDC более простая и в вашем случае она просто будет не ввиде отдельно микросхемы, а будет реализована программно.
В принципе ее тебе уже рисовали это комплексный гетеродин (умножение входных выборок на синус и косинус) и НЧ фильтры после них можеш прореживать выборки.

Fd/4 это частный случай когда в гетеродине синус и косинус вырождаются в +-1.

:-))) Он его и не усложняет. Разница у комп. фильтра с последующим гетеродинрованием и прореживанием с DDC только в процедуре гетеродинирования. У класс. DDC это умножение действительного на комплекс. Для компл. пол. фильтра с последующим гетеродином - умножение комплекс на комплекс, что конечно более затратно:-) Но, учитывая, что в случае компл. фильтра хорошим тоном считается ставить гетеродин после прореживателя, затратность получается меньше.
Еще разница - разные к-ты фильтров при одном порядке - и не разница вовсе. :-)
Возможность использования CIC-фильтров в класс. DDC важна по сути только для реализации в ФПГА.
Stanislav
Цитата(st256 @ Apr 22 2007, 20:18) *
Мда? Вы так уверены, что что-то там будет в 2 раза ниже? Офигеть!
Давненько лепший друг не появлялся...
Только читать за время вынужденного отсутствия, похоже, не научился:
Цитата(ASergej_R19 @ Apr 20 2007, 22:14) *
...По идее, т.к. у нас полоса частот выделена еще на первом этапе, то можно как-то это наверное проредить без антиалиазинговых фильтров до частоты дескритизации = минимум удвоенной частоте выделенной полосы...
smile.gif

Цитата(st256 @ Apr 22 2007, 20:18) *
...Да нихрена, блин, не нужно. Сделал БПФ, собрал в кучку отсчеты в полосе огибающей, оставшиеся отбросил за ненадобностью и назвал полученное безобразие - искомым спектром огибающей сигнала.
Да, алгоритм, прямо скажем, впечатляющий. biggrin.gif


2 All остальные.
Стоп, братцы, а зачем такие сложности?
Из уточнения постановки задачи мне, например, стало понятно, что, в общем, спектр комплексной огибающей находить вовсе не нужно. Достаточно найти его модуль в заданной полосе частот (если ошибаюсь, поправьте).
Для этого следует просто оцифровать сигнал с частотой, большей удвоенной ширины полосы сигнала на входе (произвести undersampling smile.gif ), а затем найти модуль его ДПФ. После этого, можно произвести циклическую перестановку термов ДПФ, чтобы привести к 0 нижнюю частоту диапазона. Ненужные/внеполосные термы можно отбросить.
Мне кажется, что информация в таком виде будет наилучшим образом отвечать духу задачи:
Цитата(ASergej_R19 @ Apr 21 2007, 14:08) *
...Есть первоначальная полоса частот - в ней пользователю нужно смотреть спектр сигналов (сохранять эти спектральные "портреты" - но это уже к данному топику не относится и т.п.). Далее по выбору пользователя выделяется _произвольная_ полоса частот внутри основной, а далее Вы правильно написали - сигнал демодулируется (огибающую находим) и получаем его (ее) спектр с более подробным разрешением...
Демодуляция при этом будет не нужна (она будет присутствовать в "неявном" виде).
anton
Цитата
:-))) Он его и не усложняет. Разница у комп. фильтра с последующим гетеродинрованием и прореживанием с DDC только в процедуре гетеродинирования. У класс. DDC это умножение действительного на комплекс. Для компл. пол. фильтра с последующим гетеродином - умножение комплекс на комплекс, что конечно более затратно:-) Но, учитывая, что в случае компл. фильтра хорошим тоном считается ставить гетеродин после прореживателя, затратность получается меньше.


Не совсем соглашусь с затратностью.
1. в моем случае гетеродин вырождается в умножение на синус и косинус. (2 операции) у вас 4 умножения и сложения (выигрыш только при децимации более чем в 2 раза).
2. Для децимации используются НЧ фильтр (это два действительных фильтра т.е. отсутствует комплексной умножение) у вас комплексный полосовой фильтр требуется такого же порядка что и НЧ в итоге затратность в 2 раза выше.
3. у вас если требуется просмотреть другую область то необходимо синтезировать новые коэф. фильтра.
-=ВН=-
Цитата(anton @ Apr 25 2007, 12:44) *
Не совсем соглашусь с затратностью.
1. в моем случае гетеродин вырождается в умножение на синус и косинус. (2 операции) у вас 4 умножения и сложения (выигрыш только при децимации более чем в 2 раза).
2. Для децимации используются НЧ фильтр (это два действительных фильтра т.е. отсутствует комплексной умножение) у вас комплексный полосовой фильтр требуется такого же порядка что и НЧ в итоге затратность в 2 раза выше.
3. у вас если требуется просмотреть другую область то необходимо синтезировать новые коэф. фильтра.

1. В моем случае гетеродин можно ставить после прореживания. А поскольку прореживание редко бывает меньше, чем в 2 раза, то моих 4 умножения эквивалентны Вашим 2. Минимум.:-)
2. Комлексный полосовой фильтр в случае КИХ и действительного сигнала вырождается в 2 действительных фильтра, одной длины, но с разными к-тами. Никаких комплексных умножений там нет. Длина, кстати, будет такая же как и у Вас, при равных подавительно-пропускательных способностях. В случае БИХ - да, разница будет. Но БИХ штука коническая и в данном случае вопрос его применения может потребовать отдельного рассмотрения.
3. Это элементарно. Для КИХ нового синтеза практически нет. Огибающая ИХ одна и та же. А именно ее рассчет относительно трудоемок. Запомнить ее и множить потом на комплексную эксп. нужной частоты. Но Вы правы. В этом пункте вообще говоря проигрыш. Если требуется перестройка.
st256
Цитата(Stanislav @ Apr 25 2007, 06:02) *
Давненько лепший друг не появлялся...
Только читать за время вынужденного отсутствия, похоже, не научился: smile.gif


Стасик, отвали. Ты даже не понял, что я имел в виду.
Stanislav
Цитата(st256 @ Apr 25 2007, 14:49) *
Стасик, отвали. Ты даже не понял, что я имел в виду.
Сдаётся, отъятие очередного кусочка не за горами... biggrin.gif
Да Вы сами-то поняли, что написали?

2 ASergej_R19
Прошу прощения, но не могли бы Вы уточнить:
- нужен ли комплексный спектр огибающей в заданной полосе, или достаточно его модуля, удобоваримого для визуального восприятия?
- выделение полосы производится аналоговым методом, или в цифре?
- каковы хотя бы примерные характеристики сигнала (мин. и макс. частота интересующего диапазона на входе АЦП, ширина полосы и др.)?
Условия Вами поставлены, но, возможно, задача имеет более простое решение.
В ряде случаев можно обойтись и без комплексного представления сигнала...
st256
Цитата(Stanislav @ Apr 26 2007, 04:56) *
Сдаётся, отъятие очередного кусочка не за горами... biggrin.gif
Да Вы сами-то поняли, что написали?


Стасик, какой кусочек? Какие горы? Ну не нравишся ты мне и все тут! Мне тут многие не нравятся, ты не одинок. Зачем же лезть в мои посты, когда тотчас получаешь по самолюбию? Вы мазохист, Стасик?
anton
Цитата(-=ВН=- @ Apr 25 2007, 13:06) *
1. В моем случае гетеродин можно ставить после прореживания. А поскольку прореживание редко бывает меньше, чем в 2 раза, то моих 4 умножения эквивалентны Вашим 2. Минимум.:-)
2. Комлексный полосовой фильтр в случае КИХ и действительного сигнала вырождается в 2 действительных фильтра, одной длины, но с разными к-тами. Никаких комплексных умножений там нет. Длина, кстати, будет такая же как и у Вас, при равных подавительно-пропускательных способностях. В случае БИХ - да, разница будет. Но БИХ штука коническая и в данном случае вопрос его применения может потребовать отдельного рассмотрения.
3. Это элементарно. Для КИХ нового синтеза практически нет. Огибающая ИХ одна и та же. А именно ее рассчет относительно трудоемок. Запомнить ее и множить потом на комплексную эксп. нужной частоты. Но Вы правы. В этом пункте вообще говоря проигрыш. Если требуется перестройка.


В общем согласен спор чистых пристрастий. (или взгляд в одну .. с разных сторон).

Кстати если требуется спектр значительной части входной информации (на вскидку >1/8 часть от числа входных отсчетов) использование комплексного БПФ оправдано.
У этого есть еще одно невероятное преимущество - проще проектировать и программировать на два порядка.

;) Кстати кто садомазо и сам пишет БПФ? rolleyes.gif
-=ВН=-
Цитата(anton @ Apr 26 2007, 11:17) *
В общем согласен спор чистых пристрастий. (или взгляд в одну .. с разных сторон).

Кстати если требуется спектр значительной части входной информации (на вскидку >1/8 часть от числа входных отсчетов) использование комплексного БПФ оправдано.
У этого есть еще одно невероятное преимущество - проще проектировать и программировать на два порядка.

wink.gif Кстати кто садомазо и сам пишет БПФ? rolleyes.gif

Почему садомазо? Это же элементарно. Писал неоднократно. Для разных процессоров. И в железе делал, лет около 20назад, на полурассыпухе.
anton
Цитата
Почему садомазо? Это же элементарно. Писал неоднократно. Для разных процессоров. И в железе делал, лет около 20назад, на полурассыпухе.


Нет простоя я имел в ввиду что для современных камней есть библиотечные функции.
Правда особо большие БПФ иногда все равно приходится дописывать.

Кстати еше камень в сторону гетеродинов это не слишком чистый синус (проблема точности).
-=ВН=-
Цитата(anton @ Apr 26 2007, 17:56) *
Нет простоя я имел в ввиду что для современных камней есть библиотечные функции.
Правда особо большие БПФ иногда все равно приходится дописывать.

Кстати еше камень в сторону гетеродинов это не слишком чистый синус (проблема точности).

Они игогда сделаны раком.
А гетеродин можно и выкинуть в случае комплексного фильтра:-)
anton
Цитата
Они игогда сделаны раком.


Ну когда камень свежий то да.
Например на ТС201 до весны прошлого года.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.