Доброго всем времени суток!
Передо мной стоит следующая задача:
Есть записанный с датчика в текстовом формате сигнал, состоящий из двух столбцов (время и напряжение). Примерно в каждом таком файле 500000 значений, так как при большем количестве значений LabView отказывается работать. Нужно эти файлы обработать, построить их графики, АЧХ, пропустить через фильтр и также визуализировать в виде графиков и вывести грубо говоря на колонки. Это всё реализовано, но вопрос стоит в следующем:
Чтоб вести полноценную обработку данных сигналов, хотелось бы отображать процесс в реальном времени, т.е. в данном случае у меня строится и расчитывается график сразу 50 секунд (если это 500000 значений), в этом случае я не могу узнать АЧХ и значение токов в нужный момент времени, потому что я получаю результаты по всем пятидесяти секундам, а это соответственно значения не точные.
Есть следующие мысли: Преобразовать текстовый сигнал в звук и работать с ним уже как с звуковым файлом, если это позволит работать с сигналом в динамическом режиме и вычислять значения в каждый промежуток времени. Какие функции позволили бы реализовать такую задачу?
Возможно ли так работать со звуковым файлом? Или может как то возможно отображать в динамическом виде текстовый сигнал и при этом зациклить его, чтоб можно было видеть какая секунда сигнала идет?
И еще один вопрос. При записи в текстовый файл сигнала с генератора который формирует синусоиду мы получаем в текстовом файле который записался шапку, в которой указаны необходимые данные которые нужны чтоб Labview мог правильно прочитать и построить в дальнейшем этот сигнал. Если же это сигнал который записан с датчика и имеет вид двух столбцов, не имея соответственно шапки в файле, я делаю следующее: я сначала открываю этот сигнал (read measurment file ) и сразу же записываю его (write measurment file ) и получаю на выходе сигнал с шапкой с которым дальше можно работать, но шапка формируется не правильно ( задается не верный шаг, дата записи и некоторые другие значения) и по-этому я думаю могут возникать ошибки при работе с таким файлом. Почему так?
Спасибо за ответ и простите пожалуйста за длинный пост)))
Преобразование сигнала.txt в Wav и наоборот.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Преобразование сигнала.txt в Wav и наоборот.
1)
2) Преобразовывать в звук - это я не знаю, мне кажется это что-то лишнее. Прочитайте полностью файл, а затем обрабатывайте его порциями, в цикле, задавая нужный временный промежуток или еще что-то. Файл - это ведь двумерный массив. А массив можно разбить на части.
Т.е. смысл такой - прочитали файл, и начали отображать и обрабатывать его постепенно - скажем, каждую секунду Вы отображаете и обрабатываете данные, собранные за секунду. В паралели прочитали второй файл, и как только данные по первому файлу закончились, приступаете ко второму.
3)
Данные с датчика записываются при помощи чего? Какого-то стандартного софта прибора, или же это "кастомный" софт? Если это софт, который писали Вы или Ваши коллеги, то прикрутите туда дописывание шапки в новый файл. Если это невозможно, то вот еще идея: если данные идут непрерывно, то Вам ведь нужно знать начальные данные - шаг, дату записи, и т.д. Зная количество записей и шаг, можно определить дату записи и для остачи данных.Но если тот же шаг, или частота опроса датчика изменяется, то тогда проблема... Плюс если изменяется тот же шаг во время измерения, то нужно при его изменении писать данные в новый файл, если Вы работаете с шапкой файла.я сначала открываю этот сигнал (read measurment file ) и сразу же записываю его (write measurment file ) и получаю на выходе сигнал с шапкой с которым дальше можно работать, но шапка формируется не правильно
2) Преобразовывать в звук - это я не знаю, мне кажется это что-то лишнее. Прочитайте полностью файл, а затем обрабатывайте его порциями, в цикле, задавая нужный временный промежуток или еще что-то. Файл - это ведь двумерный массив. А массив можно разбить на части.
Т.е. смысл такой - прочитали файл, и начали отображать и обрабатывать его постепенно - скажем, каждую секунду Вы отображаете и обрабатываете данные, собранные за секунду. В паралели прочитали второй файл, и как только данные по первому файлу закончились, приступаете ко второму.
3)
Выводить на график все значения - не желательно. Обрабатывайте все данные, но на график легко можно выводить decimated значения; в есть такая функция. Массив данных для отображения нужно разрежиывать. Смысл в том, что пользователь не различит на глаз 500 тысяч точек, и 50 тысяч точек - разницу Вы не почувствуете. А по производительности - будет легче, нежели отображать на граф индикаторе полмиллиона точек.у меня строится и расчитывается график сразу 50 секунд (если это 500000 значений)
Мы делили апельсин - много наших полегло...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 170 Просмотры
-
Последнее сообщение Borjomy_1
-
- 4 Ответы
- 586 Просмотры
-
Последнее сообщение Sergey Puzanov
-
- 3 Ответы
- 334 Просмотры
-
Последнее сообщение BAS
-
- 5 Ответы
- 438 Просмотры
-
Последнее сообщение AndryG
-
- 14 Ответы
- 595 Просмотры
-
Последнее сообщение IvanLis