Проблемы в анализе сигнала

Захват, обработка и генерирование сигнала
Ответить
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Проблемы в анализе сигнала

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

Всем привет.
Возникла проблема анализа оцифрованного сигнала.
Имеется: ацп L-card e14-140 M с предусилителем, брюлевский акселерометр. Устанавливаю на вибростол, задаю частоту 160 Гц и СКЗ 10 мc-2, записываю данные в текстовый файл sim.txt.
В итоге: открываю данные, вижу исходную синусоиду (правда по оси x лабуда какая-то, но это не так важно). Уменьшаю число данный, пропускаю через окно хённинга, провожу спектральный анализ и вычисляю СКЗ. В итоге получаю абсолютное несовпадение.
Помогите кто чем может, пожалуйста.
Заранее благодарен откликнувшимся.!
Вложения
sin.txt
Данные
(139.07 КБ) 105 скачиваний
Analiz.vi
Программа анализа
(135.57 КБ) 127 скачиваний
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Проблемы в анализе сигнала

Сообщение IORIK »

здравствуйте Сергей,
поскольку вы используете АЦП для оцифровки сигнала, хорошо бы иметь информацию о его настройках; разрешение АЦП по амплитуде, какую частоту дискретизации и диапазон по вольтажу вы использовали.
У вас достаточно хороший синусоидальный сигнал, боковые гармоники значительно меньше, чем основная. Поэтому спектральное окно использовать несколько излишне.
Если предположить, что частота дискретизации 100 кГц, то ваша синусоида имеет частоту 160.4 Гц (получено с помощью Extract Single Tone Information.vi).
Пока ни каких несовпадений не вижу.
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Re: Проблемы в анализе сигнала

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

Использовал Extract Single Tone Information.vi. На вход создал тип waveform с dt=1/fs, где fs-частота дискретизации (100000Гц). На выходе получил частоту сигнала 641 Гц. Но раз Вы сказали, что получилось, то начал пытаться найти ошибку и понять что я делаю не так. После некоторого манипулирования установил dt=25000 и получил правильный результат, после чего возник вопрос почему так?
Следуя указаниям по ссылке http://www.labview.ru/forum/viewtopic.p ... 441#p15441 dt=1/fs, где fs-частота дискретизации, а потому запутался почему при 25000 показывает правильно! Подскажите, пожалуйста!
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Re: Проблемы в анализе сигнала

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

И возникла ещё проблема.
Попытался проинтегрировать сигнал (получить виброскорость). Как на всех форумах советуют, использовал Integral x(t). Задал dt=100000 Гц (хотя пробовал уже и 25000 Гц) и получил вот такую картину. Как мне представляется в итоге должна получиться косинусоида (или нет?). И график виброскорости "уходит" вниз- почему? И что такое initial condition и final condition на входе в Integral x(t).
Вложения
интегрирование.JPG
Analiz.vi
(284.24 КБ) 103 скачивания
sin.txt
(139.07 КБ) 76 скачиваний
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Проблемы в анализе сигнала

Сообщение Andrew Lunev »

График интеграла уходит вниз потому что у вас в исходном сигнале есть смещение. То есть среднее значение за период не равно нулю, соответственно и интеграл за период не равен нулю и с каждым периодом это смещение суммируется, именно эта часть и дает смещение на которое у вас наложен косинус.
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Re: Проблемы в анализе сигнала

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

А как от этого избавиться? Возможно ли?
А что по поводу частоты оцифровки? Почему всё правильно работает только при dt 25000?
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Проблемы в анализе сигнала

Сообщение Andrew Lunev »

Сергей писал(а):А как от этого избавиться? Возможно ли?
А что по поводу частоты оцифровки? Почему всё правильно работает только при dt 25000?
Избавиться конечно можно. Если у вас заранее записанный сигнал, то рассчитайте среднее значение и сместите сигнал на эту величину.
Если сигнал надо обрабатывать в реальном времени, то используйте цифровой фильтр, который удаляет постоянную составляющую, например пропускает сигнал от 10 Гц до 10 кГц или какой вам больше нравится.
В реальных системах чаще всего используют фильтр и с помощью него выделяют только нужный вам для анализа диапазон, тем самым и лишние помехи удаляются.
По поводу dt 25000 ничего сказать не могу, надо разбираться с тем, как был получен ваш сигнал. При анализе dt должно быть таким же, как и при сборе данных.
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Проблемы в анализе сигнала

Сообщение IORIK »

Сергей писал:
А как от этого избавиться? Возможно ли?
А что по поводу частоты оцифровки? Почему всё правильно работает только при dt 25000?
Для начала, сделайте новую версию программы. Упростите ее по максимуму. я уже вам ранее писал, что не стоит пока использовать спектральное окно. там есть свои хитрости.
По поводу частоты дискретизации: вы должны поставить то значение, которое было задано в самой АЦП, Это значение вы обязаны знать. В своем примере частоту дискретизации АЦП я подбирал под условие вашей задачи.
Не стоит слишком увлекаться Экспресс функциями, если есть встроенные. Посмотрите мой пример. Второй рисунок - детализация вашего сигнала.
Fig1.jpg
что такое initial condition и final condition на входе в Integral x(t).
в функции "Integral x(t)" зашито интегрирование по формуле Симпсона. Что такое "initial & final" условия - я сам теряюсь в догадках. Поэкспериментировав, могу сказать, что "initial condition" - это, возможно, константа, которая добавляется к вашей функции, и интеграл определяется с учетом этой константы.
Эти параметры лучше установить в НОЛЬ (что есть по default).
На вашем месте я бы проинтегрировал бы все по прямоугольникам, и только если точности не хватит взялся бы за другие методы интегрирования.
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Re: Проблемы в анализе сигнала

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

Стало гораздо яснее. Частота оцифровки -100000 кГц.
На ачх вижу заданную мной частоту, благодарю.
Насколько понимаю, СКЗ теперь необходимо подбирать коэффициентом (я его обозначил "подгонка") из-за смещения нуля и неточности передачи масштаба самой АЦП? Или использовать штатные корректировочные коэффициенты? Подскажите пожалуйста что лучше? Или это вообще по-другому делается?

Так же провёл двойное интегрирование. На АЧХ так же вижу задаваемую частоту. Как проверить амплитуду интегрированного сигнала, если я знаю только СКЗ ускорения? или при такой схеме интегрирования, никаких ошибок быть не может и с "закрытыми глазами" можно доверять результатам?

Какие есть хитрости в применении спектрального окна? Где можно прочитать?
Чем плохи экспресс функции?
Вложения
Analiz.vi
Программа
(94.43 КБ) 100 скачиваний
sin.txt
Сигнал
(139.07 КБ) 70 скачиваний
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Re: Проблемы в анализе сигнала

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

Нашёл такие зависимости:
СКЗуск=СКЗскор*2пи*F
СКЗпер=СКЗскор/(2*пи*F)

Проверил по ним свои значения- получаются верные данные.

Остался вопрос про использовании спектрального окна, где можно про него что-нибудь прочитать или может кто расскажет?
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Проблемы в анализе сигнала

Сообщение IORIK »

Здравствуйте Сергей,
книгу по использованию спектральных окон вы можете найти в этой теме http://labviewportal.eu/viewtopic.php?f=81&t=4554
Во первых, спектральное окно дает уменьшение уровня амплитуд в спектре, так если используете окно Hanning, то амплитудный спектр надо умножить на 2, чтобы максимум был равен случаю без спектрального окна.
Во вторых, спектральное окно расширяет основной лепесток, и если у вас в сигнале есть 2 соседние гармоники, вы их можете не увидеть.
В третьих, выше я показывал, что ваш сигнал близок к синусоидальному, правда частота сигнала у вас несколько плывет. А от этого спектральное окно не помогает.
Сергей
user
user
Сообщения: 94
Зарегистрирован: 19 окт 2010, 21:21
Версия LabVIEW: 2009
Контактная информация:

Re: Проблемы в анализе сигнала

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

Спасибо, IORIK.
Книгу скачал- разбираюсь.
Синус, который я приводил-это только пример (трудно работать с чем-то большим, если не можешь справиться с маленьким). В дальнейшем будет производиться анализ сигнала со спектром от 50 Гц до 10 кГц. Спасибо за советы и помощь.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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