Как определить присутствие АМ?

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Santik »

Никаких особых различий в обработке нет. Сейсмосигнал преобразуется в электрический -> АЦП -> обработка. В том и проблема, что АМ на уровне 1% уже мешает!

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Бахурин Сергей »

Santik писал(а):Никаких особых различий в обработке нет. Сейсмосигнал преобразуется в электрический -> АЦП -> обработка. В том и проблема, что АМ на уровне 1% уже мешает!
Если различий нет, то и мешать не должна. Поясните конкретнее, потому что из ваших ссылок я смог понять то что мешает не паразитная АМ, а множественные отражения от различных пород на различной глубине приводят к сложностям оценки глубины залегания и типа породы. Это известная проблема лчм сигналов, когда невозможно отличить временное запаздывание и частотный сдвиг. Кроме того, существует еще проблема при обработке ЛЧМ в момент смены цикла излучения, когда достигли верхней частоты и частота начинает убывать а не нарастать однако к паразитной АМ ни первая проблема ни вторая не имеет никакого отношения.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Santik »

Известно, что при применении линейного свип-сигнала, его частота f(t) изменяется по закону:
f(t)=fн+?f/T?t (1)
fн , fк - начальная и конечная частоты свип-сигнала,
?f=fк-fн - частотный диапазон,
Т - длительность свип-сигнала,
df/dt=?f/T - скорость изменения частоты свип-сигнала (скорость развёртки).
При амплитудной модуляции свип-сигнала f(t) неким сигналом с частотой Fam неизбежно возникают сигналы с суммарной f(t)+Fam и разностной f(t)-Fam частотой. Амплитуда этих сигналов зависит от коэффициента модуляции. Если df/dt > 0, то наибольшую опасность представляет разностная частота. На некотором времени ? начнёт выполняться равенство:
f(?)-Fam=fн (2)
или fн+?f/T??-Fam=fн (3)
Из уравнения (3) легко найти выражение для ?:
?=Fam/?f?T, или ?=Fam/(df?dt) (4)
Таким образом, начиная с момента времени ?, разностный сигнал с частотой f(t)-Fam (при ??t?T) будет в точности соответствовать исходному сигналу f(t) (при 0?t?T-?). На функции автокорреляции амплитудно-модулированного сигнала на времени ? возникнет характерный импульс с амплитудой, зависящей от коэффициента модуляции.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Бахурин Сергей »

Да вы правы действительно будут пики в корреляционном отклике.

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

Код: Выделить всё

f0 = 20; %начальная частота (Гц)
df = 4;  %ширина полосы (Гц)

N = 4096; %количество точек сигнала
Fs = 100; %частота дискретизации (Гц)

T = N/Fs;
t = (0:N-1)/Fs; %время

%формирую идеальный лчм
phi = 2*pi*f0*t+2*pi*df*t.^2/(2*T);
s0 = cos(phi);

%добавляю паразитную ам
am = 1+0.01*cos(2*pi*0.5*t) ;

%реальный лчм с паразитной ам и шумом
s1 = am.*s0+ randn(1,N)*0.005; 

%выделяю квадратруты
z = s1.*exp(1i*2*pi*(f0+df/2)*t);

%формирую ких фильтр с линейной фчх
K = 1024;
h = fir1(K,2*df/Fs,'low');

%фильтрую
iq = conv(h,z);

%компенсирую паразитную ам
s2 = 0.5*s1./abs(iq(K/2:N+K/2-1));

%окно для того чтобы слабые паразитные пики не перялись в боковых лепестках
w = blackman(N)'; 

%вкф без компенсации ам
c1 = fftshift(real(ifft(fft(s0.*w).*conj(fft(s1.*w)))));

%вкф с компенсацией ам
c2 = fftshift(real(ifft(fft(s0.*w).*conj(fft(s2.*w)))));

%вывожу не график вкф без компенсации (синий) и с компенсацией (красный)
plot(1:N, 20*log10(abs(c1)),1:N, 20*log10(abs(c2)),'r'), axis([0,N,-100,60]);


Суть заключается в том, что производится выделение амплитудной огибающей принятого сигнала, после чего принятый сигнал делится на свою собственную амплитудную огибающую. И после этого сигнал подается на коррелятор. Результат выполнения на графике. После компенсации боковые пики исчезли
cf.png
cf.png (15.62 КБ) 10277 просмотров

petrov
Сообщения: 30
Зарегистрирован: 31 янв 2011, 13:02

Re: Как определить присутствие АМ?

Сообщение petrov »

Santik писал(а):...
Вместо ЛЧМ можно использовать фазоманипулированные CAZAC последовательности, у них паразитная амплитудная модуляция размажется по всему импульсному отклику как шум, 1% скорее всего даже не заметите.

Если хочется использовать именно ЧМ импульсы то лучше взять последовательности Chu, они более совершенные по сравнению с ЛЧМ, АКФ имеет нулевую зону в районе главного импульса.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Santik »

Код: Выделить всё

%выделяю квадратруты
z = s1.*exp(1i*2*pi*(f0+df/2)*t);
А можно не на среднюю частоту (f0+fк)/2 умножать, а на fд/4 ?
Как описано в http://www.dsplib.ru/content/hilbertqua ... tquad.html

В Вашем примере частота АМ лежит вне спектра ЛЧМ!
А можно на реальных параметрах просчитать f = 14-114 Гц , Т = 7 секунд , fam=50 Гц , fд=500 Гц
И всё-таки это способ борьбы с АМ. А как надёжно определить присутствие АМ малого уровня?

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Santik »

Вот пытаюсь вейвлет-анализ применить для определения АМ ЛЧМ сигнала.
В файле - картинка. Fm=10 Гц, Км=1% . Время АМ 1<t<2 сек
Вложения
АМ10.rar
(60.83 КБ) 525 скачиваний

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Бахурин Сергей »

Santik писал(а): И всё-таки это способ борьбы с АМ. А как надёжно определить присутствие АМ малого уровня?
Чтобы определить глубину АМ надо взять амплтудную огибающую и померить отношение глубину ам как

mAM = (Amax-Amin)/(Amax+Amin)

как это описано в этой статье (рисунок 5)

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Santik »

Бахурин Сергей писал(а):
Чтобы определить глубину АМ надо взять амплтудную огибающую и померить отношение глубину ам как
mAM = (Amax-Amin)/(Amax+Amin)
как это описано в этой статье (рисунок 5)
Это шутка?
Мне надо определить АМ ЛЧМ сигнала и параметры: 1.Частоту модуляции, 2. Глубину АМ, как функцию от времени
Всё это в присутствии помех.
Сделать это можно используя вейвлет-анализ, что я и пытался показать своей картинкой.
Оконное Фурье не очень для этой задачи подходит!
Вот пример сигнала с АМ около 50 Гц.
Fd=500 Гц N=3500 ЛЧМ 14-114 Гц
Вложения
Sweep_GDAPS-4.rar
(6.7 КБ) 527 скачиваний

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Как определить присутствие АМ?

Сообщение Santik »

Более подробно можно посмотреть на моём сайте.

Ответить