Как определить присутствие АМ?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Как определить присутствие АМ?
Никаких особых различий в обработке нет. Сейсмосигнал преобразуется в электрический -> АЦП -> обработка. В том и проблема, что АМ на уровне 1% уже мешает!
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Как определить присутствие АМ?
Если различий нет, то и мешать не должна. Поясните конкретнее, потому что из ваших ссылок я смог понять то что мешает не паразитная АМ, а множественные отражения от различных пород на различной глубине приводят к сложностям оценки глубины залегания и типа породы. Это известная проблема лчм сигналов, когда невозможно отличить временное запаздывание и частотный сдвиг. Кроме того, существует еще проблема при обработке ЛЧМ в момент смены цикла излучения, когда достигли верхней частоты и частота начинает убывать а не нарастать однако к паразитной АМ ни первая проблема ни вторая не имеет никакого отношения.Santik писал(а):Никаких особых различий в обработке нет. Сейсмосигнал преобразуется в электрический -> АЦП -> обработка. В том и проблема, что АМ на уровне 1% уже мешает!
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Как определить присутствие АМ?
Известно, что при применении линейного свип-сигнала, его частота 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-?). На функции автокорреляции амплитудно-модулированного сигнала на времени ? возникнет характерный импульс с амплитудой, зависящей от коэффициента модуляции.
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]);
Re: Как определить присутствие АМ?
Вместо ЛЧМ можно использовать фазоманипулированные CAZAC последовательности, у них паразитная амплитудная модуляция размажется по всему импульсному отклику как шум, 1% скорее всего даже не заметите.Santik писал(а):...
Если хочется использовать именно ЧМ импульсы то лучше взять последовательности Chu, они более совершенные по сравнению с ЛЧМ, АКФ имеет нулевую зону в районе главного импульса.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Как определить присутствие АМ?
Код: Выделить всё
%выделяю квадратруты
z = s1.*exp(1i*2*pi*(f0+df/2)*t);
Как описано в http://www.dsplib.ru/content/hilbertqua ... tquad.html
В Вашем примере частота АМ лежит вне спектра ЛЧМ!
А можно на реальных параметрах просчитать f = 14-114 Гц , Т = 7 секунд , fam=50 Гц , fд=500 Гц
И всё-таки это способ борьбы с АМ. А как надёжно определить присутствие АМ малого уровня?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Как определить присутствие АМ?
Вот пытаюсь вейвлет-анализ применить для определения АМ ЛЧМ сигнала.
В файле - картинка. Fm=10 Гц, Км=1% . Время АМ 1<t<2 сек
В файле - картинка. 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: Как определить присутствие АМ?
Это шутка?Бахурин Сергей писал(а):
Чтобы определить глубину АМ надо взять амплтудную огибающую и померить отношение глубину ам как
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: Как определить присутствие АМ?
Более подробно можно посмотреть на моём сайте.