Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как получить комплексный сигнал ?
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Lmx2315
Запутался sad.gif

Такой вопрос - есть АЦП с него поступают отчёты сигнала как их перевести в комплексное представление ?

Как я сам мыслил - перемножить входной сигнал с sin и cos и отфильтровать ФНЧ ....но спектр входного сигнала занимает почти всё место до частоты найквиста и начинается уже с нулевой частоты . Отфильтровать не получится не убив кучу нужного .

Как же тогда всё делается ?


Хотелось с входным сигналом провести БПФ комплексное .
Xenia
Сигнал АЦП - чисто реальный, поэтому ему в пару надо приложить нулевую мнимую часть - массив той же длины, инициализированный нулями.
MKS
Попробуйте использовать преобразование Гильберта.
DRUID3
2Xenia:
Можно. Но это из пушки по воробьям.

Есть т.н. RealFFT.
Xenia
Цитата(DRUID3 @ Jan 9 2010, 17:54) *
2Xenia:
Можно. Но это из пушки по воробьям.
Есть т.н. RealFFT.


Солидарна, только каков вопрос, таков и ответ.
Lmx2315
Цитата(Xenia @ Jan 9 2010, 14:27) *
Сигнал АЦП - чисто реальный, поэтому ему в пару надо приложить нулевую мнимую часть - массив той же длины, инициализированный нулями.



я не потеряю в таком случае информацию? ... хотелось бы получить как значения всех амплитуд для гармоник так и их фазы .
DRUID3
Цитата(Lmx2315 @ Jan 9 2010, 19:42) *
я не потеряю в таком случае информацию? ... хотелось бы получить как значения всех амплитуд для гармоник так и их фазы .

biggrin.gif А откуда она(информация) возьмется?... Ответ кратко - нет, не потеряете...
bahurin
таки не ясно чем реальный сигнал покоя не дает? Если функция БПФ поддерживает только комплексный входной сигнал то нулями забить мнимую часть и вперед. Но если хотите это безобразие по частоте подвигать то надо умножать на синусы с косинусами предварительно сделать интерполяцию в 2 раза чтобы было куда двигать и что фильтровать.
ivan219
Lmx2315
Компликсный сигнал с АЦП ты не как не получишь. А вот полсе БПФ ты получишь комплексные составляющие сигнала спектр частот (гармоник) и вот после БПФ можно узнать и фазу и частоту и амплитуду.

Если сдвинуть весь сигнал по фазе на 90 градусов то ты получишь квадратурный сигнал. Может ты это имел в виду тогда тебе нужно преобразование Гильберта и у тебя на выходе будет два сигнала I, Q т.е. синфазный и квадратурный.
DRUID3
Цитата(ivan219 @ Jan 9 2010, 20:50) *
Lmx2315
Компликсный сигнал с АЦП ты не как не получишь. А вот полсе БПФ ты получишь комплексные составляющие сигнала спектр частот (гармоник) и вот после БПФ можно узнать и фазу и частоту и амплитуду.

Если сдвинуть весь сигнал по фазе на 90 градусов то ты получишь квадратурный сигнал. Может ты это имел в виду тогда тебе нужно преобразование Гильберта и у тебя на выходе будет два сигнала I, Q т.е. синфазный и квадратурный.

Да нет... Никакое преобразование Гильберта тут не нужно... Нужно так линейно разделить входные отсчеты что-бы можно было воспользоваться вторым "простаивающим" компонентом входного комплексного числа да еще и смочь потом разделить их составляющие на выходе wink.gif ...

А нужно применить обычное RealFFT... И делается оно примерно так biggrin.gif :

Цитата(bahurin @ Jan 9 2010, 20:27) *
... то надо умножать на синусы с косинусами предварительно сделать интерполяцию в 2 раза чтобы было куда двигать и что фильтровать...


Это если охота сэкономить ресурсы. А можно действительно влоб забить нулями - математически это правильно.

Странно, была же тема уже(наш кореш из солнечной Ялты поднимал smile.gif ) о RealFFT. Не так уж трудно ее(тему) найти...
ivan219
DRUID3 если в читаетесь то увидите что я предположил что нужен квадратурный сигнал.

RealFFT а нафига??? если автору нжно комплексное БПФ может ему фаза сигнала нужна!!!

А если нужно подвигать сигнал то вот квадратурный гетеродин http://dspsystem.narod.ru/content/quadosc/quadosc.html
DRUID3
Цитата(ivan219 @ Jan 9 2010, 21:05) *
RealFFT а нафига??? если автору нжно комплексное БПФ может ему фаза сигнала нужна!!!

biggrin.gif Вы убили меня наповал, друг мой... RealFFT это устоявшееся название быстрого преобразования Фурье с вещественным рядом входных чисел. Само преобразование же Фурье это корреляция того или иного временного ряда(комплексного идли нет, а хоть и из 3-х составляющих которые можно назвать i,j и k, а хоть и из N и т.д.) с базисом(набором связанным правилом) функций комплексной экспоненты(хитрозадым представлением циклического кругового движения). Так вот - множа действительное число на комплексное где мнимая составляющая не нулевая - мы получим тоже комплексное число. Т.е. спектр по-любому комплексный - потому как комплексная экспонетна у нас в виде 2-х тригонометрических функций... Никакая фаза при этом не теряется. Фаза - грубо говоря - это привязка того или иного значения к оси времени. Школьный курс геометрии... И тоже уже была тема на форуме - раза 2-а минимум. И меня по этому поводу поправляли тоже tongue.gif

Цитата(ivan219 @ Jan 9 2010, 21:05) *
А если нужно подвигать сигнал то вот квадратурный гетеродин http://dspsystem.narod.ru/content/quadosc/quadosc.html

дело не в квадратурности... Делов то превратить вещественное число в комплексное. Взять и домножить к примеру на 1+j*1... а дело в том что ряд в 1024 отсчета "впихивают" в FFT на 512 точек... Мало того - потом успешно "выпихивают" что много сложнее...

>>>>Друзья, кому охота может вволю надрочиться с FFT biggrin.gif . С педагогической точки зрения - ресурс просто уматовый. Жаль в моем время изучения этого вопроса его то ли еще не было, то ли я о нем не знал sad.gif ...
ivan219
Вы убили меня наповал, друг мой... RealFFT это устоявшееся название быстрого преобразования Фуртье с вещественным рядом чисел. Я знаю ну он то про комплексное спросил.
Lmx2315
Цитата(ivan219 @ Jan 9 2010, 22:33) *
Вы убили меня наповал, друг мой... RealFFT это устоявшееся название быстрого преобразования Фуртье с вещественным рядом чисел. Я знаю ну он то про комплексное спросил.



спасибо комрады за дисскуссию буду много думать - конечно мне и амплитуда и фаза гармоник нужна потому комплексное БПФ и упомянул , вообще много интерессного написали .

з.ы.

поиском я в гугле попользовался по нашему форуму да видно не так вопросы ставил , всё не то.

Вот и предположил - дело то распространнёное , ацп - БПФ ...спросил как надо делать.

Цитата(DRUID3 @ Jan 9 2010, 22:17) *
>>>>Друзья, кому охота может вволю надрочиться с FFT biggrin.gif . С педагогической точки зрения - ресурс просто уматовый. Жаль в моем время изучения этого вопроса его то ли еще не было, то ли я о нем не знал sad.gif ...



вот спасибо smile.gif , действительно наглядно добавлю к этому http://www.fourier-series.com/
АНТОН КОЗЛОВ
[quote name='Lmx2315' date='Jan 9 2010, 23:39' post='702518']
спасибо комрады за дисскуссию буду много думать - конечно мне и амплитуда и фаза гармоник нужна потому комплексное БПФ и упомянул , вообще много интерессного написали .

Если бы вы имели входной сигнал от двухкоординатного сейсмодатчика или акселерометра, он конечно был бы комплесным. А ваш сигнал одноканальный, т.е. действительный (частный случай комплексного при мнимой части, равной нулю). После преобразования Фурье вы можете оценить и АЧХ и ФЧХ, причем фаза рассчитывается относительно формируемой в процессе преобразования сетки частот - от 0 Гц до половины частоты дискретизации. В начальный момент времени фазы всех опорных частот, естественно, равны 0. Все это для алгоритма Кули-Тьюки. Этому хорошо учили по книжкам Гоулда и Рабинера в прошлом. Сейчас должны быть свежие авторитеты.
AlikM
Цитата(Lmx2315 @ Jan 9 2010, 14:23) *
Запутался sad.gif

Такой вопрос - есть АЦП с него поступают отчёты сигнала как их перевести в комплексное представление ?

Как я сам мыслил - перемножить входной сигнал с sin и cos и отфильтровать ФНЧ ....но спектр входного сигнала занимает почти всё место до частоты найквиста и начинается уже с нулевой частоты . Отфильтровать не получится не убив кучу нужного .

Как же тогда всё делается ?


Хотелось с входным сигналом провести БПФ комплексное .

Ну так, а что Вас смутило. Так и действуйте. А вообще, давайте разберемся чего Вы там потеряете. См. рисунокНажмите для просмотра прикрепленного файла (набрасал немного smile.gif , крестик условно обозначает интересующую часть спектра)
Вещественный сигнал умножаете на две последовательности (0,1,0,-1 -- это sin((pi/2)*i)) и (1,0,-1,0 -- это cos((pi/2)*i)), а точнее, как видите, умножать совсем и не надо, знак только меняем. Таким образом двигаем спектр на Fs/4 и получаем два сигнала в квадратуре. Теперь надо отфильтровать повторы спектра в этих сигналах полуполосными фильтрами. Как мы помним полуполосные фильтры обладают рядом интересных свойств, например: каждый второй коэф. =0, а если длина нечет.,то часто средний коэф =0.5, ну и еще конечно симметрия. Вот Вам и комплексный сигнал.
Так и что же мы теряем? Вроде ничего, разве что при децимации на 2 заворотов "хапнем". А это уже фильтром рулим- возьмем подлиней, чтобы АЧХ покруче (зависит от задачи).
ЗЫ: Конечно, дабы избежать серьезных требований к фильтрам надо бы чуть увеличить частоту дискретизации АЦП.
Oldring
Цитата(Lmx2315 @ Jan 9 2010, 14:23) *
Такой вопрос - есть АЦП с него поступают отчёты сигнала как их перевести в комплексное представление ?


Поставив второй АЦП, измеряющий мнимую часть входного сигнала wink.gif
thermit
Чо ее мерять-то? Априори известно, что она равна 0.
Oldring
Цитата(thermit @ Jan 12 2010, 12:41) *
Чо ее мерять-то? Априори известно, что она равна 0.


У кого ноль, а у кого и нет. laughing.gif
thermit
А. Ну тада - аминь...
gridinp
Цитата(АНТОН КОЗЛОВ @ Jan 10 2010, 16:49) *
Если бы вы имели входной сигнал от двухкоординатного сейсмодатчика или акселерометра, он конечно был бы комплесным.


Это в смысле, что два датчика образуют комплекс датчиков?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.