Гармоники сигналов

Простейшие вопросы в области инженерной разработки
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Гармоники сигналов

Сообщение little-star »

Подскажите пожалуйста, как из спектра сигнала получать последовательно гармоники, начиная с основной (нулевой). Или как можно получить все амплитуды гармоник спектра чтоб понятно было какие у них номера ...
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Гармоники сигналов

Сообщение Pavel Krivozubov »

Попробуйте использовать peak detector. (см. примеры).
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Если предположить что всего гармоник 15, то peak detector показывает гармоники начиная с -7 до 7. а мне надо получать гармоники начиная с нулевой по седьмую... Но мне peak detector все равно пригодился для решения этой проблемы.
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Всем привет. У меня есть следующий массив гармоник
Безымянный.JPG
Безымянный.JPG (20.33 КБ) 6573 просмотра
Безымянный1.JPG
Безымянный1.JPG (9.11 КБ) 6573 просмотра
всего 15 штук... Нужно создать такой массив: 0-я гармоника, -1 и 1 гармоники, -2 и 2 гармоники и т.д. Т.е нужно брать первое-последнее значения этого массива несколько раз... Думаю тут нужен цикл... Помогите соорудить.
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Гармоники сигналов

Сообщение Pavel Krivozubov »

ну как : ищешь середину, (кол-во элементов массива деленное на два), разбиваешь на два массива относительно середины, левый переворачиваешь. Получаешь два массива, один содержит гармоники 1, 2 и тд, второй- -1 -2 и тд.
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Мне нужен один массив. Сделать его надо примерно так: берем крайние значения нашего массива и загоняем в новый массив, потом удаляем их, после снова берем от оставшегося массива крайние значения (первое и последнее)и добавляем в новый массив в начало и т.д. до тех пор пока не останется одна основная (нулевая) гармоника, ее тоже добавляем в начало нового массива. Наш сформированный массив таким образом должен состоять из следующих номеров гармоник(то что добавляется вперед должно стоять в конце): 0-я (добавляется последней), 1-я, -1-я, 2-я, -2-я,...,7-я,-7-я (первые добавленные). Тут определенно понадобится цикл и, наверное, ф-я размер массива... :think:
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Еще дело вот в чем, спектр модулированного сигнала моего может быть и другой, соответственно, гармоник может быть разное количество и может быть так что будет определятся четное количество гармоник... Поэтому мне нужно сделать проверку на нечетность. если количество гармоник окажется четным, то надо каким то образом варьировать амплитуду сигнала и добиться нечетного количества...
P.S. Если на этой неделе все сделаю, то уже на следующей выступлю на студенческой научной коференции)))) :ru: А там и до защиты бакалаврской недалеко... помогите :help: .
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Гармоники сигналов

Сообщение Konstantin Sumenko »

Вот пример, как получить массив гармоник вида: 0, 1, -1, 2, -2,... как в случае четного числа отсчетов, так и нечетного. В случае четного числа, гармоника, эквивалентная частоте найквиста выбрасывается.
Вложения
Spectrum.vi
(29.68 КБ) 169 скачиваний
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Пожалуйста можно картинкой... У меня нет версии 8.5..
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

Re: Гармоники сигналов

Сообщение Viktor »

Картинка:
Spectrum.PNG
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Спасибо огромное... :thank:
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Вот решила выложить свою незавершенную (надеюсь пока) работу. Надеюсь если у кого-то будет время и желание, то сможет разобраться в ней и помочь мне..
Untitled@.vi
(241.6 КБ) 145 скачиваний
Кратко опишу: вся работа заключается в определении коэффициента модуляции ЧМ-сигнала, сначала я генерирую этот ЧМ-сигнал, а потом его же и измеряю... Сейчас у меня такая проблема: нужно сделать проверку на нечетность гармоник спектра сигнала, причем, в случае когда число гармоник четное количество, надо изменять амплитуду исходного сигнала до тех пор пока не добьемся нечетного числа... Потом, как я раньше говорила, надо сформировать массив 0, 1,-1,... и дополнить нулями до 41 значения. Далее с помощью ф-ии Беселя методом МНК мы ищем наименьшее среднеквадратичное отклонение, смотрим индекс этого числа в массиве, умножаем на 0,1 и вуаля, получаем коэффициент! Пока что вся эта работа движется очень медленно, поэтому я надеюсь на вашу помощь...
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Назрел срочный вопрос: у меня имеется два массива и нужно из первого массива вычесть второй, но не просто, а из ячейки с 0-м индексом ячейку тоже с 0-м...но дальше хлеще, из ячейки с 1-м индексом вычесть первую и снова из первой вторую...
Безымянный0.JPG
лучше так: 0-0, 1-1, 1-2, 2-3, 2-4, 3-5, 3-6, 4-7,4-8 и т.д. до конца... Не знаю как это можно сделать, подскажите плиз. :think:
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Гармоники сигналов

Сообщение Konstantin Sumenko »

Для версии 8.0
Вложения
Obtain_Array_8.0.vi
(15.18 КБ) 108 скачиваний
Case_0.PNG
Case_0.PNG (10.77 КБ) 6498 просмотров
Case_Default.PNG
Аватара пользователя
little-star
beginner
beginner
Сообщения: 49
Зарегистрирован: 10 мар 2010, 11:21
Версия LabVIEW: 8.6
Откуда: Россия
Контактная информация:

Re: Гармоники сигналов

Сообщение little-star »

Bот и снова я... мне очень нужно научиться получать частоты гармоник и находить разность частот между ними... Дело в том, что моя программа (расчет коэффициента модуляции) не работает в тех случаях, когда амплитуда основной гармоники равна нулю... поэтому надо искать ее положение по частоте и вставлять в массив амплитуд ноль. Помогите.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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