Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выделение огибающей сигнала
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Cbiker
Мало понимая в обработке сигналов, хочу сообразить есть ли аппаратно реализуемые методы выделения огибающей, менее затратные чем через преобразование спектра?
и почему например нне делают так - вылавливать локальные максимумы по смене знака производной и потом по ним строить огибающую?
=GM=
Легко построить огибающую для идеального сигнала, а для реального - помехи попортят вам много крови.

Проще получить огибающую из аналитического сигнала, как sqrt(I(t)*I(t) + Q(t)*Q(t)).
bahurin
Цитата(Cbiker @ Oct 27 2009, 23:23) *
Мало понимая в обработке сигналов, хочу сообразить есть ли аппаратно реализуемые методы выделения огибающей, менее затратные чем через преобразование спектра?
и почему например нне делают так - вылавливать локальные максимумы по смене знака производной и потом по ним строить огибающую?

Не совсем ясно что значит в вашем понимании "огибающая" и "преобразование спектра". Обычно огибающую выделяют при помощи квадратурного преобразователя, читай здесь. Производные не считают потому что шумы многократно вырастут
Cbiker
Как я понимаю для квадратурного метод применим для постоянной частоты несущей. А в моем случае, извините что сразу не уточнил, сигнал имеет произвольную форму.

Я и не предлагаю считать производные, я имел в виду простой аппаратный выявитель локальных экстремумов - ну например по схеме сравнения значения текущей точки с соседними точками(3,5,7...).
Под преобразованием спектра я понимаю метод который сейчас использут - прямое преобразование фурье, фильтр, обратное преобразование фурье. который, как мне кажеться, непомерно излишен в таком случае.
=GM=
Цитата(Cbiker @ Oct 28 2009, 22:10) *
Как я понимаю для квадратурного метод применим для постоянной частоты несущей. А в моем случае, извините что сразу не уточнил, сигнал имеет произвольную форму

Неправильно понимаете. Формула огибающей sqrt(I(t)*I(t) + Q(t)*Q(t)) работает для практически любого сигнала I(t) произвольной формы. Здесь I(t) и Q(t) действительная и мнимая часть аналитического сигнала, т.е. Q(t) получена преобразованием Гильберта функции I(t). Ну а квадратурные сигналы, грубо говоря, являются "узкополосной" реализацией аналитического сигнала.
Cbiker
Спасибо, тперь хоть немного представляю во что это выльеться при реализации.

А что можете сказать по поводу алгоритмаописанного в моем предыдущем посте?
=GM=
ДПФ-Фильтр-ОПДФ? Ничего не скажу, т.к. не понимаю идеи.
DRUID3
Цитата(Cbiker @ Oct 29 2009, 00:10) *
Как я понимаю для квадратурного метод применим для постоянной частоты несущей. А в моем случае, извините что сразу не уточнил, сигнал имеет произвольную форму.

Нет, Вы понимаете в корне неверно. Квадратурный метод выделения огибающей это AM-дэмодулятор каков он есть, сама его идея. Частота там нипричем.

Цитата(Cbiker @ Oct 29 2009, 00:10) *
Я и не предлагаю считать производные, я имел в виду простой аппаратный выявитель локальных экстремумов - ну например по схеме сравнения значения текущей точки с соседними точками(3,5,7...).

Можно... Но будет уже аппроксимация. Но если ресурсов жрать он будет в Вашей системе меньше и погрешность будет меньше Вами заданной - делайте. Вообще аппроксимации - очень интересная вещь ЦОС. Я делал 2-D адаптивный фильтр с полосовыми фильтрами на основе скользящей суммы. Очень далеко от классики - некоторые так и не поняли как он работает - не по учебнику... Но работает - зашибись. biggrin.gif

Цитата(Cbiker @ Oct 29 2009, 00:10) *
Под преобразованием спектра я понимаю метод который сейчас использут - прямое преобразование фурье, фильтр, обратное преобразование фурье. который, как мне кажеться, непомерно излишен в таком случае.

Первый раз о таком слышу. Не представляю себе зачем выделение огибающей делать в частотной области. Никакого преимущества, только проблемы.
soldat_shveyk
Выделение огибающей в частотной области области - наиболее эффективный путь при блочной обработке.
С увеличением размера блока отсчетов входного сигнала эффективность такого способа растет стремительно (из-за БПФ)
Процесс несложный: берем БПФ от входного вещественного сигнала, у полученных коэффициентов обнуляем те, которые
лежат в области [-Fs/2...0] и делаем обратный БПФ. С учетом того, что прямой БПФ = обратный БПФ с точностью до знака,
получается проще некуда.

А насчет огибающей хорошо у Финка написано в "Сигналы Помехи Ошибки, Основные заблуждения в теории связи".
Не всегда интуитивное понимание огибающей совпадает с реальностью. Почитайте, очень рекомендую.
Cbiker
TO =GM=:
Цитата
ДПФ-Фильтр-ОПДФ? Ничего не скажу, т.к. не понимаю идеи.

Я имел в виду :
Цитата
Я и не предлагаю считать производные, я имел в виду простой аппаратный выявитель локальных экстремумов - ну например по схеме сравнения значения текущей точки с соседними точками(3,5,7...).


TO DRUD3: спасибо за ответ.
thermit
y(n) = y(n-1) + ( abs(x(n)) - y(n-1) )*k

x(n) - сигнал
y(n) - оценка огибающей сигнала
k -

0.2 например, если x(n)>y(n-1)
0.01 - иначе

Что-то типа этого
RCray
Цитата
y(n) = y(n-1) + ( abs(x(n)) - y(n-1) )*k

x(n) - сигнал
y(n) - оценка огибающей сигнала
k -

0.2 например, если x(n)>y(n-1)
0.01 - иначе

Что-то типа этого


где здесь огибающая?
thermit
На нижнем рисунке.
RCray
это очень мало похоже на огибающую.
thermit
Я Вас маленько напарил.

Цитата
0.2 например, если x(n)>y(n-1)
0.01 - иначе

Следует читать как
Цитата
0.2 например, если abs(x(n))>y(n-1)
0.01 - иначе
анатолий
Если говорить о начале ветки - простейшем способе выделение огибающей, то тут
http://kanyevsky.kpi.ua/pifagor.html
описан один такой с программкой.
На входе - квадратуры - на выходе модуль.
Затраты - всего 8 ЛТ на разряд.
RCray
Цитата(thermit @ Nov 2 2009, 15:05) *
Я Вас маленько напарил.


Не знаю где вы парите. Вот Ваша модель - покажите, где огибающая.
fontp
Цитата(анатолий @ Nov 2 2009, 16:09) *
Если говорить о начале ветки - простейшем способе выделение огибающей, то тут
http://kanyevsky.kpi.ua/pifagor.html
описан один такой с программкой.
На входе - квадратуры - на выходе модуль.


Это всё хорошо, только в начале ветки не было квадратур. Был только действительный сигнал, а не аналитический
bahurin
Цитата(fontp @ Nov 2 2009, 21:03) *
Это всё хорошо, только в начале ветки не было квадратур. Был только действительный сигнал, а не аналитический

возьмите преобразование Гильберта и получите квадратурную составляющую.
thermit
Цитата
Не знаю где вы парите. Вот Ваша модель - покажите, где огибающая.


Угу. Тока не наша, а ваша.

Наша вот.
clear all;


x=sin(2*pi*2000/8000*(0:999)).*sin(2*pi*10/8000*(0:999));


mem=0;
envelop=[];

for i=1:length(x)
t=abs(x(i));
if(t>mem)
k=0.2;
else
k=0.01;
end;
mem=mem+(t-mem)*k;
envelop=[envelop mem];
end;

plot(x);
hold on;
plot(envelop,'r');
grid on;
RCray
Цитата(thermit @ Nov 2 2009, 22:22) *
Угу. Тока не наша, а ваша.

Наша вот.


Действительно, увидел ошибку в модели. А как наз-ся то, что вы привели?
thermit
Пиковый детектор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.