Суммирование сигналов. Генерация Морзе

Захват, обработка и генерирование сигнала
Ответить
emptyNESS
beginner
beginner
Сообщения: 13
Зарегистрирован: 25 май 2011, 08:17
Версия LabVIEW: 10-13
Контактная информация:

Суммирование сигналов. Генерация Морзе

Сообщение emptyNESS »

Доброго времени суток.

Передо мной стоит задача: реализовать генератор азбуки Морзе. Сигнал состоит из импульсных пар типа меандр длительностью 20 мкс. Частота заполнения 1350 импульсных пар в секунду. Длительность точек составляет 0,13 с. Длительность тире в три раза больше длительности точек. Пауза между точками и/или тире равна длительности одной точки. Пауза между буквами или цифрами составляет не менее длительности трех точек.
Получилось реализовать:
1. SubVI на вход которого подаются буквы, на выходе получаем массив с соответствующим значением 1-0.
2. в основном VI с помощью цикла FOR реализована последовательность "точка".
Проблема: 176 итераций цикла FOR очень долго вычисляются и это только одна точка. Можно ли сделать что-нибудь проще?
Вложения
Снимок.JPG
MorzeAM (SubVI).vi
LabVIEW 12
(33.31 КБ) 126 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Суммирование сигналов. Генерация Морзе

Сообщение IvanLis »

У Вас проблема не только в этом.
Например в Выложенной SubVI, Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Но это основной "косяк".
Я бы рекомендовал и текст в код морзе по иному преобразовывать. Есть же достаточно примеров, почему Вы его не взяли за основу?
Вот например:
Snd Morse Code Generator.vi
версию не помню, но древняя, возможно придется адаптировать
(151.77 КБ) 165 скачиваний
emptyNESS
beginner
beginner
Сообщения: 13
Зарегистрирован: 25 май 2011, 08:17
Версия LabVIEW: 10-13
Контактная информация:

Re: Суммирование сигналов. Генерация Морзе

Сообщение emptyNESS »

IvanLis писал(а):У Вас проблема не только в этом.
Например в Выложенной SubVI, Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Но это основной "косяк".
В основной программе пользователь в поле "Alphabet" должен будет ввести от 3 до 4 букв. Идея подпрограммы была в том, чтобы формировать на выходе 0 и 1, чтобы затем каждой единице присваивать последовательность (сумму) импульсных пар (эту сумму импульсных пар как раз формирует цикл FOR), а каждому нулю - нулевое значение.
Поясните, в чем ошибка при формировании массива из элементов с различным количеством символов?
IvanLis писал(а):У Вас проблема не только в этом.
Я бы рекомендовал и текст в код морзе по иному преобразовывать. Есть же достаточно примеров, почему Вы его не взяли за основу?
Вот например:
Snd Morse Code Generator.vi
Согласен, что удобнее было бы запихать все символы (буквы и цифры) в кластер или массив, но это ведь не принципиально? Или есть плюс в самой обработке кода?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Суммирование сигналов. Генерация Морзе

Сообщение IvanLis »

emptyNESS писал(а):Поясните, в чем ошибка при формировании массива из элементов с различным количеством символов?
Я уже пояснил:
IvanLis писал(а):Вы формируете 2D массив, но крайне неверно. У Вас разные символы, имеют разное количество элементов (точка/тире), а их в один массив.
Подключите индикаторы и проконтролируйте результат, Вы сами все увидите и поймете.
emptyNESS писал(а):Согласен, что удобнее было бы запихать все символы (буквы и цифры) в кластер или массив, но это ведь не принципиально? Или есть плюс в самой обработке кода?
Можно вилкой огород копать, а батоном хлеба гвозди забивать. При достаточной сноровке и упорстве результат получите, но дело в затраченном ресурсе.
emptyNESS
beginner
beginner
Сообщения: 13
Зарегистрирован: 25 май 2011, 08:17
Версия LabVIEW: 10-13
Контактная информация:

Re: Суммирование сигналов. Генерация Морзе

Сообщение emptyNESS »

IvanLis, всё равно не понял Вас, но если такой вариант:
(Тут уже нет формирования в цикле большого массива)
Вложения
MorzeAM (SubVI).vi
(24 КБ) 125 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Суммирование сигналов. Генерация Морзе

Сообщение IvanLis »

emptyNESS писал(а):IvanLis, всё равно не понял Вас, но если такой вариант:
(Тут уже нет формирования в цикле большого массива)
У Вас в профиле написано 2010, а файл 2012, посмотреть я его не имею возможности.
Без имени.png
Вы после объединения нескольких 1D массивов в 2D, чего ожидаете получить?
Наверное array from Sim, а на самом деле append 2D array, т.к. он выравнивается до максимальной "ширины", а все недостающие элементы дописываются.

Вот и подумайте о последствиях.
Вы ожидаете одно "тире", а получаете "-...."
emptyNESS
beginner
beginner
Сообщения: 13
Зарегистрирован: 25 май 2011, 08:17
Версия LabVIEW: 10-13
Контактная информация:

Re: Суммирование сигналов. Генерация Морзе

Сообщение emptyNESS »

IvanLis писал(а): У Вас в профиле написано 2010, а файл 2012, посмотреть я его не имею возможности.
В первом сообщении я писал, что файл для LabVIEW версии 2012 (в подписи к файлу). Профиль исправил.
Снимок.JPG
IvanLis писал(а):Вы после объединения нескольких 1D массивов в 2D, чего ожидаете получить?
Наверное array from Sim, а на самом деле append 2D array, т.к. он выравнивается до максимальной "ширины", а все недостающие элементы дописываются.

Вот и подумайте о последствиях.
Вы ожидаете одно "тире", а получаете "-...."
Это я учел, но решение проблемы мне кажется очень "корявым", хотя работает: я изменил тип значений на 64 bit int, в массиве значений только один столбец.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Суммирование сигналов. Генерация Морзе

Сообщение IvanLis »

emptyNESS писал(а):Это я учел, но решение проблемы мне кажется очень "корявым", хотя работает: я изменил тип значений на 64 bit int, в массиве значений только один столбец.
Я тут бессилен :suicide: .

В виду сложившейся ситуации, вижу два пути решения данного вопроса:
1. Вы продолжаете самостоятельную разработку и реализуете все свои фантазии, но при этом прекращаете насиловать мозг остальным.
2. Вы перечитываете тему начиная со второго поста, берете за основу предложенный пример и реализуете все, прислушиваясь к озвученным советам.
emptyNESS
beginner
beginner
Сообщения: 13
Зарегистрирован: 25 май 2011, 08:17
Версия LabVIEW: 10-13
Контактная информация:

Re: Суммирование сигналов. Генерация Морзе

Сообщение emptyNESS »

IvanLis, потом даже с вопросом обращаться не хочется... Вы как-то по-своему видите проблему и её решение.
Это я учел, но решение проблемы мне кажется очень "корявым", хотя работает: я изменил тип значений на 64 bit int, в массиве значений только один столбец.
Бредово конечно, согласен. Но чтобы просто получить массив со значениями вполне хватало. Сейчас я изменил тип массива значений кода Морзе на строковый. Думаю, что обычными операциями над строками можно обойтись, выделив из каждого элемента массива 0 и 1.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Обработка сигнала»