Разложение в спектр дискретного сигнала

Простейшие вопросы в области инженерной разработки
Ответить
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

Добрый вечер! Пишу выпускную работу в университете, и задачей было создать алгоритм по измерению мощностей и энергии, а дополнительно требуется разложить напряжение в спектр.Так как прибор измеряет дискретно,в пробном алгоритме задал дискретный сигнал(фото 1) но, как я не пытался менять тип данных все равно на выходе получается только действуещее значение синусоиды и ничего на работает.Может кто пожалуйста помочь?
Вложения
ВОПРОС.jpg
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

nOvICHOKK писал(а): 04 июн 2022, 14:45 Может кто пожалуйста помочь?
Мне кажется, что в Вашем случае, никто помочь не сможет :crazy:
LabVIEW_Spectral_Tutorial.pdf
(175.08 КБ) 69 скачиваний
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

Спасибо, попробую
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

Добрый вечер, воспользовался вашим советом но при помощи данного преобразования не строить реальная синусоида , тк у реальной меняется и частота и амплитуда,я так и не смог решать данную проблемы можете пожалуйста помочь?
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

nOvICHOKK писал(а): 14 июн 2022, 19:34 Добрый вечер, воспользовался вашим советом но при помощи данного преобразования не строить реальная синусоида , тк у реальной меняется и частота и амплитуда,я так и не смог решать данную проблемы можете пожалуйста помочь?
Вы читали, что написали?

Напишите по пунктам, что нужно и что не получается...
а то начали с разложения в спектр, а закончили генерацией какого-то сигнала.
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

Мне необходимо создать простой анализатор качества чтобы выводил значения по гармоникам те 50,100,150 и тд Гц. Используется совместно с процессорным блоком в который можно установить модули по измерению необходимых величин. Анализ нужно провести напряжения думаю .те
1) получаем с модулей в программу данные значение амплитуды измеряемые дискретно
2) используя метод квадратурной демодуляции при помощи базовых векторов находим значения амплитуды, частоты и фазы сигнала
3) необходимо по этим данным произвести анализ спектра (но ваш метод работает только если сигнал постоянный,те не показывает гармоники, и их надо заводить тогда отдельно в FFT , но я могу взять только реальный сигнал который является суммой и так множества гармоник.)
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

nOvICHOKK писал(а): 15 июн 2022, 14:43 необходимо по этим данным произвести анализ спектра (но ваш метод работает только если сигнал постоянный,те не показывает гармоники, и их надо заводить тогда отдельно в FFT , но я могу взять только реальный сигнал который является суммой и так множества гармоник.)
Тогда не понимаю в чем у Вас проблемы...
Вот элементарный пример, нужно только свой сигнал подать на анализатор и все.
Untitled 1.vi
lv2016
(19.88 КБ) 48 скачиваний
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

IvanLis писал(а): 17 июн 2022, 18:47
nOvICHOKK писал(а): 15 июн 2022, 14:43 необходимо по этим данным произвести анализ спектра (но ваш метод работает только если сигнал постоянный,те не показывает гармоники, и их надо заводить тогда отдельно в FFT , но я могу взять только реальный сигнал который является суммой и так множества гармоник.)
Тогда не понимаю в чем у Вас проблемы...
Вот элементарный пример, нужно только свой сигнал подать на анализатор и все.
Untitled 1.vi
Проблема в том, что я определяю посредствам метода квадратурной демодуляции частоту,фазу и амплитуду сигнала, по отправленному ранее вами в первый раз файлу я могу строить только идеальную синусоиду, я просто не знаю значений остальных гармоник, или мне надо заводить параметры с измерительного модуля моего прибора,еще не прошедшие через блок определяющий их значения??? Я просто не могу понять как задать сигнал в этот анализатор основанный на БПФ, тк с модуля поступают только дискретные точки. Я прекреплю алгоритм он не работает без модулей, но принцип действия в ыпоймете, также прикреплю фото если не получиться запустить алгоритм. Спасибо большое за помощь, очень вам благодарен.
Вложения
алгоритм.rar
(577.96 КБ) 41 скачивание
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

Вы с устройства ввода сигнал как получаете...?
1. в виде дискретных по времени отсчетов уровня сигнала
2. или два сигнала (так же дискретных по времени отсчетов) описывающих синфазную и квадратурную составляющие сигнала
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

IvanLis писал(а): 18 июн 2022, 11:09 Вы с устройства ввода сигнал как получаете...?
1. в виде дискретных по времени отсчетов уровня сигнала
2. или два сигнала (так же дискретных по времени отсчетов) описывающих синфазную и квадратурную составляющие сигнала
В виде дискретных по времени отсчетов уровня сигнала
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

nOvICHOKK писал(а): 18 июн 2022, 14:06 В виде дискретных по времени отсчетов уровня сигнала
Если dt - время между отсчетами постоянно, а оно скорее всего постоянно, то формируйте с помощью функции Build Waveform сигнал и сразу загоняйте его на анализатор спектра FFT Power Spectrum
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

Те мне надо создать2 мерный массив который состоит из значений сигнала и постоянного периода дискретизации?
IvanLis писал(а): 18 июн 2022, 20:53 Если dt - время между отсчетами постоянно, а оно скорее всего постоянно, то формируйте с помощью функции Build Waveform сигнал и сразу загоняйте его на анализатор спектра FFT Power Spectrum
проблема в том, что в Y необходимо вводить массив данных , а я имею только мгновенное значение амплитуды, которое меняется с частотой дискретизации
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

nOvICHOKK писал(а): 19 июн 2022, 16:44 Те мне надо создать2 мерный массив который состоит из значений сигнала и постоянного периода дискретизации?
Посмотрите описание по ссылке, Вам нужен набор отсчетов Y и dt.
nOvICHOKK писал(а): 19 июн 2022, 16:44 проблема в том, что в Y необходимо вводить массив данных , а я имею только мгновенное значение амплитуды, которое меняется с частотой дискретизации
Сделайте буфер, накопите необходимое количество и формируйте Wave.
Вы думаете DAQ по другому делает это?
nOvICHOKK
interested
interested
Сообщения: 8
Зарегистрирован: 04 июн 2022, 14:35
Версия LabVIEW: 2017
Благодарил (а): 7 раз
Контактная информация:

Re: Разложение в спектр дискретного сигнала

Сообщение nOvICHOKK »

IvanLis писал(а): 19 июн 2022, 19:36 Сделайте буфер, накопите необходимое количество и формируйте Wave.
Вы думаете DAQ по другому делает это?
Я честно говоря не смог разобраться как создать буфер, у меня слабый английский, и я изучал программу методом тыка, но мне надо завтра сдать уже работу, если вы бы объяснили был бы признателен.
Аватара пользователя
IvanLis

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

Re: Разложение в спектр дискретного сигнала

Сообщение IvanLis »

nOvICHOKK писал(а): 19 июн 2022, 20:09 Я честно говоря не смог разобраться как создать буфер, у меня слабый английский, и я изучал программу методом тыка, но мне надо завтра сдать уже работу, если вы бы объяснили был бы признателен.
Вы с массивами можете работать?
1. Отсчеты поступают от устройства, Вы их собираете в массив заданной длины (для БПФ желательно размер брать кратный степени 2).
2. Массив наполнился. Формируете Wave и отправляете на обработку. Массив сбрасываете и начинаете заполнять заново.

Сложно говорить, т.к. я понятия не имею, на каких частотах Вы работаете. Если это вялотекущий процесс, то можно попробовать все в одном цикле сделать. Если частоты высокие, то желательно буферизацию делать в отдельном цикле, что бы он занимался только сбором данных. Обработку делать в другом цикле. Связь между ними через очередь - Queue, например.

RT приложения реализуются не как обычные программы.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»