Преобразования Фурье
-
- junior
- Сообщения: 52
- Зарегистрирован: 23 мар 2015, 18:29
- Версия LabVIEW: 2010
- Контактная информация:
Преобразования Фурье
Доброе время суток! Передо мной стоит задача следующего плана. Есть некий сигнал гармонический. Мне необходимо разложить сигнал на синусоидальные составляющие. В теории вроде бы понимаю, пробовала это сделать в экселе, например. Как это сделать средствами Labview. Какие приборы следует использовать? Может быть подскажете некий алгоритм? Благодарю за отклик.
-
- junior
- Сообщения: 52
- Зарегистрирован: 23 мар 2015, 18:29
- Версия LabVIEW: 2010
- Контактная информация:
Re: Преобразования Фурье
Используя fft.vi, мы получаем массив комплексных чисел. Мне нужно извлечь из сигнала действующее значение сигнала, как я понимаю 0 гармоника, низкочастотную пульсацию и высокочастотную пульсацию, как я поняла 1-ая гармоника - низкочастотная пульсация, а все кроме 0 и 1 гармоники - высокочастотная пульсация. Получили массив КЧ, как анализировать дальше, как выделить составляющие, начальная фаза и амплитуда вычисляются как модуль этого КЧ и аргумент или нужно выделить theta и r??? Каша в голове, запуталась в этих делах. Если не сложно, подскажите
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Преобразования Фурье
Гармоника действующего сигнала имеет номер, соответствующий количеству периодов сигнала в исходном массиве, это говоря русским языком.
0 гармоника - это постоянная составляющая. Комплексное число в результате - это вектор сигнала (амплитуда и фаза). Все гармоники, что ниже гармоники действующего сигнала - низкочастотные пульсации, а что выше - высокочастотные, хотя для высокочастотных именно пульсаций я бы рассмотрел кратные гармоники гармонике действующего сигнала. Т.е если гармоника действующего сигнала 10, то высокочастотные пульсации это 10, 20, 30 и т.д гармоники. Наверное, также и низкочастотные, то тут вопрос требует уточнения.
0 гармоника - это постоянная составляющая. Комплексное число в результате - это вектор сигнала (амплитуда и фаза). Все гармоники, что ниже гармоники действующего сигнала - низкочастотные пульсации, а что выше - высокочастотные, хотя для высокочастотных именно пульсаций я бы рассмотрел кратные гармоники гармонике действующего сигнала. Т.е если гармоника действующего сигнала 10, то высокочастотные пульсации это 10, 20, 30 и т.д гармоники. Наверное, также и низкочастотные, то тут вопрос требует уточнения.
Это суть одно и тоже. Только называются по-разному и считаются через разные функции. Но проще второй вариант, т.к вы получаете оба параметра вызовом одной функции (Z->R, theta)начальная фаза и амплитуда вычисляются как модуль этого КЧ и аргумент или нужно выделить theta и r?
-
- junior
- Сообщения: 52
- Зарегистрирован: 23 мар 2015, 18:29
- Версия LabVIEW: 2010
- Контактная информация:
Re: Преобразования Фурье
Каким образом определить гармонику, на которой и есть действующий сигнал ( я так понимаю, это основной сигнал?! в данном контексте).Гармоника действующего сигнала имеет номер, соответствующий количеству периодов сигнала в исходном массиве
Возможно я не правильно объяснила, что от меня требуют. Общий постановка моего задания такова -снимаю сигнал (напряжение) с изделия, из этого сигнала должна получить как таковое среднее значение напряжения, в тз прописано -расчет дейсвтвующего значений вых. напряжений( 0-я гармоника) и получить низкочастотную и высокочастотную пульсацию.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Преобразования Фурье
Нулевая гармоника - это постоянная составляющая.
Гармоника, на которой есть действующий сигнал - должна быть максимальная в спектре. Получаете массив амплитуд спектра, после чего ищете в нем максимум. Но есть нюанс. Для того, чтобы точно определить амплитуду сигнала необходимо, чтобы частота оцифровки была синхронна и кратна частоте выдачи сигнала. В идеале это должен быть один тактовый генератор, от которого работает и ЦАП сигнала и АЦП. Иначе сигнал расползется по соседним гармоникам, а просто так просуммировать их не получится (даже одинаковые частоты от одинаковых тактовых генераторов никогда не совпадают). Либо выбирать частоту дискретизации так, чтобы df был больше ширины спектра полезного сигнала, правда тогда могут возникнуть проблемы с точностью.
Что касается фазы сигнала, то фаза отсчитывается относительно чего-то. Например относительно исходного сигнала, до изделия. В таком случае необходимо снимать два сигнала - до и после изделия (условно). И потом вычитать фазы. Более сложный путь, но который гарантирует минимизацию шумов фазы до драматически низкого уровня - синхронное возбуждение с опросом. Т.е ЦАП, генерирующий сигнал и АЦП работают от одного тактового генератора (обычно ЦАПа).
Гармоника, на которой есть действующий сигнал - должна быть максимальная в спектре. Получаете массив амплитуд спектра, после чего ищете в нем максимум. Но есть нюанс. Для того, чтобы точно определить амплитуду сигнала необходимо, чтобы частота оцифровки была синхронна и кратна частоте выдачи сигнала. В идеале это должен быть один тактовый генератор, от которого работает и ЦАП сигнала и АЦП. Иначе сигнал расползется по соседним гармоникам, а просто так просуммировать их не получится (даже одинаковые частоты от одинаковых тактовых генераторов никогда не совпадают). Либо выбирать частоту дискретизации так, чтобы df был больше ширины спектра полезного сигнала, правда тогда могут возникнуть проблемы с точностью.
Что касается фазы сигнала, то фаза отсчитывается относительно чего-то. Например относительно исходного сигнала, до изделия. В таком случае необходимо снимать два сигнала - до и после изделия (условно). И потом вычитать фазы. Более сложный путь, но который гарантирует минимизацию шумов фазы до драматически низкого уровня - синхронное возбуждение с опросом. Т.е ЦАП, генерирующий сигнал и АЦП работают от одного тактового генератора (обычно ЦАПа).
-
- junior
- Сообщения: 52
- Зарегистрирован: 23 мар 2015, 18:29
- Версия LabVIEW: 2010
- Контактная информация:
Re: Преобразования Фурье
Я взяла некий сигнал x[], затем воспользовалась Amplitude and Phase Spectrum.vi, из получившегося массива амплитуд Amp Spectrum Mag , как я понимаю 0-ой элемент - есть постоянная составляющая, а индекс мах амплитуды - номер действующей гармоники. Дальше, как я понимаю, я должна чтоб получить высокочастотный сигнал, сделать из массива х[] FFT.vi, взять массив с 1 по 10 (10 в моем случае - это гармоника действующего сигнала) и сделать обратное преобразование Фурье, тем самым получив пульсацию. Или я все не так говорю?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Преобразования Фурье
К сожалению, если быть точным, то этот фокус не прокатывает. При вычислении спектра мы получаем СРЕДНЕЕ значение амплитуды и фазы для всего массива данных. А это, как вы понимаете, как средняя температура по больнице.сделать обратное преобразование Фурье, тем самым получив пульсацию.
Здесь можно разделить сигналы лишь с помощью ФНЧ и ФВЧ, настроенных на частоту среза, соответствующую действующему сигналу. Правда, абсолютно точное разделение получить не удастся из-за неравномерности амплитудных и фазовых искажений фильтров.
-
- junior
- Сообщения: 52
- Зарегистрирован: 23 мар 2015, 18:29
- Версия LabVIEW: 2010
- Контактная информация:
Re: Преобразования Фурье
А еще такой вопрос - у меня есть набор гармоник. Каким образом пользуясь средствами Labview я могу по одной гармоники построить сигнал.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Преобразования Фурье
Надо сгенерировать синус соответствующей амплитуды и фазы и с количеством периодов, соответствующим номера гармоники.Каким образом пользуясь средствами Labview я могу по одной гармоники построить сигнал.
Signal Processing->Signal Generation->Sine Pattern.vi