Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вычленение огибающей частоты на фоне несущей
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Stefan1
Доброго времени суток!
Подскажите: как можно вычлененить 1-ю гармонику несущего сигнала на фоне модулирующего?
Т.е. при разложении сигнала в ряд Фурье, модулированного низкой частотой и выделении из него первой гармоники - у меня получается первая гармоника этого модулирующего сигнала, а мне нужна 1-я гармоника несущего сигнала.

Считаю в Матлабе так:
u=fft(U1); - раскладываю в ряд Фурье сигнал U1.
u([1 3:length(u)-1])=0; - обнуляю все элементы кроме второй гармоники.
idi0f=ifft(idi1f); - вывожу его первую гармонику.
Xenia
В МатЛабе (в пакете Communications) вроде бы есть специальная функция для этого - называется dmodce.
http://matlab.exponenta.ru/communication/book4/index.php

А еще ознакомьтесь с темой этого форума "Демодуляция в цифре".
Возможно, что-то из нее для вас окажется полезным.
V_G
Цитата(Stefan1 @ Nov 23 2012, 05:02) *
модулированного низкой частотой и выделении из него первой гармоники - у меня получается первая гармоника этого модулирующего сигнала, а мне нужна 1-я гармоника несущего сигнала.


Насколько я понял, это тема не про демодуляцию.
Уточнитесь со способом модуляции. Для правильно модулированного сигнала в спектре ВООБЩЕ не должно быть НЧ составляющих. Для АМ нужно искать надо не первую гармонику, а максимальную спектральную составляющую.
При ЧМ мне непонятем смысл 1-й гармоники несущего сигнала. Он там весь несущий, и его частота меняется по закону модуляции.
DRUID3
Цитата(Stefan1 @ Nov 22 2012, 21:02) *
Подскажите: как можно вычлененить огибающую частоту на фоне несущей цифровыми методами?

biggrin.gif да уж... Гоноровский ворочается в гробу наверное. "Цифровые методы" не изменились со времен открытия радио, это аппаратная часть менялась.

Нужно продетектировать как АМ, а потом работать с НЧ - это и есть огибающая. Детектировать АМ "цифровыми способами" просто. Если сигнал комплексный - то sqrt(I*I + Q*Q) для каждого отсчета + ФНЧ с соответствующей частотой среза (мы же по-сути длину комплексного вектора ищем). Если действительный - то abs(S) + ФНЧ.

Если нужен "реал-тайм" а ресурсов не хватает - есть аппроксимация для sqrt(I*I + Q*Q).

Можно и еще рядом способом - но это простейшие.
Stefan1
Цитата(V_G @ Nov 23 2012, 02:25) *
Уточнитесь со способом модуляции...

Сигнал выглядит так:
Нажмите для просмотра прикрепленного файла
У этого сигнала провал посередине. Период сигнала = 0.77 с. Мне нужно вывести на график 1-ю гармонику с тем же периодом 0.77 с.
При этом частот модуляции я не знаю, знаю только частоту несущей.

Цитата(V_G @ Nov 23 2012, 02:25) *
Если сигнал комплексный - то sqrt(I*I + Q*Q) для каждого отсчета + ФНЧ с соответствующей частотой среза


Что-то не совсем понятно. Можно чуть подробнее.
Что-то вроде этого надо записать?
z = ddemod(Idi, Fc, Fd, Fs, 'qask/arb', M, opt1, opt2, opt3, opt4);
Но тут я не знаю откуда взять параметры: Fd, Fs, M, opt1, opt2...
И как мне затем отсюда выразить 1-ю гармонику?
DRUID3
Цитата(Stefan1 @ Nov 23 2012, 09:14) *
Сигнал выглядит так:
...
Знаю я только частоту несущей.
...
Что-то не совсем понятно.

Да уж... Действительно непонятно. И непонятен сам закон модуляции - а как тогда можно что-то реконструировать? Что это у Вас на картинке? Огибающая? Или сам сигнал? И что тогда значит "несущая"? Первая гармоника?

Цитата(Stefan1 @ Nov 23 2012, 09:14) *
Можно чуть подробнее.

... не имеет смысла. Я думал у Вас нечто вроде радиоимпульса. А во вских
Цитата(Stefan1 @ Nov 23 2012, 09:14) *
ddemod()

я не разбираюсь.
Stefan1
Цитата(DRUID3 @ Nov 23 2012, 11:10) *
Да уж... Действительно непонятно. И непонятен сам закон модуляции - а как тогда можно что-то реконструировать? Что это у Вас на картинке? Огибающая? Или сам сигнал? И что тогда значит "несущая"? Первая гармоника?

Это сам сигнал. Несущая - имею ввиду частоту с которой следуют эти импульсы с провалом посередине (т.е. на графике период равен 0.77 с). Мне надо отфильтровать все высшие гармоники и низкочастотную составляющую модулирующего сигнала, оставить только 1-ю гармонику несущего сигнала (а не 1-ю гармонику модулирующего сигнала).
Если обнулить все высшие гармоники, кроме второй:
idi([1 3:length(idi)-1])=0;
то у меня будет 1-я гармоника НЧ модулирующего сигнала:
Нажмите для просмотра прикрепленного файла
А как раз ее мне и надо убрать.
DRUID3
Цитата(Stefan1 @ Nov 23 2012, 10:23) *
Это сам сигнал. Несущая - имею ввиду частоту с которой следуют эти импульсы с провалом посередине (т.е. на графике период равен 0.77 с).
...это тактовая - частота первой гармоники.

Цитата(Stefan1 @ Nov 23 2012, 10:23) *
Мне надо отфильтровать все высшие гармоники и низкочастотную составляющую модулирующего сигнала, оставить только 1-ю гармонику несущего сигнала (а не 1-ю гармонику модулирующего сигнала).

...ну так за чем дело стало?

Цитата(Stefan1 @ Nov 23 2012, 10:23) *
Если обнулить все высшие гармоники, кроме второй:
idi([1 3:length(idi)-1])=0;
то у меня будет 1-я гармоника НЧ модулирующего сигнала:
А как раз ее мне и надо убрать.

...ну так выделите 1-ую. или в вашей нумерации это уже постоянная составляющая? Так значит Вы уже выделили ту, что нужно. А колеблется она потому как это никакая не АМ, а обычный спектр сигнала и это самая обычная его первая гармоника - в разные периоды доля энергии сигнала на нее выпадает разная оттуда и колебания.
Stefan1
Цитата(DRUID3 @ Nov 23 2012, 11:44) *
...ну так выделите 1-ую. или в вашей нумерации это уже постоянная составляющая? Так значит Вы уже выделили ту, что нужно. А колеблется она потому как это никакая не АМ, а обычный спектр сигнала и это самая обычная его первая гармоника - в разные периоды доля энергии сигнала на нее выпадает разная оттуда и колебания.


Значит мне не она нужна. Мне нужна 1-я гармоника (имею ввиду обычную синусоиду, без высших гармоник) у которой должен быть период тот же, что и у несущей - 0.77 с.
DRUID3
Цитата(Stefan1 @ Nov 23 2012, 11:04) *
Значит мне не она нужна. Мне нужна 1-я гармоника (имею ввиду обычную синусоиду, без высших гармоник) у которой должен быть период тот же, что и у несущей - 0.77 с.

Я понял. Тем графиком(последним) Вы отрисовали гармонику(период показали) а я думал изменение этой гармоники от фрейма к фрейму. Ясно... Но... я так и не понял Ваших затруднений. Я не знаю синтаксис матлаба. Но в чем затруднение то? Сделайте FFT. Пройдитесь пороговой функцией(этож полноценный скриптовый язык) и выделите гармонику с номером 1 превышающую определенный порог.
Stefan1
Цитата(DRUID3 @ Nov 23 2012, 12:23) *
Пройдитесь пороговой функцией(этож полноценный скриптовый язык) и выделите гармонику с номером 1 превышающую определенный порог.

А что это за пороговая функция? Т.е. под порогом Вы имеете ввиду количество низкочастотных гармоник, которые надо отбросить для того, чтобы оставить нужную мне? И как это сделать в матлабе, в ручную подбирать по внешнему виду?
DRUID3
Цитата(Stefan1 @ Nov 23 2012, 11:39) *
А что это за пороговая функция? Т.е. под порогом Вы имеете ввиду количество низкочастотных гармоник, которые надо отбросить для того, чтобы оставить нужную мне? И как это сделать в матлабе, в ручную подбирать по внешнему виду?

Приведите график спектра всего своего сигнала включая постоянную составляющую...
Stefan1
Цитата(DRUID3 @ Nov 25 2012, 08:12) *
Приведите график спектра всего своего сигнала включая постоянную составляющую...

Привожу:
Нажмите для просмотра прикрепленного файла
Navstar
Кто нибудь считал огибающую по Гильберту?

Например нужно продетектировать АМ-сигнал
пробовал на делфи написал процедуру нахождения комплексно сопряженного сигнала. Огибающая - корень квадратный из сигнала и его огибающей. Результат отрицательныйsad.gif

procedure Hilbert(var a : Array of Single);
var
b: array[0..bitlim] of single;
theta,t:integer;
begin

for t:=0 to maxpoint do
begin
for theta:=0 to maxpoint do
if not(t-theta)=0 then b[t]:=(a[theta]/(t-theta));
b[t]:=b[t]/Pi
end;

for t:=0 to maxpoint do
a[t]:=b[t];

end;
Serg76
Гильберт позволяет получить комплексный аналитический сигнал из вещественного, строится как обычный КИХ фильтр. Чтобы получить НЧ огибающую Вашего сигнала, необходимо снести сигнал с несущей в 0, далее sqrt(I*I + Q*Q) для каждого отсчета + ФНЧ с соответствующей частотой среза, т.е. все так как писал выше DRUID3.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.