Доброго времени суток.
Передо мной стоит задача: реализовать генератор азбуки Морзе. Сигнал состоит из импульсных пар типа меандр длительностью 20 мкс. Частота заполнения 1350 импульсных пар в секунду. Длительность точек составляет 0,13 с. Длительность тире в три раза больше длительности точек. Пауза между точками и/или тире равна длительности одной точки. Пауза между буквами или цифрами составляет не менее длительности трех точек.
Получилось реализовать:
1. SubVI на вход которого подаются буквы, на выходе получаем массив с соответствующим значением 1-0.
2. в основном VI с помощью цикла FOR реализована последовательность "точка".
Проблема: 176 итераций цикла FOR очень долго вычисляются и это только одна точка. Можно ли сделать что-нибудь проще?
Суммирование сигналов. Генерация Морзе
-
- beginner
- Сообщения: 13
- Зарегистрирован: 25 май 2011, 08:17
- Версия LabVIEW: 10-13
- Контактная информация:
Суммирование сигналов. Генерация Морзе
- Вложения
-
- MorzeAM (SubVI).vi
- LabVIEW 12
- (33.31 КБ) 126 скачиваний
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Суммирование сигналов. Генерация Морзе
У Вас проблема не только в этом.
Например в Выложенной SubVI, Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Но это основной "косяк".
Я бы рекомендовал и текст в код морзе по иному преобразовывать. Есть же достаточно примеров, почему Вы его не взяли за основу?
Вот например:
Например в Выложенной SubVI, Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Но это основной "косяк".
Я бы рекомендовал и текст в код морзе по иному преобразовывать. Есть же достаточно примеров, почему Вы его не взяли за основу?
Вот например:
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- beginner
- Сообщения: 13
- Зарегистрирован: 25 май 2011, 08:17
- Версия LabVIEW: 10-13
- Контактная информация:
Re: Суммирование сигналов. Генерация Морзе
В основной программе пользователь в поле "Alphabet" должен будет ввести от 3 до 4 букв. Идея подпрограммы была в том, чтобы формировать на выходе 0 и 1, чтобы затем каждой единице присваивать последовательность (сумму) импульсных пар (эту сумму импульсных пар как раз формирует цикл FOR), а каждому нулю - нулевое значение.IvanLis писал(а):У Вас проблема не только в этом.
Например в Выложенной SubVI, Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Но это основной "косяк".
Поясните, в чем ошибка при формировании массива из элементов с различным количеством символов?
Согласен, что удобнее было бы запихать все символы (буквы и цифры) в кластер или массив, но это ведь не принципиально? Или есть плюс в самой обработке кода?IvanLis писал(а):У Вас проблема не только в этом.
Я бы рекомендовал и текст в код морзе по иному преобразовывать. Есть же достаточно примеров, почему Вы его не взяли за основу?
Вот например:
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Суммирование сигналов. Генерация Морзе
Я уже пояснил:emptyNESS писал(а):Поясните, в чем ошибка при формировании массива из элементов с различным количеством символов?
Подключите индикаторы и проконтролируйте результат, Вы сами все увидите и поймете.IvanLis писал(а):Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Можно вилкой огород копать, а батоном хлеба гвозди забивать. При достаточной сноровке и упорстве результат получите, но дело в затраченном ресурсе.emptyNESS писал(а):Согласен, что удобнее было бы запихать все символы (буквы и цифры) в кластер или массив, но это ведь не принципиально? Или есть плюс в самой обработке кода?
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- beginner
- Сообщения: 13
- Зарегистрирован: 25 май 2011, 08:17
- Версия LabVIEW: 10-13
- Контактная информация:
Re: Суммирование сигналов. Генерация Морзе
IvanLis, всё равно не понял Вас, но если такой вариант:
(Тут уже нет формирования в цикле большого массива)
(Тут уже нет формирования в цикле большого массива)
- Вложения
-
- MorzeAM (SubVI).vi
- (24 КБ) 125 скачиваний
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Суммирование сигналов. Генерация Морзе
У Вас в профиле написано 2010, а файл 2012, посмотреть я его не имею возможности. Вы после объединения нескольких 1D массивов в 2D, чего ожидаете получить?emptyNESS писал(а):IvanLis, всё равно не понял Вас, но если такой вариант:
(Тут уже нет формирования в цикле большого массива)
Наверное array from Sim, а на самом деле append 2D array, т.к. он выравнивается до максимальной "ширины", а все недостающие элементы дописываются.
Вот и подумайте о последствиях.
Вы ожидаете одно "тире", а получаете "-...."
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- beginner
- Сообщения: 13
- Зарегистрирован: 25 май 2011, 08:17
- Версия LabVIEW: 10-13
- Контактная информация:
Re: Суммирование сигналов. Генерация Морзе
В первом сообщении я писал, что файл для LabVIEW версии 2012 (в подписи к файлу). Профиль исправил.IvanLis писал(а): У Вас в профиле написано 2010, а файл 2012, посмотреть я его не имею возможности.
Это я учел, но решение проблемы мне кажется очень "корявым", хотя работает: я изменил тип значений на 64 bit int, в массиве значений только один столбец.IvanLis писал(а):Вы после объединения нескольких 1D массивов в 2D, чего ожидаете получить?
Наверное array from Sim, а на самом деле append 2D array, т.к. он выравнивается до максимальной "ширины", а все недостающие элементы дописываются.
Вот и подумайте о последствиях.
Вы ожидаете одно "тире", а получаете "-...."
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Суммирование сигналов. Генерация Морзе
Я тут бессилен .emptyNESS писал(а):Это я учел, но решение проблемы мне кажется очень "корявым", хотя работает: я изменил тип значений на 64 bit int, в массиве значений только один столбец.
В виду сложившейся ситуации, вижу два пути решения данного вопроса:
1. Вы продолжаете самостоятельную разработку и реализуете все свои фантазии, но при этом прекращаете насиловать мозг остальным.
2. Вы перечитываете тему начиная со второго поста, берете за основу предложенный пример и реализуете все, прислушиваясь к озвученным советам.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- beginner
- Сообщения: 13
- Зарегистрирован: 25 май 2011, 08:17
- Версия LabVIEW: 10-13
- Контактная информация:
Re: Суммирование сигналов. Генерация Морзе
IvanLis, потом даже с вопросом обращаться не хочется... Вы как-то по-своему видите проблему и её решение.
Бредово конечно, согласен. Но чтобы просто получить массив со значениями вполне хватало. Сейчас я изменил тип массива значений кода Морзе на строковый. Думаю, что обычными операциями над строками можно обойтись, выделив из каждого элемента массива 0 и 1.Это я учел, но решение проблемы мне кажется очень "корявым", хотя работает: я изменил тип значений на 64 bit int, в массиве значений только один столбец.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 629 Просмотры
-
Последнее сообщение Artem.spb
-
- 0 Ответы
- 552 Просмотры
-
Последнее сообщение Pavlusik
-
- 0 Ответы
- 98 Просмотры
-
Последнее сообщение tamperplay