Перейти к содержанию
    

Измерение сигнала с помощью БПФ

Приветствую всех.

Стоит задача измерить сигнал в полосе частот от 10 Гц до 100 кГц с полосой 1 Гц. Сигнал оцифровывается на частоте 2,5 МГц.

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

В принципе вопрос в том как на анализаторах применяя БПФ получают нормальную картинку в виде колокообразного сигнала? Интерполяция линейная между точками БПФ, может быть все дело в интерполяции?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используйте спектральные окна и будет Вам колокол.

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

 

В частном случае узкой спектральной палки используют интерполяцию только не линейную

Например вот такие сложные способы интерполяции по ссылкам здесь в форуме

http://electronix.ru/forum/index.php?showt...mp;#entry695667

 

Или квадратичная интерплоляция. Вот тут исчерпывающая информация по квадратичной интерполяции одиночного спектрального пика

https://ccrma.stanford.edu/STANM/stanm/node3.html

 

Точность определения амплитуды и частоты изолированой сингулярности в спектре (уже чем бин) ограничены только отношением сигнал/шум, а форма известна заранее - это инструментальная функция окна.

При интерполяции куда попадает точка - неважно. Производится предельно точная (в статистическом смысле) оценка параметнов - амплитуды, частоты и фазы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используйте спектральные окна и будет Вам колокол.

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

 

В частном случае узкой спектральной палки используют интерполяцию только не линейную

Например вот такие сложные способы интерполяции по ссылкам здесь в форуме

http://electronix.ru/forum/index.php?showt...mp;#entry695667

 

Или квадратичная интерплоляция. Вот тут исчерпывающая информация по квадратичной интерполяции одиночного спектрального пика

https://ccrma.stanford.edu/STANM/stanm/node3.html

 

Точность определения амплитуды и частоты изолированой сингулярности в спектре (уже чем бин) ограничены только отношением сигнал/шум, а форма известна заранее - это инструментальная функция окна.

При интерполяции куда попадает точка - неважно. Производится предельно точная (в статистическом смысле) оценка параметнов - амплитуды, частоты и фазы

 

Спасибо за исчерпывающий ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще многое зависит от сигнала. Что такое 1Гц, приведенный выше? Требуемая дискретность или ширины полос присутствующих сигналов? Если Вы хотите ихмерять сигнал такой, что при Вашей длине буфера спектральные составляющие не перекрываются (с учетом наложенного окна), то можно брать корень квадратный из суммы квадратов отсчетов в интересующей полосе и получать очень точное среднеквадратичное значение сигнала в этой полосе (это всегда верно, даже для перекрывающихся линий), а затем получать амплитуду и частоту линии (а вот это - только для неперекрывающихся). Частоту можно посчитать точнее бина, если использовать правильную аппроксимацию (оконной функцией) и искать положение максимума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня тоже интересует этот вопрос.

Если умножить сигнал на комплексную экспоненту и здвинуть его по частоте до целого пина. Что при этом с сигналом будет? Изменится ли его амплитуда и фаза? И если да то как? Соответственно таким образом можно и частоту узнать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы сдвигать сигнал по частоте с целью попасть в бин, нужно сдвинуть его в середину бина, иначе он все равно распадется на два. А если Вы уже знаете частоту, чтобы вычислить сдвиг, то Вам больше не нужно его сдвигать.

Непосредственно по вопросу - амплитуда не изменится, если домножаете на сигнал с единичной амплитудой, а фаза вообще будет неизвестно чем, поскольку изменилась частота (ну, конечно, известно, но долго считать надо).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

фаза вообще будет неизвестно чем

Как раз если попасть, то и амплитуда правильная и фаза относительно начала окна будет верная. А если промахнуться, то амплитуду придется по всем остальным бинам собирать и фаза неизвестно чего будет. Есть метод определения одиночной частоты именно по максимуму амплитуды. (Грубая оценка. По трем точкам точнее.)

Изменено пользователем SPACUM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы сдвигать сигнал по частоте с целью попасть в бин, нужно сдвинуть его в середину бина, иначе он все равно распадется на два. А если Вы уже знаете частоту, чтобы вычислить сдвиг, то Вам больше не нужно его сдвигать.

 

Ну почемуже знаем? Можноже простым подбором. Вот скажем шагаем мы по 1Гц и вдруг вылес бин которого не должно быть значит мы перешагнули шаг назад и уже по 0.1Гц и.т.д. я думаю времени займт не так уж и много. Учитывая что можно посчитамть всего 3-5 бинов вместо целого FFT и по ним уже ориентироватся в идеале должен быть только один центральный бин соответствовать середине частоты, остальные на уровне шума. После чего нехитрая матиматика и частота готова :rolleyes:

Изменено пользователем ivan219

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну почемуже знаем? Можноже простым подбором. Вот скажем шагаем мы по 1Гц и вдруг вылес бин которого не должно быть значит мы перешагнули шаг назад и уже по 0.1Гц и.т.д. я думаю времени займт не так уж и много. Учитывая что можно посчитамть всего 3-5 бинов вместо целого FFT и по ним уже ориентироватся в идеале должен быть только один центральный бин соответствовать середине частоты, остальные на уровне шума. После чего нехитрая матиматика и частота готова :rolleyes:

 

Перебор в широком диапазоне с большой точностью никогда не есть гуд. Существует более перспективный подход, когда определяется максимальный бин DFT, и два скалярных произведения с комплексными экспонентами (Герцелями, если так больше нравится называть) отстоящими от частоты центрального бина на четверть ширины бина. Дальше снова проводится квадратичная интерполяция спектра мощности по 3-м точкам. В англоязычной литературе такой способ называют часто для убедительности "maxlikelihood extension", поскольку вблизи максимума любую функцию можно приблизить параболой. В принципе этот метод ничем не отличается от квадратичной интерполяции с добавлением нулей, но спектр вне точек DFT оценивается только вблизи максимального бина

 

В принципе, это "maxlikelihood extension" может быть добавлено к любому алгоритму определения частоты в качестве последней уточняющей фазы.

Я когда-то давал ссылку на алгоритм DMA-RAD быстрого и точного определения частоты по корреляциям разного масштаба(без DFT), так там на последнем этапе авторы предлагают всё равно провести квадратичную интерполяцию по 3-м частотным точкам

http://electronix.ru/forum/index.php?act=A...st&id=20411

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...