SPACUM 0 18 октября, 2011 Опубликовано 18 октября, 2011 (изменено) · Жалоба Никогда о нём не слышал. Будем почитать. http://www.padabum.com/d.php?id=3411 стр. 365. Изменено 18 октября, 2011 пользователем SPACUM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 18 октября, 2011 Опубликовано 18 октября, 2011 (изменено) · Жалоба http://www.padabum.com/d.php?id=3411 стр. 365. Какой-то он избыточный. Мне нужен довольно простой результат. Даже не "оценивание". А просто спектр с определённой степенью точности и с промежуточными частотами. При разрешении 1/8 бина БПФ точность амплитуды уже будет не менее 95% (точно не измерял, но не ниже 90%). Мне нужна примерно такая точность амплитуды и частОты 1/8 целого. И всё. Если амплитуда синуса ниже шума, то вообще не важен результат. Я пока что планировал итеративно вычислять ДПФ дробных частот в районе пиков на БПФ до достижения нужной точности частоты. Но с БПФ плохо то, что он амплитуду (пики) выдаёт неверную для дробных частот. Придётся анализировать окресности всех бинов до 1/2 от самого высокого. Хорошо хоть точек мало. Изменено 18 октября, 2011 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Какой-то он избыточный. Мне нужен довольно простой результат. Даже не "оценивание". А просто спектр с определённой степенью точности и с промежуточными частотами. При разрешении 1/8 бина БПФ точность амплитуды уже будет не менее 95% (точно не измерял, но не ниже 90%). Мне нужна примерно такая точность амплитуды и частОты 1/8 целого. И всё. Если амплитуда синуса ниже шума, то вообще не важен результат. Я пока что планировал итеративно вычислять ДПФ дробных частот в районе пиков на БПФ до достижения нужной точности частоты. Но с БПФ плохо то, что он амплитуду (пики) выдаёт неверную для дробных частот. Придётся анализировать окресности всех бинов до 1/2 от самого высокого. Хорошо хоть точек мало. А интерполировать по трём бинам не пробовали?Я когда-то игрался с этим,получались неплохие результаты но дальше модели не пошло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 18 октября, 2011 Опубликовано 18 октября, 2011 (изменено) · Жалоба А интерполировать по трём бинам не пробовали?Я когда-то игрался с этим,получались неплохие результаты но дальше модели не пошло. Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность. Да и результат точнее не будет, скорее наоборот. Т.к., если это делать по БПФ, то сразу вылезут грабли БПФ-а - несоответствие (а точнее занижение) амплитуды дробных частот. Что сразу может сделать пик на спектре принадлежащим шуму, а не моему сигналу. То есть, по трём точкам, значит одна из них - это пик на спектре БПФ. Но пик недостоверный. Если брать несколько пиков, то опять неясно какой в реале выше, т.к. они все недостоверные. Изменено 18 октября, 2011 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность. Да и результат точнее не будет, скорее наоборот. Т.к., если это делать по БПФ, то сразу вылезут грабли БПФ-а - несоответствие (а точнее занижение) амплитуды дробных частот. Что сразу может сделать пик на спектре принадлежащим шуму, а не моему сигналу. Ясно,с большим шумом я не пробовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Так спектр и усреднить можно. По множеству реализаций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Если надо определять коэффициенты с "дробными частотами" (между бинами), то дополняйте сигнал нулями и берите обычное ДПФ. Правильно ли я понимаю, что если мне надо найти все дробные бины с разрешением 1/8, то я должен к основному блоку данных (32 точки) добавить ещё 7 раз по 32 точки нулей и сделать БПФ по 256 точкам? Или там другой алгоритм добавления? Сейчас пока моделирую, проверяю достоверность амплитуд пиков этого метода. Хоть результат спектра далёк от идеала, но в моём случае, когда априорно известно, что сигнал - простой синус, может быть этот метод и сработает. Хотя БПФ по в 8 раз большему блоку сам по себе накладен и возможно будет медленнее БПФ @ 32N + X раз ДПФ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SPACUM 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Какой-то он избыточный. Ну на 30 точек получаем 10 амплитуд-частот-фаз и восстановленный сигнал проходит через все точки с любой точностью. Избыточность меньше, чем у БПФ(сигнал представлен меньшим числом гармоник). Если нужно 4 частоты - возьмите 12 точек. Вот с шумами дело темное. Тут Крамер-Рао не работает. Закон такой: Если сигнал состоит точно из N частот, то для их определения достаточно 3 * N точек выборки не обязательно через равные промежутки времени. А математика тут противная и требует повышенной точности вычислений и, наверное, усреднения по нескольким выборкам. При моем числе точек и для микропроцессора даже не пытался. Поставленная Вами задача - нужная и интересная и я ей тоже занимаюсь(в свободное от работы время и медленно). Пока действительно слишком долго считает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey Lukin 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Правильно ли я понимаю, что если мне надо найти все дробные бины с разрешением 1/8, то я должен к основному блоку данных (32 точки) добавить ещё 7 раз по 32 точки нулей и сделать БПФ по 256 точкам? Совершенно верно. Перед дополнением нулей сигнал можно умножить на весовое окно. Если шума очень много — то прямоугольное (оно оптимально для детектирования сигнала), если поменьше — то Ханна или другое аналогичное (они улучшают аккуратность оценки частоты при интерполяции по 3 точкам). Далее интерполирете частоту по трём максимальным точкам в спектре. Спектр перед этим лучше перевести в логарифмический масштаб амплитуд. Если нужна более высокая точность — обратитесь к параметрическим методам. Задача нахождения частоты синусоиды в шуме кем только не решалась, вот даже вот в соседнем топике... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 18 октября, 2011 Опубликовано 18 октября, 2011 (изменено) · Жалоба Задача нахождения частоты синусоиды в шуме кем только не решалась, вот даже вот в соседнем топике... У меня задача не совсем такая. Мне её сначала нужно "выявить" на фоне большого шума. Просто по БПФ её часто не видно. Это главная часть задачи. И точек мало. Я уже посмотрел на результаты 8-кратного дополнения нулей. Вобщем неплохо. Хотя странно, что амплитуды немного (или заметно) неточны. Часто даже в большую сторону. И это без шума вообще. Но мне это некритично. Спектр перед этим лучше перевести в логарифмический масштаб амплитуд. Зачем? Upd. Вобщем, проверил. БПФ от дополненного нулями блока сэмплов даёт результат лучше обычного БПФ для определения сразу же максимума на спектре и более точной (чем БПФ) частоты этого максимума. И это при больших шумах. Только подозреваю, что смысла в очень большом дополнении нулями нет. Этот же результат можно высчитать другим методом (тремя точками?). А во сколько раз дополнять нулями оптимально, надо бы разобраться. 2, 4 или 8. Изменено 18 октября, 2011 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SPACUM 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба У меня задача не совсем такая. Мне её сначала нужно "выявить" на фоне большого шума. Просто по БПФ её часто не видно. Это главная часть задачи. И точек мало. Я уже посмотрел на результаты 8-кратного дополнения нулей. Вобщем неплохо. Хотя странно, что амплитуды немного (или заметно) неточны. Часто даже в большую сторону. И это без шума вообще. Но мне это некритично. Зачем? 1.При SNR = 1 видно хорошо, значит Ваш сигнал меньше? 2.БПФ - практически идеальный обнаружитель синусоидального сигнала и если его не видно, значит число точек мало и ничего не поможет. 3.Рекомендуемые здесь методы основаны на том, что пик однозначно виден и ближайшие бины не скачут. 4.Вершина пика при окне Ханна мало похожа на параболу, а логарифмирование слегка приближает форму пика к ней. Я бы выбрал окно с более гладкой вершиной Наттала, Гаусса, Флаттоп и без логарифмирования. 5.А фильтр перед АЦП нельзя сделать лучше? Насколько входная частота меняется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey Lukin 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба Только подозреваю, что смысла в очень большом дополнении нулями нет. Этот же результат можно высчитать другим методом (тремя точками?). А во сколько раз дополнять нулями оптимально, надо бы разобраться. 2, 4 или 8. Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией. 4.Вершина пика при окне Ханна мало похожа на параболу, а логарифмирование слегка приближает форму пика к ней. Я бы выбрал окно с более гладкой вершиной Наттала, Гаусса, Флаттоп и без логарифмирования. Вот уж как раз flat-top окно на параболу совсем непохоже. Да и способность детектировать сигнал в шуме у этих окон слабая — они слишком узкие во временной области. Зачем? Так точнее получаются оценки частоты с помощью параболической интерполяции. Если не брать логарифма, то оценки будут смещены в сторону ближайшего бина ДПФ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 18 октября, 2011 Опубликовано 18 октября, 2011 (изменено) · Жалоба ... 1. Re := cos(p * i) + (Random-0.5)*3.0; 2. Это не так. Точнее не всегда так. Возьмите 32 точки, частоту например в 10.5 раз выше 1/Т. БПФ будет показывать недостоверную частоту и амплитуду максимума (хоть с шумом, хоть без). Далее сравните много раз картинки чистого БПФ и дополненного нулями в 8 раз. Даже по картикам виден лучший результат. 5. Зачём? Нет наложения спектров. ---------- Маленький вопрос не совсем по теме. ДПФ/БПФ увеличивает С/Ш в 2 раза или в 1.41 при увеличении периода (длины [кол-ва точек] синуса) в 2 раза на фоне белого шума? Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией. Это хорошо. Если бы мне нужна была одна точка и я знал где её искать, интерполировал бы только её и сэкономил время. Но чтобы найти все возможные видимо проще будет делать большой БПФ. Upd. Как раз, в продолжении этого алгоритма мне понадобится знать только 4 точки из всего спектра. Их-то и можно будет интерполировать после короткого БПФ. Причём с любой дробной частью частоты. Изменено 18 октября, 2011 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey Lukin 0 18 октября, 2011 Опубликовано 18 октября, 2011 · Жалоба ДПФ/БПФ увеличивает С/Ш в 2 раза или в 1.41 при увеличении периода (длины [кол-ва точек] синуса) в 2 раза на фоне белого шума? С/Ш в каждом бине ДПФ улучшается на 3 дБ, т.к. мощность шума распределяется на 2 бина, а мощность синуса не изменяется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SPACUM 0 19 октября, 2011 Опубликовано 19 октября, 2011 (изменено) · Жалоба 5. Зачём? Нет наложения спектров. ---------- В смысле шума на входе. БПФ не идеальный фильтр, а шума очень много. Хотя если частота может меняться в несколько раз, смысла нет. Изменено 19 октября, 2011 пользователем SPACUM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться