Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерение параметров радиосигнала
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
COCAINE
Пишу диплом на эту тему.
пока нидупля, но потенциал есть laughing.gif

Для начала хотелось бы собрать в кучу все, что есть в сети на эту тему. Основное направление - защита информации. Т.е. по большому счету определение вида модуляции.

На первом этапе сложные виды модуляции трогать не буду, рассмотрю АМ, ЧМ, ФМ и импульсную.
В ИРКОСовской книге - "Радиомониторинг: задачи, методы, средства." (есть в эл. виде), затрагивается эта тема, но очень сжата.

что могли бы посоветовать из литературы - книги, статьи, работы?..
petrov
Вот вам готовый диплом(только перевести):

http://www.cs.tut.fi/sgn/arg/rosti/rosti_mscthesis.pdf
COCAINE
г) почитаем, пасиб smile.gif
RadioJunior
COCAINE, не могли бы дать ссылку или выслать мне на почту "В ИРКОСовской книге - "Радиомониторинг: задачи, методы, средства." (есть в эл. виде), затрагивается эта тема, но очень сжата." ?
COCAINE
глянтьте здесь - http://rbook.ucoz.ru/news/2008-12-26-343

Да, и ребята, как посмотреть спектр, ну, предположим, синуса в симулинке

схема такая

signal generator (два, один с частотой 100Гц, второй 50Гц) - Sum - Zero-Order Hold - Spectrum Scope. При запуске пустое окно... никаких состовляющих 100 и 50 не вижу... что не так? какие настройки?

г) разобрался smile.gif
Pathfinder
Дак тема-то какая конкретно? "Измерение параметров радиосигнала", "защита информации" или "по большому счету определение вида модуляции"?
Что касается определения вида модуляции, на сегодняшний день единственная монография на эту тему - Azzouz E.E., Nandi A.K. - Automatic Modulation Recognition of Communication Signals, да и та какая-то несерьёзная, ибо большая её часть посвящена нейросетевым алгоритмам. Кроме того, в ней нет сколь-нибудь серьёзного обзора других подходов. Но посмотреть в любом случае стоит, хотя бы, чтобы иметь представление...
COCAINE
Цитата
Дак тема-то какая конкретно? "Измерение параметров радиосигнала", "защита информации" или "по большому счету определение вида модуляции"?

Специальность ТЗИ. Я выбрал тему радиомониторинг эфира и сузил все напрвление в "идентификацию сигналов". Для начала нужна разобраться с определение вида модуляции неизвестного сигнала... со сложными сигналами понятно - жопа, а вот с простыми вроде тема подъемная.
RadioJunior
COCAINE, за ссылку огромное спасибо!

А у вас какие требования к вашему устройству "идентификации сигналов", в частности:

1. минимальное отношение сигнал-шум, при котором возможна идентификация
2. верность идентификации (минимальная ошибка идентификации)
3. быстрота идентификации (максимальное время для принятия верного решения)
4. вероятность ложной идентификации

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

И еще
Цитата(COCAINE @ Feb 27 2009, 11:04) *
... со сложными сигналами понятно - жопа

http://ali.mansour.free.fr/PDF/DSP2005.pdf вроде не полная...
COCAINE
Цитата
1. минимальное отношение сигнал-шум, при котором возможна идентификация
2. верность идентификации (минимальная ошибка идентификации)
3. быстрота идентификации (максимальное время для принятия верного решения)
4. вероятность ложной идентификации

этих требований нет. Может действительно ввести их...
RadioJunior
Цитата(COCAINE @ Feb 27 2009, 12:57) *
этих требований нет. Может действительно ввести их...

Конечно! Иначе цель дипломного проекта не понятна (разработай то, незнамо что...). Поговорите с научным руководителем и попросите его более предметно и конкретно поставить Вам задачу (а дальше Вы уже сами разберетесь).
COCAINE
Блин, пол дня убил на то, что бы повтыкать на спектр сигнала в симулинке...
Вообщем, такому же распи#дяю как и мне, которому впадляк читать умные книжки, точно нужно будет (:

1. Для начала задаем параметры расчета (Simulation -> Configuration Parameters...):
Время расчета:
Start time: 0.0
Stop time: 1.0

Максимальный шаг:
Max. step size: (1/100)/100 (т.е на частоте 100 будем иметь 100 отсчетов)

2. Собираем такую схему:


Пути элементов не указываю, т.к. есть поиск.

Параметры следующие:
Signal Generator :
Wave form: Sine
Amplitude: 1
Frequency: 50

Signal Generator 1:
Wave form: Sine
Amplitude: 2
Frequency: 100

Zero-Order Hold (этот элемент нужен для дискретизации сигнала, т.к. на Spectrum Scope можно подавать только дискретный сигнал):
Sample time: 1/512
Spectrum Scope
Ставим галочку в боксе Buffer input
Buffer size: 512
Buffer overlap: 16


3. Жмем на Play (черный треугольник на панеле задач). На появившимся графике клацаем правой кнопкой миши и выбираем Autoscale
Втычим че получилось:


Осциллограф использовал для наглядности
leksa
Статьи по теме можно в гугле поискать, например, вот так:
google it
А вот что из описанного/предложенного в существующих работах по теме работает в реальных условиях, это отдельный вопрос.
С учетом специфичности темы, разрабатываемой в основном в рамках развед служб и служб контроля, вполне может быть, что некоторые(многие?) реально работающие результаты не публикуются.
Хотя в недавнее время тема получила новое дыхание в рамках систем связи 4G, где от абонентских станций может требоваться автоматическое определение типа модуляции принимаемого сигнала. Но это скорее задача классификации систем связи.
А результаты работы классификаторов очень наглядно оцениваются по так называемой матрице совпадений.
Строки матрицы - указывают на подаваемые на классификатор сигналы, например АМ ЧМ ФМ, а столбцы на принятые решения классификатором.
Вот такой результат у хорошего классификатора:
___АМ ЧМ ФМ
АМ 100 0 0
ЧМ 0 100 0
ФМ 0 0 100
А вот такой результат у плохого:
___АМ ЧМ ФМ
АМ 50 30 20
ЧМ 40 80 0
ФМ 5 45 50
Ну еще конечно при каком ОСШ все это работает, а как он будет реагировать на изменение параметров модулирующих сигналов, а как будет классифицировать другие типы модуляций, а в каком канале связи сигнал передавался, и т.д.
Так что задачу желательно формулировать точно.
По поводу простых видов модуляций... Вот аналоговая ЧМ - это простой вид?
Если да, то как будет звучать его определение, чем он отличается от, например, 2 позиционной ЧТ телеграфии,
и, например, сигнал аналоговой ЧМ, модулированный меандром, как отличить от ЧТ2?
Это я к тому, что свойства сигналов аналоговых модуляций сильно зависят от модулирующего сигнала, и учесть это не так уж и просто может быть.
Да, и классификатор все же лучше, наверно, на языке программирования писать, в том же матлабе, а не в симулинке.
COCAINE
Кому интересна тема, надыбал очень интересные статейки

Анализ сигналов, практический подход
Часть 1
Часть 2
Часть 3

Работаем с сигналами
Часть 1
Часть 2
Часть 3
Часть 4
Часть 5
Часть 6
COCAINE
Вообщем пора начинать чета делать (: ы

ммм... идея такая - сначала хочу смоделировать модуляторы ЧМн и ФМн, поиграться с их спектрами, поузнавать их... юзая те статейки, что выше

Как на ваш вгзляд, где это рациональней делать, что бы в дальнейшем удобней было? В Матлабе, в Симулинке или на Делфи?
Serg76
Цитата(COCAINE @ Mar 2 2009, 20:39) *
Вообщем пора начинать чета делать (: ы

ммм... идея такая - сначала хочу смоделировать модуляторы ЧМн и ФМн, поиграться с их спектрами, поузнавать их... юзая те статейки, что выше

Как на ваш вгзляд, где это рациональней делать, что бы в дальнейшем удобней было? В Матлабе, в Симулинке или на Делфи?

на мой взгляд среда разработки не имеет значения делайте где вам проще. гораздо больше внимания надо уделить непосредственно работе с сигналом. я бы начал с определения параметров ФМ сигналов. там проще строятся демодуляторы. они могут понадобиться при анализе
leksa
Цитата
Вообщем пора начинать чета делать (: ы

ммм... идея такая - сначала хочу смоделировать модуляторы ЧМн и ФМн, поиграться с их спектрами, поузнавать их... юзая те статейки, что выше

Как на ваш вгзляд, где это рациональней делать, что бы в дальнейшем удобней было? В Матлабе, в Симулинке или на Делфи?


я выбрал бы Матлаб по следующим причинам:
Матлаб/Симулинк - для этой задачи взял бы матлаб, так как в нем можно очень просто в рамках одной программы как работать с сигналами, так и создавать струкурные алгоритмы, без которых классификатор как-то сложно представить. Симулинк как-то больше для моделирования/прототипирования реал-тайм систем.
Матлаб/Дельфи - Опять же матлаб, так как в нем множество готовых функций, особенно если есть тулбоксы communications, signal processing, которые можно использовать на этапе "обкатки/тестирования" идей, не тратя драгоценное время на написание функций, которые возможно и не пойдут в окончательный вариант.
Так что по совокупности, имхо, матлаб.
Как вариант, сейчас набирает популярность python, как альтернатива Матлабу, особенно с модулями NumPy, SciPy.
COCAINE
leksa
спасибо. smile.gif
leksa
Цитата(COCAINE @ Mar 2 2009, 21:38) *
leksa
спасибо...
С Матлабом практически не работал, поэтому вопрос - позволит ли он создать модулятор с конечным результатом - синал в *.wav

Пожалуйста smile.gif
Позволит.
Например, вот так:
script %Test_PSK
clear
close all
clc

nSamp = 8; numSymb = 1000;
M = 4; SNR = 14; a=0.5;
msg_orig = randsrc(numSymb, 1, 0:M-1);% случайная последовательность
y = pskmod(msg_orig,M);% Собственно, модулятор, функция из comm toolbox, можешь сделать свой вариант
figure(1)%смотрим графики
plot(real(y),'b- .'),grid on,hold on
plot(imag(y),'r- .'),grid on,hold off
msg_tx = rcosflt(y,1,nSamp,'fir/sqrt',a);% формирующий фильтр - корень из приподн косинуса с срезом 0,5.
figure(2)
plot(real(msg_tx),'b- .'),grid on,hold on
plot(imag(msg_tx),'r- .'),grid on,hold off
msg_txn=awgn(msg_tx,SNR,'measured');% добавляем белый шум, опять же функция из тулбокса
figure(3)
plot(real(msg_txn),'b- .'),grid on,hold on
plot(imag(msg_txn),'r- .'),grid on,hold off
figure(4)
scatterplot(msg_txn,nSamp,0,'b .')
msg_txn=(msg_txn*0.9)/max(abs(msg_txn));%перед записью в файл важно сделать нормировку, чтобы элементы массива не превышали по модулю 1, иначе сигнал обрежется по амплитуде (особенности работы функции wavwrite)
Fs=2400*8;
bits_resol=16;
FILENAME=['PSK_Signal_numSymb=' num2str(numSymb) '.wav'];

wavwrite([real(msg_tx) imag(msg_tx)],Fs,bits_resol,FILENAME);%чтобы записать комплексный сигнал в стерео wav надо представить его в виде матрицы с 2 столбцами.

[signal_from_wav,Fs,bits]=wavread(FILENAME);% а это уже чтение из файла

signal_from_wav=signal_from_wav(:,1)+j*signal_from_wav(:,2);% обратно из матрицы с 2 столбцами в комплексный сигнал.
figure(5)%смотрим сигнал из файла
plot(real(signal_from_wav),'b- .'),grid on,hold on
plot(imag(signal_from_wav),'r- .'),grid on,hold off

Такой вот туториал wink.gif
По(д)смотреть чужой код для матлаба можно здесь
обмен файлами для матлаб
Удачи!
COCAINE
ух ты (: я удалил сообщение, т.к. нашел в Сергиенко как это делается (:
терь будет еще легче (: snx за скрипт smile.gif
RadioJunior
Ищу книжку "Современная радиоэлектронная борьба. Вопросы методологии". У кого-нибудь есть электронная версия? Буду признателен.
COCAINE
RadioJunior
попробуйте спросить тут Докуметация по СВЧ-технике

leksa
поковырялся немного в матлабе. Попробывал ваш вариант модулятора.
пару вопросов:
1. Я все никак не могу понять про комплексный сигнал... могли бы вы популярно объяснить что это такое?
2. Для чего нужен формирующий фильтр?
leksa
leksa
поковырялся немного в матлабе. Попробывал ваш вариант модулятора.
пару вопросов:
1. Я все никак не могу понять про комплексный сигнал... могли бы вы популярно объяснить что это такое?
2. Для чего нужен формирующий фильтр?
[/quote]
по 1 пункту:
посмотрите в книгах, которые рекомендовали в этой теме, например:
http://electronix.ru/forum/index.php?showt...%E0%E9%EE%ED%F1
Баскакова и Гоноровского, например.
Вот здесь по простому объясняют:
http://wapedia.mobi/en/Quadrature_amplitude_modulation
Там типа про КАМ, но вы на этом не зацикливайтесь на месте I и Q могут быть любые низкочастотные сигналы
В двух словах обьяснить сложно.
Физический смысл в том, что на одной несущей частоте можно передавать такой сигнал:
g(t)=I(t)*cos(wt)-Q(t)*sin(wt).
Если на приемной стороне такой сигнал умножить на cos(wt), то получится следующее:
I(t)/2+(I(t)*cos(2wt)-Q(t)*sin(2wt)).То есть низкочастотный сигнал I(t) и два высокочастотных сигнала. Пропускаем через ФНЧ, на выходе остается только низкочастотный сигнал I(t).
А если умножим принятый сигнал на sin(wt) и пропустим через ФНЧ то получим Q(t). То есть I(t) и Q(t) можно разделить на приемной стороне.
Используя математику можно доказать что принятый сигнал можно еще представить в таком виде:
g(t)=a(t)*cos(wt+p(t))
где a(t)=sqrt(I(t)^2+Q(t)^2)
p(t)=arctan(Q(t)/I(t)), а также, что есть такое равенство:
g(t)=Re(v(t)*exp(j*wt))
где v(t)=I(t)+j*Q(t).
То есть вся полезная информация какая есть в g(t), представлена в I и Q, несущее колебание это просто переносчик информации.
В тоже время эту же полезную информацию можно записать в виде комплексного числа v(t), причем оказывается, что v(t) можно представить еще и в таком виде. v(t)=a(t)*exp(j*p(t)).
То есть модулированному сигналу можно поставить в соответствие эквивалентное комплексное число, с которым во многих случаях оказывается проще работать чем с сигналами на поднесущих. Более того, умножение данного комплексного сигнала на A2*exp(j*w1*t+phi)
эквивалентно сдвигу исходного сигнала по частоте несущей на w1 и по фазе на phi и увеличению уровня огибающей в A2.
Работая с комплексным сигналом легко реализовывать алгоритмы приема сигналов как цифровой, так и аналоговой модуляции.
В общем, устал уже писать, спать пора, надеюсь как-то прояснил картину...
По 2 пункту:
Формирующий фильтр выполняет 2 задачи.
1 - Подавляет значительную часть внеполосных составляющих модулированного сигнала, чтобы минимизировать соканальные помехи, уменьшить требуемую полосу для передачи, повысив спектральную эффективность.
2 - Формирует такую форму импульса модулирующего сигнала, с которой согласован согласованный фильтр приемника.
Помимо этого импульсная характеристика должна быть подобрана таким образом, чтобы на выходе согласованного фильтра отсутствовала межсимвольная интерференция.
В общем надо читать Прокиса, Скляра, если на русском.
На английском мне понравилась такая книга: Communication systems. S.Haykin
Emule, torrents, rapidlibrary.com в помощь, где точно скачать не знаю.
RadioJunior
Цитата(COCAINE @ Mar 5 2009, 21:32) *
1. Я все никак не могу понять про комплексный сигнал... могли бы вы популярно объяснить что это такое?
2. Для чего нужен формирующий фильтр?

Тут вы все поймете http://st.ess.ru/publications/articles/digmodch/serdukov.pdf
COCAINE
Цитата
На английском мне понравилась такая книга: Communication systems. S.Haykin

http://rapidshare.com/files/3706020/Commun...-4ed-Haykin.zip
Serg76
Цитата(COCAINE @ Mar 5 2009, 21:32) *
1. Я все никак не могу понять про комплексный сигнал... могли бы вы популярно объяснить что это такое?

Вам надо уяснить понятия аналитического сигнала и комплексной огибающей. В нете и книгах по основам радиотехники и ЦОС об этом написано достаточно
leksa
Цитата(COCAINE @ Mar 6 2009, 13:26) *

Спасибо за ссылку, правда у меня то она есть, но может еще кому пригодится.
В смысле я рекомендовал её к прочтению, там вопрос данный раскрыт, и неплохо. Только про комплексную огибающую в этой книге надо в приложении смотреть.
COCAINE
Вот за что люблю зарубежную литературу (и не только литературу) так это за просту изложения.
Наши светила науки как наворотят блин, хер че поймешь. Такое впечатление, что они книги пишут только для себя, и то ради того, что бы паказать как много они знают формул (:
Вообщем я к чему... все очень просто и понятно написано про квадратурные сигналы в этой пэдээфке. Но что самое интересное у Лайонса есть книга, переведена она на русский и есть в эл. виде.
Настолько все просто и понятно... я даже мягко говоря а#уел smile.gif Кому надо она здесь http://depositfiles.com/ru/files/t2996640y (ессиче, линк не мой, спер с какогото сайта... ы)

Цитата
понятия аналитического сигнала и комплексной огибающей

ок, проштудируем (:
что-то на эту тему видел у Сергиенка (еще одна великолепнишая книга на русском, что очень большая редкость)
Serg76
Цитата(COCAINE @ Mar 6 2009, 16:27) *
ок, проштудируем (:
что-то на эту тему видел у Сергиенка (еще одна великолепнишая книга на русском, что очень большая редкость)

Как раз там это описано довольно внятно и понятно
COCAINE
leksa
хм ...

Цитата
Физический смысл в том, что на одной несущей частоте можно передавать такой сигнал:
g(t)=I(t)*cos(wt)-Q(t)*sin(wt).
Если на приемной стороне такой сигнал умножить на cos(wt), то получится следующее:
I(t)/2+(I(t)*cos(2wt)-Q(t)*sin(2wt)).То есть низкочастотный сигнал I(t) и два высокочастотных сигнала. Пропускаем через ФНЧ, на выходе остается только низкочастотный сигнал I(t).
А если умножим принятый сигнал на sin(wt) и пропустим через ФНЧ то получим Q(t). То есть I(t) и Q(t) можно разделить на приемной стороне.
Используя математику можно доказать что принятый сигнал можно еще представить в таком виде:
g(t)=a(t)*cos(wt+p(t))
где a(t)=sqrt(I(t)^2+Q(t)^2)
p(t)=arctan(Q(t)/I(t)), а также, что есть такое равенство:
g(t)=Re(v(t)*exp(j*wt))
где v(t)=I(t)+j*Q(t).
То есть вся полезная информация какая есть в g(t), представлена в I и Q, несущее колебание это просто переносчик информации.
В тоже время эту же полезную информацию можно записать в виде комплексного числа v(t), причем оказывается, что v(t) можно представить еще и в таком виде. v(t)=a(t)*exp(j*p(t)).
То есть модулированному сигналу можно поставить в соответствие эквивалентное комплексное число, с которым во многих случаях оказывается проще работать чем с сигналами на поднесущих. Более того, умножение данного комплексного сигнала на A2*exp(j*w1*t+phi)


ладно, допустим это все понятно... хотя нет, не совсем... это что получается, квадратурные (комплексные) сигналы используются для увеличение информативности канала в 2 раза (т.к. I и Q передаются одновременно)? Т.е. для передачи нам нужно разделить все сообщение на I и Q составляющие, получить сигнал вида - g(t)=I(t)*cos(wt)-Q(t)*sin(wt) и в таком виде передать его в эфир (занимая одну несущую)? ы

вроде логично (: ы но... тогда почему в вашем примере два графика - рил и имидж? Какое отношение PSK-сигнал имеет к комплексным сигналам? хм 05.gif вот тут я теряюсь... Если мои рассуждения верны - то мы должны получить ТОЛЬКО синус с изменяющейся фазой... или не так? от куда там взялись два графика?

вот тут вопросов не возникат
petrov
Цитата(COCAINE @ Mar 7 2009, 23:14) *
leksa
ладно, допустим это все понятно... хотя нет, не совсем... это что получается, квадратурные (комплексные) сигналы используются для увеличение информативности канала в 2 раза (т.к. I и Q передаются одновременно)? Т.е. для передачи нам нужно разделить все сообщение на I и Q составляющие, получить сигнал вида - g(t)=I(t)*cos(wt)-Q(t)*sin(wt) и в таком виде передать его в эфир (занимая одну несущую)? ы

вроде логично (: ы но... тогда почему в вашем примере два графика - рил и имидж? Какое отношение PSK-сигнал имеет к комплексным сигналам? хм 05.gif вот тут я теряюсь... Если мои рассуждения верны - то мы должны получить ТОЛЬКО синус с изменяющейся фазой... или не так? от куда там взялись два графика?


Любой сигнал представляется в комплексном виде, разлагается по ортогональным сигналам синус и косинус, почему и представлятся точкой в декартовой системе координат. На каждом символьном интервале вы получаете не только синус а сумму 2-x базовых векторов соответствующую координатам передаваемой точки сигнального созвездия.

Сергиенко не самая лучшая книжка по которой можно что-то понять.

Похоже не по специальности диплом, тяжело будет если вникать.
COCAINE
пути назад уже нет (: надо както выкручиваться smile.gif к тому же тема очень интересна

а у Сергиенка есть один большой плюс - коды Матлаба. Разбираешь с сигналами за одно и матлаб учишь
COCAINE
хорошо, тогда начнем с начала.
имеем наш ИСХОДНЫЙ сигнал:

u(t)=A(t)*cos(wt+phi(t))

поскольку
cos(wt+phi(t))=exp{j*(wt+phi(t))}/2+exp{-j*(wt+phi(t))}/2
то можем записать
u(t)=A(t)/2*(exp{j*(wt+phi(t))}+exp{-j*(wt+phi(t))})=A(t)*cos(wt+phi(t))
или, что эквивалентно
u(t)=Re[A(t)*exp{j*(wt+phi(t))}]=A(t)*cos(wt+phi(t))
В таком случае для меня информативен только сиганл plot(real(msg_tx),'b- .'),grid on,hold on (из примера лекса), а сигнал plot(Im(msg_tx),'b- .'),grid on,hold on - просто комплексно сопряженный (точно такой же, но сдвинутый на pi/2) с plot(real...[/i]. так что ле? Т.е. для анализа спектра, в том виде в котором я его вижу на экране спектроанализатора, нужно брать только действительную часть?

ну или по другому:
exp{j*a}=cos(a)+j*sin(a) => домножая левую и правую часть на A(t) и угол заменяя на wt+phi =>
A(t)*exp{j*(wt+phi(t))}=A(t)*cos(wt+phi(t))+A(t)*j*sin(wt+phi(t)) => беря вещественную часть =>
Re[A(t)*exp{j*(wt+phi(t))}]=Re[A(t)*cos(wt+phi(t))+A(t)*j*sin(wt+phi(t))]=A(t)*cos(wt+phi(t))
leksa
Цитата(COCAINE)
ладно, допустим это все понятно... хотя нет, не совсем... это что получается, квадратурные (комплексные) сигналы используются для увеличение информативности канала в 2 раза (т.к. I и Q передаются одновременно)?

I и Q действительно передаются одновременно, и на одной несущей действительно можно передать два независимых сообщения.
Цитата(COCAINE)
Т.е. для передачи нам нужно разделить все сообщение на I и Q составляющие, получить сигнал вида - g(t)=I(t)*cos(wt)-Q(t)*sin(wt) и в таком виде передать его в эфир (занимая одну несущую)? ы

Да, можно сделать так. Это один вариант.
Например, в моем скрипте формирования psk сигнала вся обработка велась в виде v(t)=I(t)+j*Q(t), то есть до формирования сигнала g(t) (с несущей) дело не дошло. Чтобы передать такой сигнал v(t) по эфиру, надо подать сигналы I(t) и Q(t) на digital up converter (квадратурный модулятор). На его выходе сформируется уже сигнал g(t)=I(t)*cos(w0*t)-Q(t)*sin(w0*t) (вещественный). Затем сигнал проходит через ЦАП, потом, используя смесители, частота несущей повышается до необходимой, сигнал проходит усилитель мощности и уходит на антенну и в эфир.
Второй вариант формировать сигнал сразу в таком виде: g(t)=a(t)*cos(w0*t+p(t)), а потом подавать на АЦП. Можно ли так делать? Можно! И если стоит задача сделать модулятор psk, то может и без разницы, как формировать, так или через комплексный сигнал.
Но вот уже при приеме цифровая обработка сигнала в комплексной форме гораздо более удобна и привлекательна, алгоритмы приема и синхронизации проще реализуются для комплексной формы представления сигналов.
Цитата(COCAINE)
вроде логично (: ы но... тогда почему в вашем примере два графика - рил и имидж? Какое отношение PSK-сигнал имеет к комплексным сигналам? хм вот тут я теряюсь... Если мои рассуждения верны - то мы должны получить ТОЛЬКО синус с изменяющейся фазой... или не так? от куда там взялись два графика?

вот тут вопросов не возникат

В моем примере есть реал и имидж все по той же причине - так как в моем примере вся обработка велась в виде v(t)=I(t)+j*Q(t), то есть до формирования сигнала g(t) (с несущей) дело не дошло. В моем примере вообще нет ни синусов, ни косинусов, ни несущей частоты. Такой сигнал, как в моем скрипте после функции awgn, представляет собой сигнал на выходе квадратурного демодулятора при условии абсолютно точной синхронизации по фазе и частоте несущей.Чтобы перейти к сигналу g(t) (с несущей) надо делать так, как я выше уже описывал.
А в примере из книги, что вы привели формируется сразу сигнал g(t)=a(t)*cos(w0*t+p(t)).
Может возникнуть вопрос - а зачем нужно комплексное представление, как в моем примере? А затем что большинство алгоритмов приема и синхорнизации, используемых сегодня, и цифровые схемы приема на базе квадратурных демодуляторов, типа digital down converter-ов, предполагают обработку комплексного сигнала.
Простой пример.
Часто при цифровом приеме требуется осуществить небольшую подстройку принимаемого сигнала по частоте, причем в цифровом виде, так как аналоговый тюнер перестраивается с большим дискретным шагом, а плавная подстройка частоты делается в цифре
Если сигнал представлен в вещественном виде g(t)=a(t)*cos(w0*t+p(t)), то вам придется писать громоздкий алгоритм, имитирующий работу аналогового смесителя сигналов. (умножение на cos(w_подстр*t), фильтрация нужных результатов произведения, да еще частота дискретизации д б достаточно высока, чтобы не возник aliasing.)
А если сигнал представлен в комплексном виде v(t)=I(t)+j*Q(t) его достаточно будет умножить на exp(-j*w_подстр*t) и подстройка сделана!
Обратите внимание также, что ДПФ комплексных сигналов не симметричен, то есть составляющие ДПФ на положительных и отрицательных частотах разные. В отличие от вещественного сигнала для которого отсчеты ДПФ на положительных частотах комлпексно-сопряжены отсчетам на отрицательных.
Цитата(COCAINE)
хорошо, тогда начнем с начала.
имеем наш ИСХОДНЫЙ сигнал:
...

Тут вы что-то намудрили.
У вас как с английским? Если по английски можете читать, то почитайте в книге Communication Systems автора Simon Haykin приложение (appendix) 2 который называется Representation of signals and systems, особенно п2.4 Complex Representation.
Желательно с ручкой разобрать формулы.

Вот еще конкретный пример.
Если нужна 4х позиционная psk.
Вариант 1.
dibit I(t) Q(t)
00 0 1
01 1 0
11 0 -1
10 -1 0
далее формируем или v(t)=I(t)+j*Q(t), если нас устроит это представление, эквивалентное передаче на любой несущей.
или формируем g(t)=I(t)*cos(w0*t)-Q(t)*sin(w0*t), если например требуется потом подать такой сигнал на ЦАП и в эфир передать.
Вариант 2.
dibit p(t) a(t)
00 0 1
01 pi/2 1
11 pi 1
10 3*pi/2 1
далее формируем g(t)=a(t)*cos(w0*t+p(t)).

Но даже если я формировал вторым способом сигнал, если я потом извлеку из него I(t) и Q(t), окажется, что они принимают значения -1 0 1, то есть это просто два предстваления одного и того же.
COCAINE
Спасибо, leksa
в вопросе действительно секу хило... можно было бы открыть учебник и разобраться во всем от начала до конца, но времени увы мло dry.gif
но вцелом не сомневаюсь, что тему подниму

еще раз спасибо (:

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

оно то возможно и так... но сейчас задача ставиться сформировать сигналы разных видов модуляции и проанализировать их, выбрав подходящий алгоритм идентификации. А со временем думаю инфа о комплексных сигналах уложиться
leksa
Пожалуйста. smile.gif
Посмотрите предыдущее, я пример добавил.
Если времени мало, может действительно ограничить себя подьемной работой, чтобы успеть в срок.
Да и в той книге, о которой я говорил, там всего-то 20 страниц по этой теме разобрать - вполне реально.

Цитата(COCAINE @ Mar 9 2009, 18:39) *
оно то возможно и так... но сейчас задача ставиться сформировать сигналы разных видов модуляции и проанализировать их, выбрав подходящий алгоритм идентификации. А со временем думаю инфа о комплексных сигналах уложиться

Тут вы правы, почему бы и нет, может вы и придумаете какой-нибудь классификатор сигналов прямо для сигналов с несущей.
Хотя в статьях и по этой теме чаще попадаются такие, где используется комплексное представление сигналов.
Или даже скорей многие авторы любят извлекать из сигнала огибающую a(t)=sqrt(I(t)^2+Q(t)^2) и мгновенную частоту, как производную от p(t)=arctan(Q(t)/I(t)), а потом анализировать их свойства.
Но это конечно не значит, что это единственно возможный подход к классификации.
COCAINE
Нашел одну статейку
A Fast Automatic Modulation Rcognation Algorithm and Its Implementation In A Spectrum Monitoring Application
в конце там расписан алгоритм классификации, основанный на анализе спектра.
leksa , что вы думаете по поводу этого алгоритма? на сколько реально его смоделировать в Matlab'e?

да, есть еще метод, в которм используется Вейвлет преобразование, на сколько мутная эта тема, никто не в курсе?

Цитата
Хотя в статьях и по этой теме чаще попадаются такие, где используется комплексное представление сигналов.
Или даже скорей многие авторы любят извлекать из сигнала огибающую a(t)=sqrt(I(t)^2+Q(t)^2) и мгновенную частоту, как производную от p(t)=arctan(Q(t)/I(t)), а потом анализировать их свойства.

с комплексным сигналом разберусь, на это времени думаю хватит (без этого чувствую просто не обойтись)
Serg76
Цитата(COCAINE @ Mar 10 2009, 17:55) *
Нашел одну статейку
A Fast Automatic Modulation Rcognation Algorithm and Its Implementation In A Spectrum Monitoring Application
в конце там расписан алгоритм классификации, основанный на анализе спектра.
leksa , что вы думаете по поводу этого алгоритма? на сколько реально его смоделировать в Matlab'e?

Вполне работоспособный алгоритм. Я думаю что так и надо делать.
COCAINE
Цитата
Вполне работоспособный алгоритм. Я думаю что так и надо делать.

это единственный алгоритм, в котором я что-то понял laugh.gif
leksa
Цитата(COCAINE)
Нашел одну статейку
A Fast Automatic Modulation Rcognation Algorithm and Its Implementation In A Spectrum Monitoring Application
в конце там расписан алгоритм классификации, основанный на анализе спектра.
leksa , что вы думаете по поводу этого алгоритма? на сколько реально его смоделировать в Matlab'e?

Не совсем понял вопрос. Вы говорите только о той части, где анализируется спектр сигнала в 4-ой степени для определения qpsk, pi/4-dqpsk?
Если да, то имхо, он вполне работоспособный. И его можно реализовать в Матлабе.
Также и bpsk можно классифицировать по пику в спектре второй степени сигнала.
На этом же принципе работают схемы восстановления несущей для фазовых манипуляций с возведением в степень.(Возведение в степень снимает фазовую манипуляцию.)
Цитата(COCAINE)
да, есть еще метод, в которм используется Вейвлет преобразование, на сколько мутная эта тема, никто не в курсе?

По этой теме не скажу, имею только общее представление о вейвлетах, может кто-нибудь другой знает.

А вообще Вам не плохо бы сформировать техническое задание что-ли, даже и для себя хотя бы.
Определиться:
В каком канале связи должен работать ваш классификатор? (АБГШ, канал с МСИ или с замираниями, например) Самое простое АБГШ.
Какие виды модуляций должны классифицироваться?
Должен ли классификатор устойчиво работать при других видах модуляции? Например, написали вы алгоритм для классификации bpsk/qpsk. А как он отреагирует на psk8? (Хорошо если классификатор в таких случаях умеет выдавать ответ типа неизвестная модуляция, но опять же если того требует ТЗ).
При каких значениях параметров сигналов классификатор устойчиво работает. Для цифровых фазовых видов модуляции важными параметрами будут число отсчетов на символ, тип формирующего фильтра, ошибка по частоте и фазе несущей в принятом сигнале, а также ОСШ.

И определив себе таким образом задачу точно, работать дальше.
COCAINE
с тз все делают (: зачем быть как все? ы так сложно (: сначала алгоритм, а потом тз ы
leksa
Цитата(COCAINE @ Mar 10 2009, 22:25) *
это единственный алгоритм, в котором я что-то понял laugh.gif

На самом деле статьи то бывают разные, и люди пишут разные, так что не все, что описано по этой теме действительно работоспособно.
Мне даже самому интересно почему так, но доводилось статьи читать, где допустим, автор долго и упорно анализирует какие-то там "хитрые" моменты сигналов, вычисляет пороги для классификатора, и вроде все так замечательно, а потом выясняется, что он предполагал, что у него формирующий фильтр отсутствует, несущая по частоте и фазе идеально восстановлена, и точно 4 отсчета на символ, да еще и ОСШ не меньше 30 дБ.
И понимаешь, что в реальных условиях такому алгоритму "грош цена".
Может потому, что схема тактовой синхронизации, например, или работает, или не работает, да и есть набор параметров по которым можно объективно сравнить качество её работы с другими схемами.
А в случае классификаторов универсальных объективных оценок качества работы нет, вот и пишут всякое.
COCAINE
Цитата
И понимаешь, что в реальных условиях такому алгоритму "грош цена".

эта потому что ваш подход с практической стороны (: а студенту побарабану )))))
leksa
Цитата(COCAINE @ Mar 10 2009, 22:47) *
эта потому что ваш подход с практической стороны (: а студенту побарабану )))))

Ну с этим я и не спорю smile.gif
Так, мысли вслух.
Кстати, как раз метод с анализом спектра степеней сигнала очень хорошо работает в реальных условиях, и в широком диапазоне изменениф параметров сигналов.

ладно, офтопик потер, так, "больная мозоль", не обращайте внимания... cool.gif

Вот такую бы книжку по данной теме интересно было бы посмотреть
http://books.google.com/books?id=EiojqAYr-...4&ct=result
мне не удалось её найти в виде ebooka.
Самурай
Цитата(leksa @ Mar 10 2009, 22:58) *
Вот такую бы книжку по данной теме интересно было бы посмотреть
http://books.google.com/books?id=EiojqAYr-...4&ct=result
мне не удалось её найти в виде ebooka.


С книгой я наверно смогу помочьsmile.gif
хттп://рапида.com/files/7823910/Azzouz.pdf
COCAINE
Цитата
Вот такую бы книжку по данной теме интересно было бы посмотреть
http://books.google.com/books?id=EiojqAYr-...4&ct=result

да я видел ее... тоже не нашел...

Цитата
С книгой я наверно смогу помочь
хттп://рапида.com/files/7823910/Azzouz.pdf

ух ты smile.gif большой спасиб (:
leksa
Цитата(Самурай @ Mar 11 2009, 00:08) *
С книгой я наверно смогу помочьsmile.gif
хттп://рапида.com/files/7823910/Azzouz.pdf

спасибо! smile.gif
2COCAINE
имхо, эта книжка - хорошая вводная по теме! (а может и единственная в своем роде)
Pathfinder
Цитата
А в случае классификаторов универсальных объективных оценок качества работы нет, вот и пишут всякое.

Когда рассматривается конкретный класс задач, критерии качества тоже абсолютно конкретны. Просто проблема определения вида модуляции возникает в разных областях, предъявляющих к алгоритму различные требования. Что касается "пишут всякое", в статьях (по крайней мере, научных) часто рассматриваются фрагменты решений, особенно, если задача большая.
leksa
Цитата(Pathfinder @ Mar 11 2009, 00:45) *
Когда рассматривается конкретный класс задач, критерии качества тоже абсолютно конкретны. Просто проблема определения вида модуляции возникает в разных областях, предъявляющих к алгоритму различные требования. Что касается "пишут всякое", в статьях (по крайней мере, научных) часто рассматриваются фрагменты решений, особенно, если они большие.

Я ведь не говорил о всех статьях/авторах. Я так и написал, что статьи и их уровень бывают разные. Есть статьи уровня IEEE, там действительно маловероятно встретить откровенную халтуру. А если просто искать по интернету, то можно встретить и ерунду. И какого рода статьи бывают для "братских могил" я тоже знаю - некоторые пишутся просто потому, что нужны публикации для кандидатской. И изобретатели вечных двигателей - тоже не переведутся.
Вот я недавно слышал один доклад на вполне научно-технической конференции. Докладчик рассказывал про некий алгоритм классификации радиосигналов.
Ему задали простой вопрос:"Сколько используете отсчетов на символ?"
Отвечает: "один"
- "а тактовая синхронизация как осуществляется?"
- "никак"
- а если один отсчет на символ попадет в переходы между символами?
- "э-э-э... ну тогда возьмем больше отсчетов!"
Потом этот доклад был видимо опубликован в сборнике трудов.
Я говорил примерно вот об этом.

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

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

Вот конкретный пример, классификатор на основе нейронных сетей:
Нажмите для просмотра прикрепленного файла
Где здесь конкретная задача и конкретный критерий качества?
Больше похоже на то, что автор действовал по принципу: "а давайте сделаем с десяток нелинейных преобразований сигнала, и засунем их в нейронную сеть, может что и получится".
Никого не хочу обижать, но, имхо, сложно отвечать за всех авторов всех статей.
COCAINE
ну наконец-то
вообщем мож кому нужно будет...
короче, вещественный сигнал на несущей в Матлабе формируется следующим образом
Цитата
Fc = 100; % частота несущей
Fd = 50; % символьная скорость
Fs = 1000; % частота дискретизации
M = 4; % порядок манипуляции
msg = [randint(1, 100, M-1)]; % формирования сообщения из 100 символов
N = length(msg); % длина сообщения
t = (0 : 1/Fs : 1/Fd*N-1/Fs); % дискретное время
s_psk = pskmod(msg, M); % собственно модулирующий сигнал
s_psk_discr = s_psk(floor(Fd*t)+1); % повышения частоты дискретизации
carrier = exp(2i*pi*Fc*t); % формирование комплексной несущей
y = real(s_psk_discr .* carrier); % "насаживание" сигнала на несущую
plot(t(1:200), y(1:200)); grid on % график во временной области
periodogram(y, [], [], Fs); xlim([0 0.5]); ylim([-80 0]) % график в частотной области
COCAINE
http://electronix.ru/forum/index.php?showtopic=60905
мож кто подскажет rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.