|
Симуляция ЧМ сигнала содержащего музыку, Вопрос спецам |
|
|
|
Feb 10 2009, 15:29
|
Участник

Группа: Новичок
Сообщений: 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КГц.
Может кто-нибудь объяснить как отличается ЧМ модуляция с одной гармоникой и
модуляция с несколькими гармониками? Или хотя-бы указать на соответствующую литературу.
Заранее благодарен.
|
|
|
|
|
 |
Ответов
(1 - 49)
|
Feb 10 2009, 19:06
|
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
|
|
|
|
Guest_TSerg_*
|
Feb 11 2009, 09:45
|
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))
|
|
|
|
|
Feb 12 2009, 01:05
|
Участник

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

|
Спасибо за ответы!
Долго мучался откуда эти " k " - берутся. Вроде как для радио целая таблица этих констант есть.
А можно (M/Fm) заменить на D девиацию и упростить как FM = A*Cos(2*pi*Fc*t + D*sin(2*pi*Fm*t)); ??
Просто с этим индексом модуляции постоянно путаюсь, проще в понимании вводить девиацию а индекс уже высчитывать.
|
|
|
|
|
Feb 12 2009, 18:08
|
Участник

Группа: Новичок
Сообщений: 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
Прикрепленные изображения
|
|
|
|
|
Feb 12 2009, 19:00
|
Участник

Группа: Новичок
Сообщений: 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
|
|
|
|
|
Feb 13 2009, 01:14
|
Участник

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

|
Цитата(_Anatoliy @ Feb 12 2009, 22:40)  Если нужно могу завтра скинуть матлабовский скрипт ЧМ модулятора-демодулятора по которому я делал реальный проект демодулятора ЧМ на FPGA. А какой метод демодуляции использовал? Я как-бы уже реализовал два метода остался 3-й - PLL.
|
|
|
|
|
Feb 13 2009, 16:20
|
Участник

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

|
Цитата(_Anatoliy @ Feb 13 2009, 11:06)  А такой пробовал? Хмм что-то знакомое. А как он по научному называется? Дело в том что я ни в одном своем методе не использовал I,Q данные. Вот один способ, называется Детектор Кривизны или Детектор Огибающей
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 13 2009, 17:13
|
Участник

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

|
Не Не, только цифровой. Просто этот элемент эквивалентен Диоду. Только положительную волну пропускает.
|
|
|
|
|
Feb 13 2009, 18:19
|
Участник

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

|
Еще делал с детектированием Нулей. Zero-Crossing Detector
|
|
|
|
|
Mar 4 2009, 09:39
|
Участник

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

|
Цитата(DRUID3 @ Feb 26 2009, 04:06)  Имеется плата с антенной и FPGA, которая принимает FM сигнал. Далее на компьютер через PCI-express идет огромный массив данных - дискретные отсчеты FM сигнала. Здесь нету никаких I и Q данных. Моя задача уже обрабатывать этот массив данных и проводить демодуляцию FM программными алгоритмами. Что еще непонятно?
|
|
|
|
|
Mar 4 2009, 15:50
|

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

|
Цитата(ACiDUser @ Mar 4 2009, 11:39)  Имеется плата с антенной и FPGA, которая принимает FM сигнал. Далее на компьютер через PCI-express идет огромный массив данных - дискретные отсчеты FM сигнала. Здесь нету никаких I и Q данных. Моя задача уже обрабатывать этот массив данных и проводить демодуляцию FM программными алгоритмами.
Что еще непонятно? непонятно зачем Вы упомянули АМ детектор при детектировании ЧМ. Далее непонятно почему не имея соответствующей подготовки Вы взялись за такую задачу - так много платят? Далее об IQ-каналах. Так их нигде нет. Это выдумка, козни математиков отбирающих хлеб у истинных радиотехников... Историю с Ли де Форестом помните?  Но вот статейКО где Вам покажут как можно получить из действительного сигнала комплексный. А модулятор есть книжке Лайонса(и еще многих других) - это универсальный FM демодулятор для любых значений девиации...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Mar 4 2009, 18:07
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
Mar 11 2009, 11:11
|
Участник

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

|
Цитата(DRUID3 @ Mar 4 2009, 19:50)  непонятно зачем Вы упомянули АМ детектор при детектировании ЧМ. Далее непонятно почему не имея соответствующей подготовки Вы взялись за такую задачу - так много платят? По первому вопросу товарищ leksa всё очень грамотно объяснил. А по второму - это исследование для бакалаврской работы а так же часть проекта Software Radio с нерегулярной дискретизацией, над которой я работаю. И у нас просто нет таких специалистов которые сразу знают что делать и задания дают, которые требуют исследований тк. в институте работаю. Могут дать любое задание - а дальше сиди в гугле и разбирайся  Нужно реализовать несколько методов демодуляции ЧМ а потом их сравнить. Сигнал представляет собой огромный массив данных полученный с DAQ платы. Еще делал такую схему с Детектированием нулей (Zero-Crossing Detector). Сначала нашел все нули где сигнал ось X пересекает. Имея два нуля можно посчитать мгновенную частоту. А т.к. мгновенная частота ЧМ пропорциональна мгновенному значению модулирущего сигнала - можно восстановить модулирующий сигнал. Сигнал получается идентичным оригинальному и совпадает с ним по фазе. Проблема в том что если я наложу искусственный шум, то уже не получается так красиво. Алгоритм воспринимает шум - как пересечения с осью Х и добавляет в массив лишние нули. Подскажите как можно можно с этим бороться? Цитата(leksa @ Mar 4 2009, 22:07)  Похоже, что сигнал вы оцифровываете на поднесущей(ПЧ и т.п.), то есть Digital Down Converter не используете. Дело в том что пытаемся захватить весь спектр радио-частот сразу. Затем фильтруем нужную полосу и работаем с тем что отфильтровали. Цитата(leksa @ Mar 4 2009, 22:07)  Минусом такой схемы можно назвать прямую зависимость уровня выходного сигнала от уровня мощности принимаемого сигнала. И помехоустойчивость хуже чем у ФАПЧ, раньше проявляется пороговый эффект, когда при падении до определенного уровня отношения сигнал/шум демодулятор "ломается", то есть резко ухудшается качество сигнала на выходе вплоть до полной неразборчивости. А если этот алгоритм проводить не электронной схемой а программным кодом?
|
|
|
|
|
Mar 11 2009, 12:53
|
Участник

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

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

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

|
Изобретать в плане схемы не надо - согласен. Но вот как написать программу, которая будет делать тоже самое + разработать алгоритмы для подавления шумов - требует времени. PCI-Express шины должно хватить даже для очень широкой полосы.
|
|
|
|
|
Mar 11 2009, 13:31
|
Участник

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

|
Цитата(petrov @ Mar 11 2009, 17:28)  Не хватит вычислительных ресурсов универсального центрального процессора чтобы в реальном времени демодулировать. А можно узнать откуда такие данные?
|
|
|
|
|
Mar 11 2009, 14:20
|
Участник

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

|
Вы не учли одно НО, у нас дискретизация сигнала проводится нелинейно  и делается это с помощью АЦП и FPGA, далее массив данных принимается компьютером через PCI-Express где уже производится вся обработка. DAQ плата дискретизацией занимается, хотим сделать именно демодуляцию в реальном времени. Конечно, сначала нужно отфильтровать нужную полосу.
|
|
|
|
|
Mar 11 2009, 14:24
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(ACiDUser @ Mar 11 2009, 17:09)  Вы не учли одно НО, у нас дискретизация сигнала проводится нелинейно  Что это означает? Цитата(ACiDUser @ Mar 11 2009, 17:09)  и делается это с помощью АЦП и FPGA, далее массив данных принимается компьютером через PCI-Express где уже производится вся обработка.
DAQ плата дискретизацией занимается, хотим сделать именно демодуляцию в реальном времени. Так как успеет процессор в реальном времени демодулировать то широкополосные сигналы? Ведь на один отсчёт входного сигнала требуются сотни если не тысячи команд, нету ещё процессоров с такой тактовой частотой. Вообще не ясна мотивация, что вы хотите получить то? Приёмник FM-радиостанций ценой в несколько тысяч долларов? Или исследовать модуляции, тогда наверное есть что-то более актуальное чем устаревшая ЧМ и зачем тогда все эти писиай экспрессы, достаточно головы и матлаба?
|
|
|
|
|
Mar 11 2009, 14:40
|
Участник

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

|
Цитата(petrov @ Mar 11 2009, 18:24)  Что это означает? Это означает что можно обойти критерий Найквиста о двух обязательных считываний на период - для возможности восстановить сигнал. А значит можно использовать более дешевый АЦП с тем же результатом. Цитата(petrov @ Mar 11 2009, 18:24)  Так как успеет процессор в реальном времени демодулировать то широкополосные сигналы? Ведь на один отсчёт входного сигнала требуются сотни если не тысячи команд, нету ещё процессоров с такой тактовой частотой. Широкополосные не потянет. Но ЧМ демодулировать реально. Получить многофункциональный девайс, в идеале для приёма видео и аудио информации. Сначала сделаем - а потом посмотрим где можно применить. Никто не создавал, например, компьютеры изначально для массового потребления.
|
|
|
|
|
Mar 11 2009, 15:39
|
Участник

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

|
Ну вот пусть болит голова об этом у тех кто этим занимается - кодированием и разработкой модуляций. Пока всё радиовещание перейдет на цифровой стандарт пройдет еще много времени. А иметь устройство для которого демодуляция - это просто написанная программа очень удобно, можно принимать разные сигналы и демодулировать их, и для этого не нужно переделывать железо.
|
|
|
|
|
Mar 11 2009, 17:58
|

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

|
ACiDUser, Как вы себе представляете SDR? Антенна+АЦП+компьютер? Дак это утопия. Как минимум потому что невозможно сделать абсолютно универсальный преселектор. За универсальность всегда приходится платить очень дорого - и ценой и характеристиками. Цитата Может я чего-то не понимаю, но не видно реализма какого-то. Вот берёшь буржуйские диссеры и многие можно в реальной разработке тех же модемов использовать. А у нас что-то не видно такого, да вообще зачастую бред какой-то. +1
--------------------
|
|
|
|
|
Mar 12 2009, 12:58
|
Участник

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

|
Цитата(Pathfinder @ Mar 11 2009, 21:58)  ACiDUser, Как вы себе представляете SDR? Антенна+АЦП+компьютер? Дак это утопия. Как минимум потому что невозможно сделать абсолютно универсальный преселектор. За универсальность всегда приходится платить очень дорого - и ценой и характеристиками.
+1 Создайте отдельную тему с названием "SDR реально или нет?" Можно уже по теме отвечать? Цитата(_Anatoliy @ Mar 12 2009, 09:48)  Спасибо, книжка что надо! А про метод с детектированием нулей что-нибудь есть?
|
|
|
|
|
Mar 12 2009, 14:35
|
Участник

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

|
С детектированием нулей получилось так. Если наложить шум, тогда алгоритм детектирует лишние нули и демодулированный сигнал уже искажен. Есть задумка брать из этих нескольких нулей среднее значение.
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 12 2009, 18:02
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
Mar 13 2009, 00:44
|
Участник

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

|
Цитата(leksa) Имхо, метод с детектированием нулей не очень подходит для приема радиосигнала, по-моему помехоустойчивость у него будет хуже чем у других уже обсуждавшихся схем. Насчет помехоустойчивости согласен. А про гистерезис коллеги посоветовали сегодня, всеравно спасибо! Я читал что этот метод очень хвалят из-за его быстрой работы. А также не требуется знать несущюю частоту. При грамотной обработке шумов метод может быть весьма хорош. Можно попробовать проводить усреднение сигнала на коротких промежутках, что может существенно убрать шумы. Ну и, конечно, срезать амплитуду. Алгоритм умеет определять нули положительного полупериода и отрицательного - т.е. сигнал после пересечения идет вверх или вниз. Это может пригодится для демодуляции цифрового ЧМ. Пока не понял зачем используется генератор импульсов (см. прикрепленную картинку) Цитата(leksa) Если с матлабом работаете могу целиком скрипт кинуть. Работаю в LabView, но Матлаб тоже имеется и буду благодарен за пример скрипта. Как доведу алгоритмы до стабильной работы попробую с реальным сигналом от генератора, поэтому пока и балуюсь с шумами. с ФАПЧ я нашел готовый пример, но пока не могу его настроить под мой проект. Еще не разобрался как сам фильтр работает. Буду делать по мануалу. Спасибо за конструктивные ответы
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 13 2009, 06:51
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
Mar 13 2009, 15:34
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
Mar 13 2009, 18:28
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
Mar 24 2009, 16:07
|
Участник

Группа: Новичок
Сообщений: 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
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 24 2009, 19:26
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
May 25 2009, 14:39
|
Участник

Группа: Новичок
Сообщений: 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
Эскизы прикрепленных изображений
|
|
|
|
|
May 26 2009, 09:41
|
Участник

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

|
Спасибо, заценим.
А по поводу модуляции уже разобрался. У меня была ошибка в формуле.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|