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

 
 
> Симуляция ЧМ сигнала содержащего музыку, Вопрос спецам
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
 
Start new topic
Ответов
ACiDUser
сообщение Mar 12 2009, 14:35
Сообщение #2


Участник
*

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



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


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #4


Участник
*

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



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

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

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

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

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

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


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

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

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

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


Участник
*

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


Участник
*

Группа: Новичок
Сообщений: 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
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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   Симуляция ЧМ сигнала содержащего музыку   Feb 10 2009, 15:29
- - INT1   Не уверен, что в реалтайме симулятор сможет смодел...   Feb 10 2009, 19:06
- - TSerg   Цитата(ACiDUser @ Feb 10 2009, 18:29) Д...   Feb 11 2009, 09:45
- - _Anatoliy   Цитата(ACiDUser @ Feb 10 2009, 16:29) Осн...   Feb 11 2009, 10:38
- - ACiDUser   Спасибо за ответы! Долго мучался откуда эти ...   Feb 12 2009, 01:05
|- - _Anatoliy   Цитата(ACiDUser @ Feb 12 2009, 03:05) Спа...   Feb 12 2009, 05:36
|- - ACiDUser   Цитата(_Anatoliy @ Feb 12 2009, 09:36) Не...   Feb 12 2009, 18:08
|- - _Anatoliy   Цитата(ACiDUser @ Feb 12 2009, 20:08) L...   Feb 12 2009, 18:40
- - ACiDUser   Мы тоже работаем с FPGA но вся обработка только на...   Feb 12 2009, 19:00
- - ACiDUser   Цитата(_Anatoliy @ Feb 12 2009, 22:40) Ес...   Feb 13 2009, 01:14
|- - _Anatoliy   Цитата(ACiDUser @ Feb 13 2009, 02:14) А к...   Feb 13 2009, 07:06
|- - ACiDUser   Цитата(_Anatoliy @ Feb 13 2009, 11:06) А ...   Feb 13 2009, 16:20
|- - _Anatoliy   Цитата(ACiDUser @ Feb 13 2009, 18:20) Хмм...   Feb 13 2009, 16:38
|- - DRUID3   Цитата(ACiDUser @ Feb 13 2009, 18:20) Хмм...   Feb 26 2009, 00:06
||- - ACiDUser   Цитата(DRUID3 @ Feb 26 2009, 04:06) ...   Mar 4 2009, 09:39
||- - DRUID3   Цитата(ACiDUser @ Mar 4 2009, 11:39) Имее...   Mar 4 2009, 15:50
||- - ACiDUser   Цитата(DRUID3 @ Mar 4 2009, 19:50) непоня...   Mar 11 2009, 11:11
||- - petrov   Самое главное не заниматься изобретением плохого в...   Mar 11 2009, 12:25
|- - leksa   Цитата(ACiDUser @ Feb 13 2009, 19:20) ......   Mar 4 2009, 18:07
|- - _Anatoliy   Цитата(leksa @ Mar 4 2009, 20:07) Подскаж...   Mar 12 2009, 05:48
- - ACiDUser   Не Не, только цифровой. Просто этот элемент эквива...   Feb 13 2009, 17:13
- - ACiDUser   Еще делал с детектированием Нулей. Zero-Crossing D...   Feb 13 2009, 18:19
- - ACiDUser   Идея Software Radio в том чтобы было минимум желез...   Mar 11 2009, 12:53
|- - petrov   Цитата(ACiDUser @ Mar 11 2009, 15:53) Иде...   Mar 11 2009, 13:11
- - ACiDUser   Изобретать в плане схемы не надо - согласен. Но во...   Mar 11 2009, 13:22
|- - petrov   Цитата(ACiDUser @ Mar 11 2009, 16:22) PCI...   Mar 11 2009, 13:28
|- - ACiDUser   Цитата(petrov @ Mar 11 2009, 17:28) Не хв...   Mar 11 2009, 13:31
|- - petrov   Цитата(ACiDUser @ Mar 11 2009, 16:31) А м...   Mar 11 2009, 13:38
|- - Serg76   Цитата(ACiDUser @ Mar 11 2009, 16:31) А м...   Mar 13 2009, 16:44
- - ACiDUser   Вы не учли одно НО, у нас дискретизация сигнала пр...   Mar 11 2009, 14:20
|- - petrov   Цитата(ACiDUser @ Mar 11 2009, 17:09) Вы ...   Mar 11 2009, 14:24
|- - ACiDUser   Цитата(petrov @ Mar 11 2009, 18:24) Что э...   Mar 11 2009, 14:40
|- - petrov   Цитата(ACiDUser @ Mar 11 2009, 17:40) Это...   Mar 11 2009, 15:00
- - ACiDUser   Ну почитай почему многие институты сейчас уделяют ...   Mar 11 2009, 15:12
|- - petrov   Цитата(ACiDUser @ Mar 11 2009, 18:12) Ну ...   Mar 11 2009, 15:27
- - ACiDUser   Ну вот пусть болит голова об этом у тех кто этим з...   Mar 11 2009, 15:39
- - Pathfinder   ACiDUser, Как вы себе представляете SDR? Антенна+...   Mar 11 2009, 17:58
|- - ACiDUser   Цитата(Pathfinder @ Mar 11 2009, 21:58) A...   Mar 12 2009, 12:58
|- - _Anatoliy   Цитата(ACiDUser @ Mar 12 2009, 14:58) Спа...   Mar 12 2009, 13:40
|- - leksa   Цитата(leksa @ Mar 13 2009, 09:51) Где им...   Mar 13 2009, 15:34
- - leksa   Скрипт с "гистерезисом". Расширение над...   Mar 13 2009, 18:28
- - ACiDUser   После детектирования ЧМ при помощи детектора нулей...   May 25 2009, 14:39
|- - _Anatoliy   Цитата(ACiDUser @ May 25 2009, 15:39) По...   May 26 2009, 06:11
- - ACiDUser   Спасибо, заценим. А по поводу модуляции уже разоб...   May 26 2009, 09:41


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

 


RSS Текстовая версия Сейчас: 7th August 2025 - 17:26
Рейтинг@Mail.ru


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