Lmx2315 0 Posted January 9, 2010 · Report post Запутался :( Такой вопрос - есть АЦП с него поступают отчёты сигнала как их перевести в комплексное представление ? Как я сам мыслил - перемножить входной сигнал с sin и cos и отфильтровать ФНЧ ....но спектр входного сигнала занимает почти всё место до частоты найквиста и начинается уже с нулевой частоты . Отфильтровать не получится не убив кучу нужного . Как же тогда всё делается ? Хотелось с входным сигналом провести БПФ комплексное . Quote Ответить с цитированием Share this post Link to post Share on other sites
Xenia 0 Posted January 9, 2010 · Report post Сигнал АЦП - чисто реальный, поэтому ему в пару надо приложить нулевую мнимую часть - массив той же длины, инициализированный нулями. Quote Ответить с цитированием Share this post Link to post Share on other sites
MKS 0 Posted January 9, 2010 · Report post Попробуйте использовать преобразование Гильберта. Quote Ответить с цитированием Share this post Link to post Share on other sites
DRUID3 0 Posted January 9, 2010 · Report post 2Xenia: Можно. Но это из пушки по воробьям. Есть т.н. RealFFT. Quote Ответить с цитированием Share this post Link to post Share on other sites
Xenia 0 Posted January 9, 2010 · Report post 2Xenia: Можно. Но это из пушки по воробьям. Есть т.н. RealFFT. Солидарна, только каков вопрос, таков и ответ. Quote Ответить с цитированием Share this post Link to post Share on other sites
Lmx2315 0 Posted January 9, 2010 · Report post Сигнал АЦП - чисто реальный, поэтому ему в пару надо приложить нулевую мнимую часть - массив той же длины, инициализированный нулями. я не потеряю в таком случае информацию? ... хотелось бы получить как значения всех амплитуд для гармоник так и их фазы . Quote Ответить с цитированием Share this post Link to post Share on other sites
DRUID3 0 Posted January 9, 2010 · Report post я не потеряю в таком случае информацию? ... хотелось бы получить как значения всех амплитуд для гармоник так и их фазы . А откуда она(информация) возьмется?... Ответ кратко - нет, не потеряете... Quote Ответить с цитированием Share this post Link to post Share on other sites
bahurin 0 Posted January 9, 2010 (edited) · Report post таки не ясно чем реальный сигнал покоя не дает? Если функция БПФ поддерживает только комплексный входной сигнал то нулями забить мнимую часть и вперед. Но если хотите это безобразие по частоте подвигать то надо умножать на синусы с косинусами предварительно сделать интерполяцию в 2 раза чтобы было куда двигать и что фильтровать. Edited January 9, 2010 by bahurin Quote Ответить с цитированием Share this post Link to post Share on other sites
ivan219 0 Posted January 9, 2010 · Report post Lmx2315 Компликсный сигнал с АЦП ты не как не получишь. А вот полсе БПФ ты получишь комплексные составляющие сигнала спектр частот (гармоник) и вот после БПФ можно узнать и фазу и частоту и амплитуду. Если сдвинуть весь сигнал по фазе на 90 градусов то ты получишь квадратурный сигнал. Может ты это имел в виду тогда тебе нужно преобразование Гильберта и у тебя на выходе будет два сигнала I, Q т.е. синфазный и квадратурный. Quote Ответить с цитированием Share this post Link to post Share on other sites
DRUID3 0 Posted January 9, 2010 · Report post Lmx2315 Компликсный сигнал с АЦП ты не как не получишь. А вот полсе БПФ ты получишь комплексные составляющие сигнала спектр частот (гармоник) и вот после БПФ можно узнать и фазу и частоту и амплитуду. Если сдвинуть весь сигнал по фазе на 90 градусов то ты получишь квадратурный сигнал. Может ты это имел в виду тогда тебе нужно преобразование Гильберта и у тебя на выходе будет два сигнала I, Q т.е. синфазный и квадратурный. Да нет... Никакое преобразование Гильберта тут не нужно... Нужно так линейно разделить входные отсчеты что-бы можно было воспользоваться вторым "простаивающим" компонентом входного комплексного числа да еще и смочь потом разделить их составляющие на выходе ;) ... А нужно применить обычное RealFFT... И делается оно примерно так : ... то надо умножать на синусы с косинусами предварительно сделать интерполяцию в 2 раза чтобы было куда двигать и что фильтровать... Это если охота сэкономить ресурсы. А можно действительно влоб забить нулями - математически это правильно. Странно, была же тема уже(наш кореш из солнечной Ялты поднимал :) ) о RealFFT. Не так уж трудно ее(тему) найти... Quote Ответить с цитированием Share this post Link to post Share on other sites
ivan219 0 Posted January 9, 2010 (edited) · Report post DRUID3 если в читаетесь то увидите что я предположил что нужен квадратурный сигнал. RealFFT а нафига??? если автору нжно комплексное БПФ может ему фаза сигнала нужна!!! А если нужно подвигать сигнал то вот квадратурный гетеродин http://dspsystem.narod.ru/content/quadosc/quadosc.html Edited January 9, 2010 by ivan219 Quote Ответить с цитированием Share this post Link to post Share on other sites
DRUID3 0 Posted January 9, 2010 · Report post RealFFT а нафига??? если автору нжно комплексное БПФ может ему фаза сигнала нужна!!! Вы убили меня наповал, друг мой... RealFFT это устоявшееся название быстрого преобразования Фурье с вещественным рядом входных чисел. Само преобразование же Фурье это корреляция того или иного временного ряда(комплексного идли нет, а хоть и из 3-х составляющих которые можно назвать i,j и k, а хоть и из N и т.д.) с базисом(набором связанным правилом) функций комплексной экспоненты(хитрозадым представлением циклического кругового движения). Так вот - множа действительное число на комплексное где мнимая составляющая не нулевая - мы получим тоже комплексное число. Т.е. спектр по-любому комплексный - потому как комплексная экспонетна у нас в виде 2-х тригонометрических функций... Никакая фаза при этом не теряется. Фаза - грубо говоря - это привязка того или иного значения к оси времени. Школьный курс геометрии... И тоже уже была тема на форуме - раза 2-а минимум. И меня по этому поводу поправляли тоже :tongue: А если нужно подвигать сигнал то вот квадратурный гетеродин http://dspsystem.narod.ru/content/quadosc/quadosc.html дело не в квадратурности... Делов то превратить вещественное число в комплексное. Взять и домножить к примеру на 1+j*1... а дело в том что ряд в 1024 отсчета "впихивают" в FFT на 512 точек... Мало того - потом успешно "выпихивают" что много сложнее... >>>>Друзья, кому охота может вволю надрочиться с FFT . С педагогической точки зрения - ресурс просто уматовый. Жаль в моем время изучения этого вопроса его то ли еще не было, то ли я о нем не знал :( ... Quote Ответить с цитированием Share this post Link to post Share on other sites
ivan219 0 Posted January 9, 2010 · Report post Вы убили меня наповал, друг мой... RealFFT это устоявшееся название быстрого преобразования Фуртье с вещественным рядом чисел. Я знаю ну он то про комплексное спросил. Quote Ответить с цитированием Share this post Link to post Share on other sites
Lmx2315 0 Posted January 9, 2010 · Report post Вы убили меня наповал, друг мой... RealFFT это устоявшееся название быстрого преобразования Фуртье с вещественным рядом чисел. Я знаю ну он то про комплексное спросил. спасибо комрады за дисскуссию буду много думать - конечно мне и амплитуда и фаза гармоник нужна потому комплексное БПФ и упомянул , вообще много интерессного написали . з.ы. поиском я в гугле попользовался по нашему форуму да видно не так вопросы ставил , всё не то. Вот и предположил - дело то распространнёное , ацп - БПФ ...спросил как надо делать. >>>>Друзья, кому охота может вволю надрочиться с FFT . С педагогической точки зрения - ресурс просто уматовый. Жаль в моем время изучения этого вопроса его то ли еще не было, то ли я о нем не знал :( ... вот спасибо :) , действительно наглядно добавлю к этому http://www.fourier-series.com/ Quote Ответить с цитированием Share this post Link to post Share on other sites
marti 0 Posted January 10, 2010 · Report post спасибо комрады за дисскуссию буду много думать - конечно мне и амплитуда и фаза гармоник нужна потому комплексное БПФ и упомянул , вообще много интерессного написали . Если бы вы имели входной сигнал от двухкоординатного сейсмодатчика или акселерометра, он конечно был бы комплесным. А ваш сигнал одноканальный, т.е. действительный (частный случай комплексного при мнимой части, равной нулю). После преобразования Фурье вы можете оценить и АЧХ и ФЧХ, причем фаза рассчитывается относительно формируемой в процессе преобразования сетки частот - от 0 Гц до половины частоты дискретизации. В начальный момент времени фазы всех опорных частот, естественно, равны 0. Все это для алгоритма Кули-Тьюки. Этому хорошо учили по книжкам Гоулда и Рабинера в прошлом. Сейчас должны быть свежие авторитеты. Quote Ответить с цитированием Share this post Link to post Share on other sites