реклама на сайте
подробности

 
 
> Симуляция ЧМ сигнала содержащего музыку, Вопрос спецам
ACiDUser
сообщение Feb 10 2009, 15:29
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Всем привет!

Есть DAQ плата для приёма ЧМ радио сигналов, но она еще не готова. Поэтому работаю над алгоритмами демодуляции ЧМ сигналов. И чтобы проверить их работу пытаюсь симулировать ЧМ сигнал. Работаю в среде LabView. Мне нужно симулировать ЧМ сигнал который содержит

информацию подобно музыке.

Прочитал множество статей на тему ЧМ модуляция, но везде описан самый простейший

пример ЧМ модуляции с использованием только одной синусоидальной гармоники.

Основное математическое выражение:

FM = A*Cos(2*pi*Fc*t + M*Sin(2*pi*Fm*t))

где: A - амплитуда, Fc - несущая частота, M - индекс модуляции, Fm - модулирующий

сигнал (сигнал несущий информацию)

A = 1, Fc = 60, M = 5, Fm = 5.

Пытался добавить еще одну гармонику путем сложения как: FM = A*Cos(2*pi*Fc*t +

M*(Sin(2*pi*Fm*t)+Sin(2*pi*3*Fm*t)) - добавил еще одну синусоиду с частотой в 3

раза больше чем у первой.

Но, кажется, это неверный подход к решению этой задачи, потому что я могу

восстановиться модулирующий сигнал если он только с одной гармоникой. А когда

добавляю еще одну - после демодуляции получаю неверный сигнал. Значит где-то я

ошибаюсь в самой модуляции ЧМ, т.е. это сложнее чем просто прибавить синус.

Когда мы слушаем музыку - мы слышим звуки на разных частотах одновременно начиная

с басов 60Гц и заканчивая высокочастотными звуками до 15КГц.

Может кто-нибудь объяснить как отличается ЧМ модуляция с одной гармоникой и

модуляция с несколькими гармониками?
Или хотя-бы указать на соответствующую литературу.

Заранее благодарен.
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 49)
INT1
сообщение Feb 10 2009, 19:06
Сообщение #2


deleted
****

Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024



Не уверен, что в реалтайме симулятор сможет смоделировать спектр WFM (посчитать ф-ции Бесселя):
"...нельзя рассматривать воздействие каждой гармоники этого сигнала по отдельности, для нахождения спектра следует вести расчеты для каждой формы сигнала, которая нас интересует. Такие расчеты зачастую оказываются очень громоздкими, и вообще не всегда возможны...."
http://www.physdep.isu.ru/method/rtcs/Theory/spectrumfm.htm
ЗЫ, немного порылся в сети, здесь немного про железо и про математику:
http://www.williamspublishing.com/PDF/5-8459-0715-2/part.pdf
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 11 2009, 09:45
Сообщение #3





Guests






Цитата(ACiDUser @ Feb 10 2009, 18:29) *


Для ФМ
Sf(t) = Ao * Cos( Wo + Ph(t) );
Ph(t) = k * Sm(t);

Sm(t) - модулирующий сигнал произвольного вида.

т.е. любой композитный сигнал от постоянного уровня до шумового сигнала.
Одна, две, три,.. синусоиды, экспонента и прочее тоже не возбраняется

Для ЧМ
W(t) = Wo + k * Sm(t); мгновенная частота
И сам сигнал
Sf(t) = Ao * Cos (W(t))
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 11 2009, 10:38
Сообщение #4


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ Feb 10 2009, 16:29) *
Основное математическое выражение:

FM = A*Cos(2*pi*Fc*t + M*Sin(2*pi*Fm*t))

где: A - амплитуда, Fc - несущая частота, M - индекс модуляции, Fm - модулирующий


А формула-то неверна.
Нужно так:

FM = A*Cos(2*pi*Fc*t + (M/Fm)*sin(2*pi*Fm*t));
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 12 2009, 01:05
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Спасибо за ответы!

Долго мучался откуда эти " k " - берутся. Вроде как для радио целая таблица этих констант есть.

А можно (M/Fm) заменить на D девиацию и упростить как FM = A*Cos(2*pi*Fc*t + D*sin(2*pi*Fm*t)); ??

Просто с этим индексом модуляции постоянно путаюсь, проще в понимании вводить девиацию а индекс уже высчитывать.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 12 2009, 05:36
Сообщение #6


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ Feb 12 2009, 03:05) *
Спасибо за ответы!

Долго мучался откуда эти " k " - берутся. Вроде как для радио целая таблица этих констант есть.

А можно (M/Fm) заменить на D девиацию и упростить как FM = A*Cos(2*pi*Fc*t + D*sin(2*pi*Fm*t)); ??

Просто с этим индексом модуляции постоянно путаюсь, проще в понимании вводить девиацию а индекс уже высчитывать.


Нет,нельзя. Девиация Fd = M*Fm,если плясать от девиации тогда уж

FM = A*Cos(2*pi*Fc*t + (Fd / Fm^2)*sin(2*pi*Fm*t))
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 12 2009, 18:08
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(_Anatoliy @ Feb 12 2009, 09:36) *
Нет,нельзя. Девиация Fd = M*Fm,если плясать от девиации тогда уж

FM = A*Cos(2*pi*Fc*t + (Fd / Fm^2)*sin(2*pi*Fm*t))



Так не получается. Если я так делаю то - ничего не происходит. Прикрепляю виртуальный иснтрумент который я сделал, работает с другой формулой. Я сначала беру информационный сигнал Sm(t)=sin(2*pi*Fm*t)+0.8*sin(2*pi*Fm*3*t); состоящий из 2-х гармоник, интегрирую его, затем уже работает следующая формула FM(t) = A*sin(2*pi*Fc*t+D*Sm(t)));

Если я этот D делю на Fm^2, то изменения очень малы и практически не заметны. Не может несущая частотата так сильно отклоняться (если она установлена на 60Гц) то, мне кажется отклонение в 100 раза большее - это чтото нереальное. Может я еще чего-то не учел, что должно было компенсировать это.

http://en.wikipedia.org/wiki/Frequency_modulation

Как показано на прикрепленной формуле: ... + 2*Pi*Fd * Интеграл от Sm(t)

Fd - девиация. Тоесть можно записать ... Wd * Интеграл от Sm(t)
Wd - угловая девиация

Сообщение отредактировал ACiDUser - Feb 12 2009, 18:09
Прикрепленные изображения
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  FM_modulation.rar ( 91.79 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 12 2009, 18:40
Сообщение #8


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ Feb 12 2009, 20:08) *


LabView у меня нет,файл не раскрыл.Почитайте похожую тему:
http://www.telesys.ru/wwwboards/dsp/299/me...es/108893.shtml

Если нужно могу завтра скинуть матлабовский скрипт ЧМ модулятора-демодулятора по которому я делал реальный проект демодулятора ЧМ на FPGA.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 12 2009, 19:00
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Мы тоже работаем с FPGA но вся обработка только на компьютере производится. Я кажется понял в чем тут дело. Когда мы интегрируем синус или косинус, то констанка та что перед "t" идет в знаменатель, функция меняется на противоположную. Тоесть в данном случае в знаменатель идут 2*pi*Fm а в числителе 2*Pi*Fd (Fd - девиация) отсюда после сокращения имеем - Fd / Fm = M (индекс модуляции). А чтобы открыть программу нужен LabView Run-Time Engine можно скачать отсюда ftp://ftp.ni.com/support/labview/windows/...VRunTimeEng.exe (32.7 MB)

Сообщение отредактировал ACiDUser - Feb 12 2009, 19:01
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 13 2009, 01:14
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(_Anatoliy @ Feb 12 2009, 22:40) *
Если нужно могу завтра скинуть матлабовский скрипт ЧМ модулятора-демодулятора по которому я делал реальный проект демодулятора ЧМ на FPGA.



А какой метод демодуляции использовал?

Я как-бы уже реализовал два метода остался 3-й - PLL.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 13 2009, 07:06
Сообщение #11


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ Feb 13 2009, 02:14) *
А какой метод демодуляции использовал?

Я как-бы уже реализовал два метода остался 3-й - PLL.


А такой пробовал?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 13 2009, 16:20
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(_Anatoliy @ Feb 13 2009, 11:06) *
А такой пробовал?


Хмм что-то знакомое. А как он по научному называется?

Дело в том что я ни в одном своем методе не использовал I,Q данные.

Вот один способ, называется Детектор Кривизны или Детектор Огибающей
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Feb 13 2009, 16:38
Сообщение #13


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ Feb 13 2009, 18:20) *
Хмм что-то знакомое. А как он по научному называется?

Дело в том что я ни в одном своем методе не использовал I,Q данные.

Вот один способ, называется Детектор Кривизны или Детектор Огибающей


Хм,диод...Так ты аналоговый детектор делал?
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 13 2009, 17:13
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Не Не, только цифровой. Просто этот элемент эквивалентен Диоду. Только положительную волну пропускает.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Feb 13 2009, 18:19
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Еще делал с детектированием Нулей. Zero-Crossing Detector
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Feb 26 2009, 00:06
Сообщение #16


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(ACiDUser @ Feb 13 2009, 18:20) *
Хмм что-то знакомое. А как он по научному называется?

Дело в том что я ни в одном своем методе не использовал I,Q данные.

Вот один способ, называется Детектор Кривизны или Детектор Огибающей

blink.gif wacko.gif blink.gif Толи лыжи не едут, толи я чего-то недопонял...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 4 2009, 09:39
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(DRUID3 @ Feb 26 2009, 04:06) *
blink.gif wacko.gif blink.gif Толи лыжи не едут, толи я чего-то недопонял...


Имеется плата с антенной и FPGA, которая принимает FM сигнал. Далее на компьютер через PCI-express идет огромный массив данных - дискретные отсчеты FM сигнала. Здесь нету никаких I и Q данных. Моя задача уже обрабатывать этот массив данных и проводить демодуляцию FM программными алгоритмами.

Что еще непонятно?
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 4 2009, 15:50
Сообщение #18


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(ACiDUser @ Mar 4 2009, 11:39) *
Имеется плата с антенной и FPGA, которая принимает FM сигнал. Далее на компьютер через PCI-express идет огромный массив данных - дискретные отсчеты FM сигнала. Здесь нету никаких I и Q данных. Моя задача уже обрабатывать этот массив данных и проводить демодуляцию FM программными алгоритмами.

Что еще непонятно?

непонятно зачем Вы упомянули АМ детектор при детектировании ЧМ. Далее непонятно почему не имея соответствующей подготовки Вы взялись за такую задачу - так много платят?
Далее об IQ-каналах. Так их нигде нет. Это выдумка, козни математиков отбирающих хлеб у истинных радиотехников... Историю с Ли де Форестом помните? biggrin.gif Но вот статейКО где Вам покажут как можно получить из действительного сигнала комплексный. А модулятор есть книжке Лайонса(и еще многих других) - это универсальный FM демодулятор для любых значений девиации...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
leksa
сообщение Mar 4 2009, 18:07
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Цитата(ACiDUser @ Feb 13 2009, 19:20) *
...
Вот один способ, называется Детектор Кривизны или Детектор Огибающей


Похоже, что сигнал вы оцифровываете на поднесущей(ПЧ и т.п.), то есть Digital Down Converter не используете.
Тогда приведенная схема вполне работоспособна как вариант.
Дифференцирующий элемент - это фильтр с линейно возрастающей (с увеличением частоты) АЧХ. При прохождении через такой фильтр ЧМ сигнала в нем появляется паразитная амплитудная модуляция прямо пропорциональная частотной модуляции.
Вот эта паразитная АМ затем и детектируется детектором огибающей (диод + фнч).
Минусом такой схемы можно назвать прямую зависимость уровня выходного сигнала от уровня мощности принимаемого сигнала.
И помехоустойчивость хуже чем у ФАПЧ, раньше проявляется пороговый эффект, когда при падении до определенного уровня отношения сигнал/шум демодулятор "ломается", то есть резко ухудшается качество сигнала на выходе вплоть до полной неразборчивости.

Цитата(_Anatoliy @ Feb 13 2009, 10:06) *
А такой пробовал?

Подскажите пожалуйста, из какой книги рисунок?

Сообщение отредактировал leksa - Mar 4 2009, 18:14


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 11:11
Сообщение #20


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(DRUID3 @ Mar 4 2009, 19:50) *
непонятно зачем Вы упомянули АМ детектор при детектировании ЧМ.
Далее непонятно почему не имея соответствующей подготовки Вы взялись за такую задачу - так много платят?


По первому вопросу товарищ leksa всё очень грамотно объяснил.

А по второму - это исследование для бакалаврской работы а так же часть проекта Software Radio с нерегулярной дискретизацией, над которой я работаю. И у нас просто нет таких специалистов которые сразу знают что делать и задания дают, которые требуют исследований тк. в институте работаю. Могут дать любое задание - а дальше сиди в гугле и разбирайся smile.gif

Нужно реализовать несколько методов демодуляции ЧМ а потом их сравнить. Сигнал представляет собой огромный массив данных полученный с DAQ платы.

Еще делал такую схему с Детектированием нулей (Zero-Crossing Detector).

Сначала нашел все нули где сигнал ось X пересекает. Имея два нуля можно посчитать мгновенную частоту. А т.к. мгновенная частота ЧМ пропорциональна мгновенному значению модулирущего сигнала - можно восстановить модулирующий сигнал. Сигнал получается идентичным оригинальному и совпадает с ним по фазе. Проблема в том что если я наложу искусственный шум, то уже не получается так красиво. Алгоритм воспринимает шум - как пересечения с осью Х и добавляет в массив лишние нули. Подскажите как можно можно с этим бороться?


Цитата(leksa @ Mar 4 2009, 22:07) *
Похоже, что сигнал вы оцифровываете на поднесущей(ПЧ и т.п.), то есть Digital Down Converter не используете.


Дело в том что пытаемся захватить весь спектр радио-частот сразу. Затем фильтруем нужную полосу и работаем с тем что отфильтровали.

Цитата(leksa @ Mar 4 2009, 22:07) *
Минусом такой схемы можно назвать прямую зависимость уровня выходного сигнала от уровня мощности принимаемого сигнала.
И помехоустойчивость хуже чем у ФАПЧ, раньше проявляется пороговый эффект, когда при падении до определенного уровня отношения сигнал/шум демодулятор "ломается", то есть резко ухудшается качество сигнала на выходе вплоть до полной неразборчивости.


А если этот алгоритм проводить не электронной схемой а программным кодом?
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 12:25
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



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

Самые чувствительные приёмники делались без всякой цифровой обработки, смысл в том что амплитуда модулирующего сигнала не меняется мгновенно и соответственно можно отслеживая сигнал на выходе частотного детектора по обратной связи управлять центральной частотой полосового фильтра стоящего перед детектором гораздо более узкополосного чем ширина спектра ЧМ сигнала.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 12:53
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Идея Software Radio в том чтобы было минимум железа - максимум софта. То-есть использовать универсальный дизайн, который работает и не нужно менять компоненты. Если обработка сигналов происходит программно - то можно все улучшить или заменить алгоритм на другой. Можно дополнить новыми функциями не делая новую плату. Разработка такого проекта обходится значительно дешевле, чем каждый раз заказывать в Тайване плату. Берешь универсальный дизайн пихаешь в мощный компьютер, который производит всё дальнейшую обработку. Используя мощный компьютер открывается гораздо больше возможностей. - ВОТ почему нужно изобретать велосипед - делать программно то, с чем справляются пара электронных элементов, тут можно контролировать каждый шаг и здесь нет побочных эффектов от нелинейности диффиренцирующего элемента.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 13:11
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ACiDUser @ Mar 11 2009, 15:53) *
Идея Software Radio в том чтобы было минимум железа - максимум софта. То-есть использовать универсальный дизайн, который работает и не нужно менять компоненты. Если обработка сигналов происходит программно - то можно все улучшить или заменить алгоритм на другой. Можно дополнить новыми функциями не делая новую плату. Разработка такого проекта обходится значительно дешевле, чем каждый раз заказывать в Тайване плату. Берешь универсальный дизайн пихаешь в мощный компьютер, который производит всё дальнейшую обработку. Используя мощный компьютер открывается гораздо больше возможностей. - ВОТ почему нужно изобретать велосипед - делать программно то, с чем справляются пара электронных элементов, тут можно контролировать каждый шаг и здесь нет побочных эффектов от нелинейности диффиренцирующего элемента.


Ну изобретать уж точно не надо как ЧМ демодулировать. И ещё это самое мощное железо дорогое не справится с широкополосными сигналами которые щас кругом используются.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 13:22
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Изобретать в плане схемы не надо - согласен. Но вот как написать программу, которая будет делать тоже самое + разработать алгоритмы для подавления шумов - требует времени. PCI-Express шины должно хватить даже для очень широкой полосы.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 13:28
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ACiDUser @ Mar 11 2009, 16:22) *
PCI-Express шины должно хватить даже для очень широкой полосы.


Не хватит вычислительных ресурсов универсального центрального процессора чтобы в реальном времени демодулировать.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 13:31
Сообщение #26


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(petrov @ Mar 11 2009, 17:28) *
Не хватит вычислительных ресурсов универсального центрального процессора чтобы в реальном времени демодулировать.


А можно узнать откуда такие данные?
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 13:38
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ACiDUser @ Mar 11 2009, 16:31) *
А можно узнать откуда такие данные?


А вы сами подумайте почему широкоплосная связь делается не на сигнальных процессорах(которые ещё фору дадут универсальным) а на специализированных микросхемах или FPGA. Прикиньте сколько вычислений надо чтобы скажем цифровое телевидение DVB-T демодулировать в реальном времени.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 14:20
Сообщение #28


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Вы не учли одно НО, у нас дискретизация сигнала проводится нелинейно smile.gif и делается это с помощью АЦП и FPGA, далее массив данных принимается компьютером через PCI-Express где уже производится вся обработка.

DAQ плата дискретизацией занимается, хотим сделать именно демодуляцию в реальном времени.

Конечно, сначала нужно отфильтровать нужную полосу.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 14:24
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ACiDUser @ Mar 11 2009, 17:09) *
Вы не учли одно НО, у нас дискретизация сигнала проводится нелинейно smile.gif


Что это означает?

Цитата(ACiDUser @ Mar 11 2009, 17:09) *
и делается это с помощью АЦП и FPGA, далее массив данных принимается компьютером через PCI-Express где уже производится вся обработка.

DAQ плата дискретизацией занимается, хотим сделать именно демодуляцию в реальном времени.


Так как успеет процессор в реальном времени демодулировать то широкополосные сигналы? Ведь на один отсчёт входного сигнала требуются сотни если не тысячи команд, нету ещё процессоров с такой тактовой частотой.

Вообще не ясна мотивация, что вы хотите получить то? Приёмник FM-радиостанций ценой в несколько тысяч долларов? Или исследовать модуляции, тогда наверное есть что-то более актуальное чем устаревшая ЧМ и зачем тогда все эти писиай экспрессы, достаточно головы и матлаба?
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 14:40
Сообщение #30


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(petrov @ Mar 11 2009, 18:24) *
Что это означает?


Это означает что можно обойти критерий Найквиста о двух обязательных считываний на период - для возможности восстановить сигнал.
А значит можно использовать более дешевый АЦП с тем же результатом.

Цитата(petrov @ Mar 11 2009, 18:24) *
Так как успеет процессор в реальном времени демодулировать то широкополосные сигналы? Ведь на один отсчёт входного сигнала требуются сотни если не тысячи команд, нету ещё процессоров с такой тактовой частотой.


Широкополосные не потянет. Но ЧМ демодулировать реально.

Получить многофункциональный девайс, в идеале для приёма видео и аудио информации.


Сначала сделаем - а потом посмотрим где можно применить.

Никто не создавал, например, компьютеры изначально для массового потребления.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 15:00
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ACiDUser @ Mar 11 2009, 17:40) *
Это означает что можно обойти критерий Найквиста о двух обязательных считываний на период - для возможности восстановить сигнал.

Широкополосные не потянет. Но ЧМ демодулировать реально.

Получить многофункциональный девайс, в идеале для приёма видео и аудио информации.


Сначала сделаем - а потом посмотрим где можно применить.

Никто не создавал, например, компьютеры изначально для массового потребления.


Может я чего-то не понимаю, но не видно реализма какого-то. Вот берёшь буржуйские диссеры и многие можно в реальной разработке тех же модемов использовать. А у нас что-то не видно такого, да вообще зачастую бред какой-то.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 15:12
Сообщение #32


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Ну почитай почему многие институты сейчас уделяют внимание Software Radio, а в армии это уже давно используется. А процессоры будут выходить еще мощнее что будет открывать новые возможности. Я думаю когда компьютеры первые были, тоже были такие люди, которые говорили, что это бред и никому не нужно smile.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 11 2009, 15:27
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ACiDUser @ Mar 11 2009, 18:12) *
Ну почитай почему многие институты сейчас уделяют внимание Software Radio, а в армии это уже давно используется. А процессоры будут выходить еще мощнее что будет открывать новые возможности. Я думаю когда компьютеры первые были, тоже были такие люди, которые говорили, что это бред и никому не нужно smile.gif


Так не в этом бред, кто же против Software Radio, цифровая обработка сигналов и есть Software Radio. ИМХО усилия надо направлять на разработку новых модуляций, кодирования и т. п.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 11 2009, 15:39
Сообщение #34


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Ну вот пусть болит голова об этом у тех кто этим занимается - кодированием и разработкой модуляций. Пока всё радиовещание перейдет на цифровой стандарт пройдет еще много времени. А иметь устройство для которого демодуляция - это просто написанная программа очень удобно, можно принимать разные сигналы и демодулировать их, и для этого не нужно переделывать железо.
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Mar 11 2009, 17:58
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



ACiDUser,
Как вы себе представляете SDR? Антенна+АЦП+компьютер? Дак это утопия. Как минимум потому что невозможно сделать абсолютно универсальный преселектор. За универсальность всегда приходится платить очень дорого - и ценой и характеристиками.

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

+1


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 12 2009, 05:48
Сообщение #36


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(leksa @ Mar 4 2009, 20:07) *
Подскажите пожалуйста, из какой книги рисунок?


http://rapidshare.com/files/189408753/cifr...lov-lajjons.rar
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 12 2009, 12:58
Сообщение #37


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(Pathfinder @ Mar 11 2009, 21:58) *
ACiDUser,
Как вы себе представляете SDR? Антенна+АЦП+компьютер? Дак это утопия. Как минимум потому что невозможно сделать абсолютно универсальный преселектор. За универсальность всегда приходится платить очень дорого - и ценой и характеристиками.


+1


Создайте отдельную тему с названием "SDR реально или нет?"

Можно уже по теме отвечать?

Цитата(_Anatoliy @ Mar 12 2009, 09:48) *


Спасибо, книжка что надо! А про метод с детектированием нулей что-нибудь есть?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 12 2009, 13:40
Сообщение #38


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ Mar 12 2009, 14:58) *
Спасибо, книжка что надо! А про метод с детектированием нулей что-нибудь есть?


У меня нет.
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 12 2009, 14:35
Сообщение #39


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



С детектированием нулей получилось так.
Если наложить шум, тогда алгоритм детектирует лишние нули и демодулированный сигнал уже искажен.
Есть задумка брать из этих нескольких нулей среднее значение.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
leksa
сообщение Mar 12 2009, 18:02
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Цитата(ACiDUser @ Mar 12 2009, 17:35) *
С детектированием нулей получилось так.
Если наложить шум, тогда алгоритм детектирует лишние нули и демодулированный сигнал уже искажен.
Есть задумка брать из этих нескольких нулей среднее значение.

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

Здесь желтый сигнал - ваш с шумами, а красный - на выходе этого устройства с гистерезисом.
голубые линии - пороги
На языке Матлаба вот такой код это делает:

%нач условия
if(Sinp(1)>0)
state=1
else
state=-1
end
amp=max(abs(Sinp)) %- размах входного сигнала
thp=amp/3 %задаем пороги
thn=-thp
for k=2:length(Sinp)
if(state==1)% если сигнал в положительной фазе
if(Sinp(k)<thn)% если сигнал пересек отрицательный порог, то уходим в отрицательную фазу
Sc(k)=-amp;
state=-1% обозначаем что состояние теперь - сигнал в отрицательной фазе
else
Sc(k)=amp;
end
else% ну а здесь все точно наоборот!
if(Sinp(k)>thp)
Sc(k)=amp;
state=1
else
Sc(k)=-amp;
end
end
end

Если с матлабом работаете могу целиком скрипт кинуть.

Цитата(_Anatoliy @ Mar 12 2009, 08:48) *

Спасибо!

Цитата(ACiDUser)
А если этот алгоритм проводить не электронной схемой а программным кодом?

Не совсем понял вопрос.
Если точно его смоделировать программно, то результат я думаю будет очень похож на схемную реализацию.
Насколько я знаю, наибольшей помехоустойчивостью обладают методы с обратной связью: на ФАПЧ и с отрицательной обратной связью. Рассматриваются в книге Communication systems. S.Haykin
http://electronix.ru/forum/index.php?s=&am...st&p=557474
глава 2.13-2.14

Сообщение отредактировал leksa - Mar 12 2009, 18:44


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 13 2009, 00:44
Сообщение #41


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(leksa)
Имхо, метод с детектированием нулей не очень подходит для приема радиосигнала, по-моему помехоустойчивость у него будет хуже чем у других уже обсуждавшихся схем.

Насчет помехоустойчивости согласен. А про гистерезис коллеги посоветовали сегодня, всеравно спасибо!

Я читал что этот метод очень хвалят из-за его быстрой работы. А также не требуется знать несущюю частоту.
При грамотной обработке шумов метод может быть весьма хорош.

Можно попробовать проводить усреднение сигнала на коротких промежутках, что может существенно убрать шумы.
Ну и, конечно, срезать амплитуду. Алгоритм умеет определять нули положительного полупериода и отрицательного - т.е. сигнал после пересечения идет вверх или вниз. Это может пригодится для демодуляции цифрового ЧМ.

Пока не понял зачем используется генератор импульсов (см. прикрепленную картинку)

Цитата(leksa)
Если с матлабом работаете могу целиком скрипт кинуть.


Работаю в LabView, но Матлаб тоже имеется и буду благодарен за пример скрипта.

Как доведу алгоритмы до стабильной работы попробую с реальным сигналом от генератора, поэтому пока и балуюсь с шумами.

с ФАПЧ я нашел готовый пример, но пока не могу его настроить под мой проект. Еще не разобрался как сам фильтр работает. Буду делать по мануалу.

Спасибо за конструктивные ответы
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
leksa
сообщение Mar 13 2009, 06:51
Сообщение #42


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Цитата(ACiDUser @ Mar 13 2009, 03:44) *
Пока не понял зачем используется генератор импульсов (см. прикрепленную картинку)


Насколько я понял из картинки, генератор импульсов генерирует импульс постоянной ширины по каждому входному короткому импульсу. Где короткие импульсы чаще - там и на выходе генератора импульсы чаще. Потом сигнал поступает на ФНЧ, который сглаживает эту последовательность импульсов. Где импульсы на входе чаще, там сигнал на выходе ФНЧ будет чаще. Потом сравнение с порогом, и получается регенерированный двухпозиционный сигнал.
Насколько я понял, конкретно этот вариант схемы подойдет только для 2 позиционной частотной манипуляции.

Вот интересно, а что будет на выходе генератора импульсов, если сигналы на входе пойдут с интервалом меньше, чем ширина выходного импульса генератора?

И еще, может быть в программном виде генератор импульсов и ФНЧ можно заменить просто ФНЧ, с простой ИХ, близкой по форме и длительности к импульсам генератора. Тогда реакцией ФНЧ на входной дельта-импульс будет его ИХ, то есть как раз импульсы, как на выходе генератора. Но это сейчас в голову пришло и требует проверки.


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post
leksa
сообщение Mar 13 2009, 15:34
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Цитата(leksa @ Mar 13 2009, 09:51) *
Где импульсы на входе чаще, там сигнал на выходе ФНЧ будет чаще.

Бррр, не то написал, должно быть " Где импульсы на входе чаще, там сигнал на выходе ФНЧ будет больше. "


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post
Serg76
сообщение Mar 13 2009, 16:44
Сообщение #44


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(ACiDUser @ Mar 11 2009, 16:31) *
А можно узнать откуда такие данные?

Я занимаюсь разработкой софтовых демов. Приемный тракт строится по аналогичной схеме Антенна->ВЧ часть->модуль АЦП->модуль ввода оцифрованного потока в ПК (через USB2.0). Демодулятор выполнен программно. Максимум что я смог получить это 1,5 Мсим/сек на QPSK сигнале при использовании одного ядра Core2Duo 2,4 GHz в реалтайме. Думаю что можно дотянуть до 2 Мсим/сек если взять проц по-мощнее. Похоже что это предел. На таких скоростях даже простейшие тривиальные операции становятся существенным тормозом. На TMS и FPGA можно получить гораздо большие скорости. Но зато программные демы более гибкие. Так что выбор конфигурации приемного тракта должен зависеть от конкретной сложившейся ситуации.
Go to the top of the page
 
+Quote Post
leksa
сообщение Mar 13 2009, 18:28
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Скрипт с "гистерезисом".
Прикрепленный файл  Test_ZCD.txt ( 1.07 килобайт ) Кол-во скачиваний: 208

Расширение надо поменять на m.


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение Mar 24 2009, 16:07
Сообщение #46


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Цитата(leksa @ Mar 13 2009, 10:51) *
Насколько я понял из картинки, генератор импульсов генерирует импульс постоянной ширины по каждому входному короткому импульсу. Где короткие импульсы чаще - там и на выходе генератора импульсы чаще. Потом сигнал поступает на ФНЧ, который сглаживает эту последовательность импульсов. Где импульсы на входе чаще, там сигнал на выходе ФНЧ будет чаще. Потом сравнение с порогом, и получается регенерированный двухпозиционный сигнал.
Насколько я понял, конкретно этот вариант схемы подойдет только для 2 позиционной частотной манипуляции.

Вот интересно, а что будет на выходе генератора импульсов, если сигналы на входе пойдут с интервалом меньше, чем ширина выходного импульса генератора?

И еще, может быть в программном виде генератор импульсов и ФНЧ можно заменить просто ФНЧ, с простой ИХ, близкой по форме и длительности к импульсам генератора. Тогда реакцией ФНЧ на входной дельта-импульс будет его ИХ, то есть как раз импульсы, как на выходе генератора. Но это сейчас в голову пришло и требует проверки.


Окей, с этим понятно. А вот пункты "Zero Crossing Detection" и "Fully rectified signal" какой смысл в этом? Если можно взять все найденные нули и в этих местах импульсы пустить. У меня один пункт там только - Zero crossing detection.

А там неправильно описал метод детектирования нулей, поэтому прикрепляю новое изображение.

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

Сообщение отредактировал ACiDUser - Mar 24 2009, 15:43
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
leksa
сообщение Mar 24 2009, 19:26
Сообщение #47


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Цитата(ACiDUser @ Mar 24 2009, 19:07) *
leksa спасибо за скрипт, заценил. Попробую реализовать свой метод со средним значением, чтобы потом можно было сравнить.

Пожалуйста.
Цитата(ACiDUser @ Mar 24 2009, 19:07) *
Окей, с этим понятно. А вот пункты "Zero Crossing Detection" и "Fully rectified signal" какой смысл в этом? Если можно взять все найденные нули и в этих местах импульсы пустить. У меня один пункт там только - Zero crossing detection.

А там неправильно описал метод детектирования нулей, поэтому прикрепляю новое изображение.

Я так понимаю, что тот, кто эту схему рисовал, предполагал, что она будет реализована аппаратно, отсюда все эти блоки. Если программно определяете переходы через ноль, то вам эти блоки и не нужны.
Програмно вообще достаточно сформировать массив значений моментов времени переходов через ноль, а из них и определить частоту, как я понимаю из вашего рисунка.

Сообщение отредактировал leksa - Mar 24 2009, 19:33


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение May 25 2009, 14:39
Сообщение #48


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



После детектирования ЧМ при помощи детектора нулей, получил сигнал с гораздо меньшим количеством отсчетов, чем исходный модулирующий сигнал. Для того чтобы можно было вравнить эффективность метода демодуляции ЧМ, нужно сравнить эти два сигнала и рассчитать погрешность.

Но тк у сигналов разное количество отсчетов, просто отнять один от другого нельзя.
Для этого нужно выровнять количество отсчетов, чтобы оно стало равным для обоих сигналов.

Решено было выровнять детектированный сигнал при помощи линейной интерполяции.

Выкладываю программу-виртуальный инструмент сделанную в сруде LabView 7.1 - "Upsampling VI.rar" - содержит .exe программу

Для того чтобы запустить, нужно скачать и установить LabView Run-Time Engine 7.1 (~31MB)

скачать можно по следующей ссылке:

http://joule.ni.com/nidu/cds/view/p/id/703/lang/en

На прикрепленном рисунке отсчеты сигналов на графиках показаны кружками. Signal 2 имеет меньшее количество
отсчетов чем Signal 1. Interpolated Signal 2 - это Signal 2 с увеличенным шагом дискретизации при помощи интерполяции.
Deviation Signal - разность двух сигналов.

Прикрепляю так же готовую функцию "Upsampling.vi", для тех у кого установлена среда LabView. (этот файл можно открыть только в LabView)

Сообщение отредактировал ACiDUser - May 25 2009, 14:41
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  Upsampling_VI.rar ( 34.9 килобайт ) Кол-во скачиваний: 20
Прикрепленный файл  Upsampling_VI.rar ( 34.9 килобайт ) Кол-во скачиваний: 19
 
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 26 2009, 06:11
Сообщение #49


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ACiDUser @ May 25 2009, 15:39) *

Почитайте хорошую книгу,многое станет яснее
Прикрепленные файлы
Прикрепленный файл  RF.part1.rar ( 976.56 килобайт ) Кол-во скачиваний: 46
Прикрепленный файл  RF.part2.rar ( 976.56 килобайт ) Кол-во скачиваний: 50
Прикрепленный файл  RF.part3.rar ( 976.56 килобайт ) Кол-во скачиваний: 44
Прикрепленный файл  RF.part4.rar ( 976.56 килобайт ) Кол-во скачиваний: 45
Прикрепленный файл  RF.part5.rar ( 976.56 килобайт ) Кол-во скачиваний: 35
Прикрепленный файл  RF.part6.rar ( 976.56 килобайт ) Кол-во скачиваний: 45
Прикрепленный файл  RF.part7.rar ( 976.56 килобайт ) Кол-во скачиваний: 37
Прикрепленный файл  RF.part8.rar ( 747.33 килобайт ) Кол-во скачиваний: 47
 
Go to the top of the page
 
+Quote Post
ACiDUser
сообщение May 26 2009, 09:41
Сообщение #50


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 9-12-08
Пользователь №: 42 321



Спасибо, заценим.

А по поводу модуляции уже разобрался. У меня была ошибка в формуле.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.02021 секунд с 7
ELECTRONIX ©2004-2016