Сформировать битовую последовательность из булевых значений.
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Сформировать битовую последовательность из булевых значений.
Здравствуйте! Попытался реализовать подобие фазовой модуляции с двумя векторами. Реализовал с двумя генераторами синуса, битовая последовательность управляет фазой первого генератора 0 - не сдвигает фазу, 1 сдвигает на 180 градусов. Второй генератор является образцовым с ним сравнивается фаза модулированного сигнала. После вычитания двух сигналов я их сравниваю с константой, потом отправляю на искл. или, синфазный сигнал определяется, как ложь, а сдвинутый на 180 как истина. Так вот возникла проблема не могу восстановить из булевых значений входную битовую последовательность, на графе конечно есть одиночные импульсы, но в последовательность они не складываются. Помогите пожалуйста
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
А как Вы определяете, какой уровень синуса 0, а какой 1? Из скрина этого не видно... Или Вы берете пиковые значения только?
Вы сравниваете разницу сигналов (т.е. массив точек) с константой. На выходе будет массив, но Вы отображаете его в булевском скаляре Y. А все из-за использования динамического типа сигнала - его еще нужно правильно конвертировать (например при помощи "Convert from Dynamic Data"). А так, по умолчанию оно само решает, в что конвертироваться...
Мне кажется, есть ошибка в скалярах и массивах, но - без кода тяжело сказать. Скрин есть; но перепечатывать код с экрана вряд ли кто-то будет...
Вы сравниваете разницу сигналов (т.е. массив точек) с константой. На выходе будет массив, но Вы отображаете его в булевском скаляре Y. А все из-за использования динамического типа сигнала - его еще нужно правильно конвертировать (например при помощи "Convert from Dynamic Data"). А так, по умолчанию оно само решает, в что конвертироваться...
Мне кажется, есть ошибка в скалярах и массивах, но - без кода тяжело сказать. Скрин есть; но перепечатывать код с экрана вряд ли кто-то будет...
Мы делили апельсин - много наших полегло...
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Сравнение происходит путем вычитания сигналов, в зависимости от результата, логика выдает тру и фолс, вот на этом основание хочу восстановить битовую последовательность. Код скинуть могу, напишите в какой версии сохранить, у меня LabVIEW 2015.
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Вот ВИ в разных версиях.
- Вложения
-
- фазовая2.vi
- (89.09 КБ) 93 скачивания
-
- фазовая.vi
- (92.82 КБ) 95 скачиваний
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Вообще задача даже интересная, если задаться условием, что изменение фазы надо ловить мгновенно. Обычно фаза определяется на нескольких периодах. Мгновенное измерение упирается в проблему измерения около нуля. В приложенной программе фазу можно задавать вручную, слайдером "Вариант".
- Вложения
-
- фазовая3.vi
- (125.77 КБ) 97 скачиваний
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Простите немного не понимаю вашу модель. В моей модели сдвиг фазы 180 соответствует единице битовой последовательности, а сдвиг фазы 0 нулю битовой последовательности. У меня возникла проблема в восстановление исходной битовой последовательности. Дайте пожалуйста пояснение по вашей моделиЮрий писал(а):Вообще задача даже интересная, если задаться условием, что изменение фазы надо ловить мгновенно. Обычно фаза определяется на нескольких периодах. Мгновенное измерение упирается в проблему измерения около нуля. В приложенной программе фазу можно задавать вручную, слайдером "Вариант".
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Сдвиг фазы на 180 град., это то же самое, что инвертировать гармонику при условии, конечно, что нет постоянной составляющей. Фраза "восстановить исходную последовательность" мне не понятна, думаю, что и другим. Косвенное подтверждение тому отсутствие ответов. Только по коду можно было догадаться, что надо определять смену фазы и обозначать эту смену нулём или единицей. Выяснение того, какая в данный момент фаза, я посчитал удобней делать перемножением сигнала и опоры. Если они в фазе, то значения все положительные, если в противофазе, то - отрицательные. На эту тему можно и подискутировать. Около нуля при любом варианте мгновенно определить фазу практически нет возможности, поэтому эти зоны лучше исключить из рассмотрения, а в пределах этой зоны брать предыдущее состояние. Пришла мысль, что улучшить достоверность измерения фазы можно путём введения гистерезиса, см. вложение.Lancelot1 писал(а):Простите немного не понимаю вашу модель. В моей модели сдвиг фазы 180 соответствует единице битовой последовательности, а сдвиг фазы 0 нулю битовой последовательности. У меня возникла проблема в восстановление исходной битовой последовательности. Дайте пожалуйста пояснение по вашей модели
- Вложения
-
- фазовая4.vi
- (126.33 КБ) 118 скачиваний
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Не хочу показать глупым, но честно говоря мне с вашей моделью тяжело работать, мои познания в LabVIEW небольшие. В моей исходной модели я случайно генерировал 0 или 1, 0 не сдвигал фазу, а 1 сдвигал на 180, то есть я своеобразно модулировал эту входную битовую последовательность, демодулирую путем сравнения модулированного синуса с образцовым, когда сигнал приходит в фазе с образцом у меня появляется лог 0, когда в противофазе лог 1, вот именно из череды этих логических уровней я и хочу восстановить входную битовую последовательность, чтобы их можно было визуально сравнить. На лицевой панели у меня должно быть 4 графа модулированный синус, образцовый синус, входная и выходная битовая последовательность. Именно с выходной последовательностью проблема не могу привести ее к человеческому виду, как входную.Юрий писал(а):Сдвиг фазы на 180 град., это то же самое, что инвертировать гармонику при условии, конечно, что нет постоянной составляющей. Фраза "восстановить исходную последовательность" мне не понятна, думаю, что и другим. Косвенное подтверждение тому отсутствие ответов. Только по коду можно было догадаться, что надо определять смену фазы и обозначать эту смену нулём или единицей. Выяснение того, какая в данный момент фаза, я посчитал удобней делать перемножением сигнала и опоры. Если они в фазе, то значения все положительные, если в противофазе, то - отрицательные. На эту тему можно и подискутировать. Около нуля при любом варианте мгновенно определить фазу практически нет возможности, поэтому эти зоны лучше исключить из рассмотрения, а в пределах этой зоны брать предыдущее состояние. Пришла мысль, что улучшить достоверность измерения фазы можно путём введения гистерезиса, см. вложение.Lancelot1 писал(а):Простите немного не понимаю вашу модель. В моей модели сдвиг фазы 180 соответствует единице битовой последовательности, а сдвиг фазы 0 нулю битовой последовательности. У меня возникла проблема в восстановление исходной битовой последовательности. Дайте пожалуйста пояснение по вашей модели
Вы меня извините, ваш труд я ценю, но не могу его привести к нужному мне виду.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Сформировать битовую последовательность из булевых значе
Идеальный сигнал без шума.
- Вложения
-
- Simple PSK model.vi
- (29.58 КБ) 93 скачивания
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Спасибо большое!!! Надо будет больше заниматься LabVIEW/Blackman писал(а):Идеальный сигнал без шума.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Дааа, уж больно витиевато. Ну, да это ладно. На мой взгляд в этой модели не хорошо то, что фаза сигнала меняется всегда в нулевом состоянии амплитуды. Намного интереснее, когда сигнал может менять фазу в любой момент.Blackman писал(а):Идеальный сигнал без шума.
-
- beginner
- Сообщения: 10
- Зарегистрирован: 17 окт 2016, 12:51
- Версия LabVIEW: 2015
- Контактная информация:
Re: Сформировать битовую последовательность из булевых значе
Ну тем самым моделируется BPSK.Юрий писал(а):Дааа, уж больно витиевато. Ну, да это ладно. На мой взгляд в этой модели не хорошо то, что фаза сигнала меняется всегда в нулевом состоянии амплитуды. Намного интереснее, когда сигнал может менять фазу в любой момент.Blackman писал(а):Идеальный сигнал без шума.