dlsh 1 15 сентября, 2010 Опубликовано 15 сентября, 2010 · Жалоба Приветствую всех. Стоит задача измерить сигнал в полосе частот от 10 Гц до 100 кГц с полосой 1 Гц. Сигнал оцифровывается на частоте 2,5 МГц. Вроде вариант БПФ но на картинки не совсем превычное изображение спектра по сравнению с анализаторами, а именно на анализаторе колокообразный сигнал, а после БПФ палка, и когда частота не попадает в точку то есть ошибка порядка 1 дБ. В принципе вопрос в том как на анализаторах применяя БПФ получают нормальную картинку в виде колокообразного сигнала? Интерполяция линейная между точками БПФ, может быть все дело в интерполяции? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 15 сентября, 2010 Опубликовано 15 сентября, 2010 · Жалоба Используйте спектральные окна и будет Вам колокол. Между бинами БПФ в общем случае информация не доступна, в том смысле, что БПФ в общем случае не может давать разрешение лучше бина. В частном случае узкой спектральной палки используют интерполяцию только не линейную Например вот такие сложные способы интерполяции по ссылкам здесь в форуме http://electronix.ru/forum/index.php?showt...mp;#entry695667 Или квадратичная интерплоляция. Вот тут исчерпывающая информация по квадратичной интерполяции одиночного спектрального пика https://ccrma.stanford.edu/STANM/stanm/node3.html Точность определения амплитуды и частоты изолированой сингулярности в спектре (уже чем бин) ограничены только отношением сигнал/шум, а форма известна заранее - это инструментальная функция окна. При интерполяции куда попадает точка - неважно. Производится предельно точная (в статистическом смысле) оценка параметнов - амплитуды, частоты и фазы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dlsh 1 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Используйте спектральные окна и будет Вам колокол. Между бинами БПФ в общем случае информация не доступна, в том смысле, что БПФ в общем случае не может давать разрешение лучше бина. В частном случае узкой спектральной палки используют интерполяцию только не линейную Например вот такие сложные способы интерполяции по ссылкам здесь в форуме http://electronix.ru/forum/index.php?showt...mp;#entry695667 Или квадратичная интерплоляция. Вот тут исчерпывающая информация по квадратичной интерполяции одиночного спектрального пика https://ccrma.stanford.edu/STANM/stanm/node3.html Точность определения амплитуды и частоты изолированой сингулярности в спектре (уже чем бин) ограничены только отношением сигнал/шум, а форма известна заранее - это инструментальная функция окна. При интерполяции куда попадает точка - неважно. Производится предельно точная (в статистическом смысле) оценка параметнов - амплитуды, частоты и фазы Спасибо за исчерпывающий ответ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Еще многое зависит от сигнала. Что такое 1Гц, приведенный выше? Требуемая дискретность или ширины полос присутствующих сигналов? Если Вы хотите ихмерять сигнал такой, что при Вашей длине буфера спектральные составляющие не перекрываются (с учетом наложенного окна), то можно брать корень квадратный из суммы квадратов отсчетов в интересующей полосе и получать очень точное среднеквадратичное значение сигнала в этой полосе (это всегда верно, даже для перекрывающихся линий), а затем получать амплитуду и частоту линии (а вот это - только для неперекрывающихся). Частоту можно посчитать точнее бина, если использовать правильную аппроксимацию (оконной функцией) и искать положение максимума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan219 0 17 сентября, 2010 Опубликовано 17 сентября, 2010 · Жалоба Меня тоже интересует этот вопрос. Если умножить сигнал на комплексную экспоненту и здвинуть его по частоте до целого пина. Что при этом с сигналом будет? Изменится ли его амплитуда и фаза? И если да то как? Соответственно таким образом можно и частоту узнать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 19 сентября, 2010 Опубликовано 19 сентября, 2010 · Жалоба Чтобы сдвигать сигнал по частоте с целью попасть в бин, нужно сдвинуть его в середину бина, иначе он все равно распадется на два. А если Вы уже знаете частоту, чтобы вычислить сдвиг, то Вам больше не нужно его сдвигать. Непосредственно по вопросу - амплитуда не изменится, если домножаете на сигнал с единичной амплитудой, а фаза вообще будет неизвестно чем, поскольку изменилась частота (ну, конечно, известно, но долго считать надо). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SPACUM 0 19 сентября, 2010 Опубликовано 19 сентября, 2010 (изменено) · Жалоба фаза вообще будет неизвестно чем Как раз если попасть, то и амплитуда правильная и фаза относительно начала окна будет верная. А если промахнуться, то амплитуду придется по всем остальным бинам собирать и фаза неизвестно чего будет. Есть метод определения одиночной частоты именно по максимуму амплитуды. (Грубая оценка. По трем точкам точнее.) Изменено 19 сентября, 2010 пользователем SPACUM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan219 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 (изменено) · Жалоба Чтобы сдвигать сигнал по частоте с целью попасть в бин, нужно сдвинуть его в середину бина, иначе он все равно распадется на два. А если Вы уже знаете частоту, чтобы вычислить сдвиг, то Вам больше не нужно его сдвигать. Ну почемуже знаем? Можноже простым подбором. Вот скажем шагаем мы по 1Гц и вдруг вылес бин которого не должно быть значит мы перешагнули шаг назад и уже по 0.1Гц и.т.д. я думаю времени займт не так уж и много. Учитывая что можно посчитамть всего 3-5 бинов вместо целого FFT и по ним уже ориентироватся в идеале должен быть только один центральный бин соответствовать середине частоты, остальные на уровне шума. После чего нехитрая матиматика и частота готова :rolleyes: Изменено 20 сентября, 2010 пользователем ivan219 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба Ну почемуже знаем? Можноже простым подбором. Вот скажем шагаем мы по 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться