Сформировать битовую последовательность из булевых значений.

Простейшие вопросы в области инженерной разработки
Ответить
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Сформировать битовую последовательность из булевых значений.

Сообщение Lancelot1 »

Здравствуйте! Попытался реализовать подобие фазовой модуляции с двумя векторами. Реализовал с двумя генераторами синуса, битовая последовательность управляет фазой первого генератора 0 - не сдвигает фазу, 1 сдвигает на 180 градусов. Второй генератор является образцовым с ним сравнивается фаза модулированного сигнала. После вычитания двух сигналов я их сравниваю с константой, потом отправляю на искл. или, синфазный сигнал определяется, как ложь, а сдвинутый на 180 как истина. Так вот возникла проблема не могу восстановить из булевых значений входную битовую последовательность, на графе конечно есть одиночные импульсы, но в последовательность они не складываются. Помогите пожалуйста :dntknw:
Вложения
Фазовая.jpg
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Kosist »

А как Вы определяете, какой уровень синуса 0, а какой 1? Из скрина этого не видно... Или Вы берете пиковые значения только?
Вы сравниваете разницу сигналов (т.е. массив точек) с константой. На выходе будет массив, но Вы отображаете его в булевском скаляре Y. А все из-за использования динамического типа сигнала - его еще нужно правильно конвертировать (например при помощи "Convert from Dynamic Data"). А так, по умолчанию оно само решает, в что конвертироваться...
Мне кажется, есть ошибка в скалярах и массивах, но - без кода тяжело сказать. Скрин есть; но перепечатывать код с экрана вряд ли кто-то будет...
Мы делили апельсин - много наших полегло...
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Lancelot1 »

Сравнение происходит путем вычитания сигналов, в зависимости от результата, логика выдает тру и фолс, вот на этом основание хочу восстановить битовую последовательность. Код скинуть могу, напишите в какой версии сохранить, у меня LabVIEW 2015.
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Lancelot1 »

Вот ВИ в разных версиях.
Вложения
фазовая2.vi
(89.09 КБ) 92 скачивания
фазовая.vi
(92.82 КБ) 94 скачивания
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Юрий »

Вообще задача даже интересная, если задаться условием, что изменение фазы надо ловить мгновенно. Обычно фаза определяется на нескольких периодах. Мгновенное измерение упирается в проблему измерения около нуля. В приложенной программе фазу можно задавать вручную, слайдером "Вариант".
Вложения
фазовая3.vi
(125.77 КБ) 96 скачиваний
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Lancelot1 »

Юрий писал(а):Вообще задача даже интересная, если задаться условием, что изменение фазы надо ловить мгновенно. Обычно фаза определяется на нескольких периодах. Мгновенное измерение упирается в проблему измерения около нуля. В приложенной программе фазу можно задавать вручную, слайдером "Вариант".
Простите немного не понимаю вашу модель. В моей модели сдвиг фазы 180 соответствует единице битовой последовательности, а сдвиг фазы 0 нулю битовой последовательности. У меня возникла проблема в восстановление исходной битовой последовательности. Дайте пожалуйста пояснение по вашей модели :dntknw:
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Юрий »

Lancelot1 писал(а):Простите немного не понимаю вашу модель. В моей модели сдвиг фазы 180 соответствует единице битовой последовательности, а сдвиг фазы 0 нулю битовой последовательности. У меня возникла проблема в восстановление исходной битовой последовательности. Дайте пожалуйста пояснение по вашей модели :dntknw:
Сдвиг фазы на 180 град., это то же самое, что инвертировать гармонику при условии, конечно, что нет постоянной составляющей. Фраза "восстановить исходную последовательность" мне не понятна, думаю, что и другим. Косвенное подтверждение тому отсутствие ответов. Только по коду можно было догадаться, что надо определять смену фазы и обозначать эту смену нулём или единицей. Выяснение того, какая в данный момент фаза, я посчитал удобней делать перемножением сигнала и опоры. Если они в фазе, то значения все положительные, если в противофазе, то - отрицательные. На эту тему можно и подискутировать. Около нуля при любом варианте мгновенно определить фазу практически нет возможности, поэтому эти зоны лучше исключить из рассмотрения, а в пределах этой зоны брать предыдущее состояние. Пришла мысль, что улучшить достоверность измерения фазы можно путём введения гистерезиса, см. вложение.
Вложения
фазовая4.vi
(126.33 КБ) 117 скачиваний
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Lancelot1 »

Юрий писал(а):
Lancelot1 писал(а):Простите немного не понимаю вашу модель. В моей модели сдвиг фазы 180 соответствует единице битовой последовательности, а сдвиг фазы 0 нулю битовой последовательности. У меня возникла проблема в восстановление исходной битовой последовательности. Дайте пожалуйста пояснение по вашей модели :dntknw:
Сдвиг фазы на 180 град., это то же самое, что инвертировать гармонику при условии, конечно, что нет постоянной составляющей. Фраза "восстановить исходную последовательность" мне не понятна, думаю, что и другим. Косвенное подтверждение тому отсутствие ответов. Только по коду можно было догадаться, что надо определять смену фазы и обозначать эту смену нулём или единицей. Выяснение того, какая в данный момент фаза, я посчитал удобней делать перемножением сигнала и опоры. Если они в фазе, то значения все положительные, если в противофазе, то - отрицательные. На эту тему можно и подискутировать. Около нуля при любом варианте мгновенно определить фазу практически нет возможности, поэтому эти зоны лучше исключить из рассмотрения, а в пределах этой зоны брать предыдущее состояние. Пришла мысль, что улучшить достоверность измерения фазы можно путём введения гистерезиса, см. вложение.
Не хочу показать глупым, но честно говоря мне с вашей моделью тяжело работать, мои познания в LabVIEW небольшие. В моей исходной модели я случайно генерировал 0 или 1, 0 не сдвигал фазу, а 1 сдвигал на 180, то есть я своеобразно модулировал эту входную битовую последовательность, демодулирую путем сравнения модулированного синуса с образцовым, когда сигнал приходит в фазе с образцом у меня появляется лог 0, когда в противофазе лог 1, вот именно из череды этих логических уровней я и хочу восстановить входную битовую последовательность, чтобы их можно было визуально сравнить. На лицевой панели у меня должно быть 4 графа модулированный синус, образцовый синус, входная и выходная битовая последовательность. Именно с выходной последовательностью проблема не могу привести ее к человеческому виду, как входную.
Вы меня извините, ваш труд я ценю, но не могу его привести к нужному мне виду.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Сформировать битовую последовательность из булевых значе

Сообщение Blackman »

Идеальный сигнал без шума.
Вложения
Simple PSK model FP.PNG
Simple PSK model.vi
(29.58 КБ) 92 скачивания
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Lancelot1 »

Blackman писал(а):Идеальный сигнал без шума.
Спасибо большое!!! Надо будет больше заниматься LabVIEW/
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Юрий »

Blackman писал(а):Идеальный сигнал без шума.
Дааа, уж больно витиевато. Ну, да это ладно. На мой взгляд в этой модели не хорошо то, что фаза сигнала меняется всегда в нулевом состоянии амплитуды. Намного интереснее, когда сигнал может менять фазу в любой момент.
Lancelot1
beginner
beginner
Сообщения: 10
Зарегистрирован: 17 окт 2016, 12:51
Версия LabVIEW: 2015
Контактная информация:

Re: Сформировать битовую последовательность из булевых значе

Сообщение Lancelot1 »

Юрий писал(а):
Blackman писал(а):Идеальный сигнал без шума.
Дааа, уж больно витиевато. Ну, да это ладно. На мой взгляд в этой модели не хорошо то, что фаза сигнала меняется всегда в нулевом состоянии амплитуды. Намного интереснее, когда сигнал может менять фазу в любой момент.
Ну тем самым моделируется BPSK.
Ответить

Вернуться в «Для чайников»