Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Быстрое преобразование Фурье не для степени 2
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2, 3
SPACUM
Цитата(Sergey Makarov @ Sep 20 2011, 09:00) *
Есть частота силового напряжения 50Гц. Диапазон частот осциллографируемых гармонических сигналов 0-51Гц.

Не поправляю. Вторая гармоника = 100Гц, третья = 150Гц, итд.
Мне кажется в Вашем случае самое полезное это практика. Сделайте как есть, получите результат и спрашивайте как его улучшить.
1. Напишите обмен с процом. Самое легкое через COM и стандартную программу терминал. Желательнее подключить монитор(хотя бы через SPI) и клавиатуру.
2.Выборку делайте не менее 5-7 периодов основной частоты.
3.При вопросах прилагайте выборку и ответы будут по существу вопроса.
Sergey Makarov
Цитата(SPACUM @ Sep 20 2011, 16:43) *
Не поправляю. Вторая гармоника = 100Гц, третья = 150Гц, итд.
Мне кажется в Вашем случае самое полезное это практика. Сделайте как есть, получите результат и спрашивайте как его улучшить.
1. Напишите обмен с процом. Самое легкое через COM и стандартную программу терминал. Желательнее подключить монитор(хотя бы через SPI) и клавиатуру.
2.Выборку делайте не менее 5-7 периодов основной частоты.
3.При вопросах прилагайте выборку и ответы будут по существу вопроса.

уже скоро приступлю к реализации, думаю еще куча вопросов появится, а сейчас только поак собираю инфу. если честно то рад что открыл тему на форуме, много чего стало ясно. а так всем спасибо! по мере поступления вопросов, буду тему подниматьsm.gif
GetSmart
Цитата(almost @ Sep 20 2011, 14:33) *
Мне нравится как дискуссия по поводу спектра (в большинстве случаев) плавно уходит в метафизику =)
...
Ну а теперь если подумать, существуют ли гармонические сигналы? Конечно же нет, это сугубо математическая абстракция,

Не заметил в своих рассуждениях никакой метафизики. И спектр и гармонические сигналы это исходно математика. Как и отдельное спасибо математике за предоставленные числа sm.gif Которыми смело пользуюся при измерении величин и даже расчётов. Ведь никто не сомневается, если мультиметр показывает 1.235 вольт в том, что там на самом деле 1.3 вольта. С определённой точностью прибора ему доверяют. И спектр чистого синуса вполне похож на палку, и чем точнее мат. обработка, тем уже и точнее на спектре будет эта палка. Это легко доказывается прямыми и обратными преобразованиями. А скатывание в метафизику скорее признак демогогии.

Более подробно о спектре. Допустим того же синуса. Спектр вообще это не одна палка. Спектр любого сигнала это целое множество "палок". Но у синуса это одна ярковыраженная палка (ненулевой длины) и все соседние нулевой длины. Вот это и есть спектр синуса при правильной мат.обработке. То есть спектр у синуса прерывный. У других не ЧМ сигналов тоже спектр в идеале прерывный, но из нескольких палок, например АМ модуляция. Мне например смешно, когда мне показывают какую-то "жуткую" картинку с пологими сторонами "палки" и говорят что это самый правильный спектр синуса, на котором видно множество правильных деталей. То есть "детали" приписывают именно сигналу, а не ограниченности данных и кривой обработке. С одной стороны, если нужно отловить на спектре только самую ярковыраженную палку или несколько их с большей точностью значения частоты, то это да, смысл есть в дополнении нулями. Но надо прекрасно понимать, что при этом возникают искажения более слабых гармоник, да и главные пики имеют амплитуду ниже оригинальной сигнала когда его период не кратен. То есть точность определения частоты возрастает, точность определения амплитуды уменьшается для пиков спектра, для слабых сигналов всё намного хуже.
fontp
QUOTE (almost @ Sep 20 2011, 15:48) *
Я вот не могу догнать почему именно так, почему именно синус? Моск разрывается просто =)
Есть у Юнга достаточно интересное произведение - Синхроничность называется, то же моск взрывает.


Спектральное разложение в математике, обобщенно - это собственные функции оператора.
А комплексные синусы - это собственные функции конкретного оператора сдвига. Именно поэтому синусы занимают центральное место в анализе процессов в однородном пространстве или времени. Ничего удивительного

QUOTE (GetSmart @ Sep 21 2011, 03:26) *
Более подробно о спектре. Допустим того же синуса. Спектр вообще это не одна палка. Спектр любого сигнала это целое множество "палок". Но у синуса это одна ярковыраженная палка (ненулевой длины) и все соседние нулевой длины. Вот это и есть спектр синуса при правильной мат.обработке. То есть спектр у синуса прерывный. У других не ЧМ сигналов тоже спектр в идеале прерывный, но из нескольких палок, например АМ модуляция. Мне например смешно, когда мне показывают какую-то "жуткую" картинку с пологими сторонами "палки" и говорят что это самый правильный спектр синуса, на котором видно множество правильных деталей. То есть "детали" приписывают именно сигналу, а не ограниченности данных и кривой обработке. С одной стороны, если нужно отловить на спектре только самую ярковыраженную палку или несколько их с большей точностью значения частоты, то это да, смысл есть в дополнении нулями. Но надо прекрасно понимать, что при этом возникают искажения более слабых гармоник, да и главные пики имеют амплитуду ниже оригинальной сигнала когда его период не кратен. То есть точность определения частоты возрастает, точность определения амплитуды уменьшается для пиков спектра, для слабых сигналов всё намного хуже.


Не вступая в бесполезную дискуссию, и соглашаясь с Вами в отношении "деталей", замечу только, что напротив - спектр "прерывный" бывает только в идеале, в абстракции. Физические спектры всегда непрерывны, хотя бы из-за нестабильности несущей или ограниченности времени наблюдения. "Прерывные" (линейчатые) спектры всего лишь удобная абстракция, когда от некоторых деталей можно отвлечься
GetSmart
Цитата(fontp @ Sep 21 2011, 13:15) *
... замечу только, что напротив - спектр "прерывный" бывает только в идеале, в абстракции. Физические спектры всегда непрерывны, хотя бы из-за нестабильности несущей или ограниченности времени наблюдения. "Прерывные" (линейчатые) спектры всего лишь удобная абстракция, когда от некоторых деталей можно отвлечься

На самом деле на реальные спектры сигналов гораздо сильнее влияют шумы, которые есть почти всегда. Вот в опорах может чаще нестабильности. Я просто указал ориентир того, какие правильные детали должны быть видны на спектре, разумеется идеализировав детали. В реале все спектры непрерывные и даже АМ в чистом виде не существует, там всегда АМ+ЧМ. Потому как "голая" АМ (с прерывным спектром) есть отсутствие информации (динамики) в сигнале.

Цитата(ViKo @ Sep 18 2011, 12:20) *
P.S. было бы неплохо, чтобы не только GetSmart дополнял и поправлял fontp, но и наоборот. sm.gif

Ещё советы, пожелания, просьбы?
А то все неожиданно замолчали. А у меня готовы две сотни ответов biggrin.gif
thermit
Чем спектр синуса отличается от спектра косинуса?
GetSmart
Цитата(thermit @ Sep 24 2011, 15:19) *
Чем спектр синуса отличается от спектра косинуса?

Фазой.
Или градусом, если это из области шутки sm.gif

В спектре, фаза неотъемлемая часть.
Ofei
Цитата(almost @ Sep 20 2011, 15:48) *
...
Я вот не могу догнать почему именно так, почему именно синус? Моск разрывается просто =)
...


Ничто вам не мешает взять любой другой полный набор ортогональных функций. Преобразование Фурье, в общем виде, не завязано на конкретный базис.
Дмитрий_Б
Почему именно гармонические функции из всех ортогональных?
Очень просто: линейные электрические цепи не искажают форму гармонических входных воздействий.
На выходе изменяются лишь параметры - амплитуда и фаза.
Это позволяет описывать прохождение сигналов сложной формы при помощи такого свойства электрической цепи, как частотная характеристика и спектра сигнала.
Alexey Lukin
Это хорошая причина. Есть и другие: например, наше ухо тоже "раскладывает" звук приблизительно на синусоиды благодаря улитке.
GetSmart
Почитал все посты тредстартера. Не понял что надо найти. Во-первых, разумеется, при юзании БПФ/ДПФ сигнал должен быть хотя бы 1 период. То есть в 500 точках 40 мкс дискр. искать сигнал в 30 или 20 гц занятие бесполезное. Как и сигналы диапазона 0-51 гц. Разрешение каждого бина будет 50 гц. Хоть дополняй нулями, хоть не дополняй. То есть увидеть можно 50,100,150 гц сигналы, в реале это будут /грубо/ 25-75, 75-125, 125-175 и тд. Дополнение нулями (500->512) на младших гармониках (что нужно ТС) занятие бесполезное, даже вредное. Советчики этого метода пересказали что-то, о чём где-то прочитали не поняв сути и задания.

Вообще, если ТС нужны низкие частоты, то почему дискр. 40 мкс? Почему не 1 мс и с 500 сэмплами будет разрешение 2..500 гц. Тогда можно смело брать 512 отсчётов и не беспокоиться о точности периода, который всё равно точно не известен. У частотника наверняка будут и низкие частоты, ниже сетевой частоты, хотя конечно от нагрузки зависит.

Ну и, собственно, прежде чем что-то считать нужно чётко понимать что и где "искать". И есть ли там это что-то. А то можно в запале захотеть найти спектр одиночного импульса. При этом как говорится - флаг в руки.
Kluwert
Цитата(Sergey Makarov @ Sep 14 2011, 16:45) *
Добрый день!
Стоит задача осуществить быстрое преобразовние Фурье для 500 отсчетов. Аппаратно DSP поддерживает быстрое преобразование по модулю 2. Вопрос, как довести кол-во точек до 512? Достаточно ли заполнить недостающие значения нулями? Сильно ли исказится результат преобразования после такого допущения?

Не сильно, но исказится. Дополнение нулями во временной области), как следует из свойств ПФ приведет к тому, что полученный спектр будет являться сверткой настоящего спектра (т.е. спектра 500-отсчетного исходного сигнала) и ПФ от прямоугольного окна (s_i = 1, i=0:499 и s_i = 0, i=500:511). Спектр этого окна вы отлично знаете - это функция sinc. Поскольку окно очень широкое, то ширина функции sinc будет чуть шире одного отсчета. Другими словами, спектр после дополнения нулями "слегка размажется".
Alexey Lukin
Не забывайте, что свёртка с sinc происходит при любом размере ПФ: как 500, так и 512.
andyp
Цитата
Добрый день!
Стоит задача осуществить быстрое преобразовние Фурье для 500 отсчетов. Аппаратно DSP поддерживает быстрое преобразование по модулю 2. Вопрос, как довести кол-во точек до 512? Достаточно ли заполнить недостающие значения нулями? Сильно ли исказится результат преобразования после такого допущения? Если можно ссылкой на математическое обоснование поделитесь плз. Или все таки придется до 512 точек дополнять интерполировав существующие значения? Кто чем может помогите плз.


Если ДПФ используется для оценки СПМ, то вместо добавления 0 экстраполируйте по 6 отсчетов с каждого края и будет Вам счастье. Это явно дешевле интерполяции. За теоретическим обоснованием - к Марплу гл. 7.4. В качестве экстраполирующего можно использовать полосовой фильтр, если примерно известна полоса процесса, который анализируете.
Sergey Makarov
Цитата(GetSmart @ Oct 5 2011, 23:25) *
Почитал все посты тредстартера. Не понял что надо найти. Во-первых, разумеется, при юзании БПФ/ДПФ сигнал должен быть хотя бы 1 период. То есть в 500 точках 40 мкс дискр. искать сигнал в 30 или 20 гц занятие бесполезное. Как и сигналы диапазона 0-51 гц. Разрешение каждого бина будет 50 гц. Хоть дополняй нулями, хоть не дополняй. То есть увидеть можно 50,100,150 гц сигналы, в реале это будут /грубо/ 25-75, 75-125, 125-175 и тд. Дополнение нулями (500->512) на младших гармониках (что нужно ТС) занятие бесполезное, даже вредное. Советчики этого метода пересказали что-то, о чём где-то прочитали не поняв сути и задания.

Вообще, если ТС нужны низкие частоты, то почему дискр. 40 мкс? Почему не 1 мс и с 500 сэмплами будет разрешение 2..500 гц. Тогда можно смело брать 512 отсчётов и не беспокоиться о точности периода, который всё равно точно не известен. У частотника наверняка будут и низкие частоты, ниже сетевой частоты, хотя конечно от нагрузки зависит.

Ну и, собственно, прежде чем что-то считать нужно чётко понимать что и где "искать". И есть ли там это что-то. А то можно в запале захотеть найти спектр одиночного импульса. При этом как говорится - флаг в руки.


С вами согласен полностью, искать 30Гц сигналы в 500 точках с дискретой 40 мкс дело бесполезное, и не благодарное, хоть сколько угодно не дополняй данный массив нулями. Я это уже понял. Моделирование в МАТЛАБ все (или почти все) расставило на свои места. Только вот не понял как это " 1 мс и с 500 сэмплами будет разрешение 2..500 гц."? может все таки 50Гц?


Цитата(andyp @ Oct 8 2011, 15:49) *
Если ДПФ используется для оценки СПМ, то вместо добавления 0 экстраполируйте по 6 отсчетов с каждого края и будет Вам счастье. Это явно дешевле интерполяции. За теоретическим обоснованием - к Марплу гл. 7.4. В качестве экстраполирующего можно использовать полосовой фильтр, если примерно известна полоса процесса, который анализируете.


вобщем путем моделирования стало ясно, что добавление нулей к отсчетам функции с 500 до 512, приводит к смещению спектра. например для синусоидального 50Гц сигнала добавленного нулями частота максимальной гармоники стала равной 48,8Гц. Экспериментировал много, с сигналами разной частоты, всегда получал смещение. Да, после увеличения кол-ва отсчетов до большего значения добавлением нулей , максимумы спектра выделяются явнее, но частота этих максимумов уже не соответствует действительности.

SPACUM
Цитата(Sergey Makarov @ Oct 10 2011, 17:54) *
Только вот не понял как это " 1 мс и с 500 сэмплами будет разрешение 2..500 гц."? может все таки 50Гц?

Тк. автор не ответил, отвечу за него. Время выборки = 500 * 1мс = .5с. Самая медленная синусоида которая туда влезает F = 1/.5c = 2Гц. Это первая гармоника Фурье. А Ваши 50Гц будут 25й гармоникой.
Самое первое упоминание об БПФ на 500 точек было в этой книге, я тогда оттуда программу и взял. И все работало.
(http://www.knigonosha.net/tehnika/other_tehn/31-primenenie-teorii-chisel-v-cifrovoj-obrabotke.html)
andyp
Цитата
вобщем путем моделирования стало ясно, что добавление нулей к отсчетам функции с 500 до 512, приводит к смещению спектра. например для синусоидального 50Гц сигнала добавленного нулями частота максимальной гармоники стала равной 48,8Гц. Экспериментировал много, с сигналами разной частоты, всегда получал смещение. Да, после увеличения кол-ва отсчетов до большего значения добавлением нулей , максимумы спектра выделяются явнее, но частота этих максимумов уже не соответствует действительности.


при добавлении отсчетов по краям смещения спектра не происходит, немного повышается разрешение (ну те ширина колодца DFT была Fs/500, а стала Fs/512) и Ваша фиксированная частота как-бы "смещается", попадая в другие колодцы.
ViKo
Цитата(Sergey Makarov @ Oct 10 2011, 16:54) *
Только вот не понял как это " 1 мс и с 500 сэмплами будет разрешение 2..500 гц."?

Это называется не "разрешение", а диапазон. А разрешение будет 2 Hz. То есть, вычислится спектр для частот 2, 4, 6... 500 Hz.
Sergey Makarov
Цитата(SPACUM @ Oct 10 2011, 18:46) *
Тк. автор не ответил, отвечу за него. Время выборки = 500 * 1мс = .5с. Самая медленная синусоида которая туда влезает F = 1/.5c = 2Гц. Это первая гармоника Фурье. А Ваши 50Гц будут 25й гармоникой.
Самое первое упоминание об БПФ на 500 точек было в этой книге, я тогда оттуда программу и взял. И все работало.
(http://www.knigonosha.net/tehnika/other_tehn/31-primenenie-teorii-chisel-v-cifrovoj-obrabotke.html)

Спасибо за ссылкуsm.gif а на счет диапазона я понял. Времени выборки 1 мс соотвествует частота 1кГц, диапазон частот представленных в спектре сигнала 1000/500*k, где k = 1...250, так как спектр симметричен относительно N/2, в данном случае 250, поэтому и получается 1000/500*250=500 Гц, последняя частота для 500 точек отсчетов.

Цитата(andyp @ Oct 10 2011, 21:50) *
при добавлении отсчетов по краям смещения спектра не происходит, немного повышается разрешение (ну те ширина колодца DFT была Fs/500, а стала Fs/512) и Ваша фиксированная частота как-бы "смещается", попадая в другие колодцы.


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

Цитата(ViKo @ Oct 11 2011, 11:56) *
Это называется не "разрешение", а диапазон. А разрешение будет 2 Hz. То есть, вычислится спектр для частот 2, 4, 6... 500 Hz.

да спасибо, разобрался. я почему то подумал что мне пытаются сказать что 1мс и 500 отсчетов достаточно для диапазона входных сигналов 2..500 Гц. Видимо уже мозг заклинилоsm.gif
andyp
Цитата(Sergey Makarov @ Oct 11 2011, 15:44) *
я могу быть и не прав, но моделирование в матлабе мне показало что результат ДПФ одинаков для сигнала добавленного нулями либо только в конец массива, либо симметрично с каждой стороны.


амплитуда ДФТ будет одинаковой. фаза - изменится. Задержка во временной области соответствует умножению ДФТ на комплексную экспоненту

в догонку к предыдущему - сдвиг фазы будет зависеть от частоты и величины задержки (те фактически изменится наклон фазовой характеристики)
GetSmart
Господа/Товарищи!
А дробный ДПФ/БПФ никто не видел? Мне вот понадобилось (особено для малых N [16..256]). В частности хотелось бы определять промежуточные дробные частоты с веществ. значениями 0.5, 0.25, 0.75 и др. от 1/T.
Знаю точно, что дробный ДПФ работает не хуже целого по части нахождения пиков гармоник. Испытывал на медленном алгоритме. Но вдруг есть побыстрее.
Alexey Lukin
А что такое дробный ДПФ?
Если надо определять коэффициенты с "дробными частотами" (между бинами), то дополняйте сигнал нулями и берите обычное ДПФ. Обычное ДПФ при желании можно слегка ускорить, выкинув из вычислений дополняемые нули, но не сильно. Это называется pruned FFT.
GetSmart
Цитата(Alexey Lukin @ Oct 18 2011, 15:00) *
Обычное ДПФ при желании можно слегка ускорить, выкинув из вычислений дополняемые нули, но не сильно. Это называется pruned FFT.

Что-то про ДПФ не понял. Зачем его замедлять, а потом ускорять? Для БПФ это понятно.

Дробный ДПФ/БПФ - это вычисление спектра частот 1.5, 2.5, 3.5 и т.д., в том числе и с любыми вещественными долями. Вообще, вся "ортогональщина" гармоник Фурье это только в идеале. И даже на бесконечности никаких улучшений. В реале чаще всего гармоники не кратные и не совсем ортогональные друг другу.

У меня стоит задача. Взять 16 или 32 сэмпла с одним синусом внутри, но на фоне большого шума. По сути, если в спектре есть самый высокий пик, то это предположительно мой синус. И нужно узнать из этих 16 сэмплов поточнее частоту синуса (до 1/8 бина для начала хватит). Но штука в том, что если частота синуса некратна бину (изначально я её не знаю и не могу предугадать), то в обычном БПФ/ДПФ пик на спектре может отклоняться от реального значительно (возможно до 0.7 или до 0.5 от реала). Однако, дробный ДПФ (возможно и дополненный нулями БПФ и перенормированный) может показывать пики спектра ближе к реальным.
SPACUM
Цитата(GetSmart @ Oct 18 2011, 12:22) *
Знаю точно, что дробный ДПФ работает не хуже целого по части нахождения пиков гармоник. Испытывал на медленном алгоритме. Но вдруг есть побыстрее.

Согласен.
Похоже выше 7й гармоники дополнение нулями работает удовлетворительно. А ниже нужны особые методы.
У меня еще и шумы, так что менее 2000 точек мне неинтересно, а больше долго.
А для 30 точек без шума может метод барона Прони подойдет?
Ничего другого по вопросу в литературе не встречал.
Еще мне кажется для частот в начале спектра Фурье и в конце спектра Фурье предел Крамера-Рао недостижим с запасом.
И для Вашего случая особенно. А у Вас получилось близко?
GetSmart
Цитата(SPACUM @ Oct 18 2011, 15:49) *
А для 30 точек без шума может метод барона Прони подойдет?

Цитата
Барон де Прони(Гаспар Рише) был другом Наполеона и одним из основоположников метрической системы мер.
Имя барона Гаспара де Прони входит в список 72 имён на Эйфелевой башне. Он действительно разработал
свой метод спектрального анализа при котором вычислялись истинные амплитуды и частоты и не было
никакой спектральной утечки. Соответствующая программа на ФОРТРАНе приведена в книге
С.Л. Марпл-мл. "Цифровой спектральный анализ и его приложения" (гл. 11). Сигнал приближался
затухающими синусоидами. Этот метод применяется не везде из-за большого объема расчетов.
Однако результат восхитительный.

Никогда о нём не слышал. Будем почитать.

Цитата(SPACUM @ Oct 18 2011, 15:49) *
И для Вашего случая особенно. А у Вас получилось близко?

Скорее нет. Хотя в 32 точках всего 16 гармоник и я затрудняюсь правильно ответить.
SPACUM
Цитата(GetSmart @ Oct 18 2011, 14:58) *
Никогда о нём не слышал. Будем почитать.

http://www.padabum.com/d.php?id=3411
стр. 365.
GetSmart
Цитата(SPACUM @ Oct 18 2011, 16:01) *

Какой-то он избыточный. Мне нужен довольно простой результат. Даже не "оценивание". А просто спектр с определённой степенью точности и с промежуточными частотами. При разрешении 1/8 бина БПФ точность амплитуды уже будет не менее 95% (точно не измерял, но не ниже 90%). Мне нужна примерно такая точность амплитуды и частОты 1/8 целого. И всё. Если амплитуда синуса ниже шума, то вообще не важен результат. Я пока что планировал итеративно вычислять ДПФ дробных частот в районе пиков на БПФ до достижения нужной точности частоты. Но с БПФ плохо то, что он амплитуду (пики) выдаёт неверную для дробных частот. Придётся анализировать окресности всех бинов до 1/2 от самого высокого. Хорошо хоть точек мало.
_Anatoliy
Цитата(GetSmart @ Oct 18 2011, 12:21) *
Какой-то он избыточный. Мне нужен довольно простой результат. Даже не "оценивание". А просто спектр с определённой степенью точности и с промежуточными частотами. При разрешении 1/8 бина БПФ точность амплитуды уже будет не менее 95% (точно не измерял, но не ниже 90%). Мне нужна примерно такая точность амплитуды и частОты 1/8 целого. И всё. Если амплитуда синуса ниже шума, то вообще не важен результат. Я пока что планировал итеративно вычислять ДПФ дробных частот в районе пиков на БПФ до достижения нужной точности частоты. Но с БПФ плохо то, что он амплитуду (пики) выдаёт неверную для дробных частот. Придётся анализировать окресности всех бинов до 1/2 от самого высокого. Хорошо хоть точек мало.

А интерполировать по трём бинам не пробовали?Я когда-то игрался с этим,получались неплохие результаты но дальше модели не пошло.
GetSmart
Цитата(_Anatoliy @ Oct 18 2011, 16:49) *
А интерполировать по трём бинам не пробовали?Я когда-то игрался с этим,получались неплохие результаты но дальше модели не пошло.

Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность.
Да и результат точнее не будет, скорее наоборот. Т.к., если это делать по БПФ, то сразу вылезут грабли БПФ-а - несоответствие (а точнее занижение) амплитуды дробных частот. Что сразу может сделать пик на спектре принадлежащим шуму, а не моему сигналу. То есть, по трём точкам, значит одна из них - это пик на спектре БПФ. Но пик недостоверный. Если брать несколько пиков, то опять неясно какой в реале выше, т.к. они все недостоверные.
_Anatoliy
Цитата(GetSmart @ Oct 18 2011, 12:57) *
Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность.
Да и результат точнее не будет, скорее наоборот. Т.к., если это делать по БПФ, то сразу вылезут грабли БПФ-а - несоответствие (а точнее занижение) амплитуды дробных частот. Что сразу может сделать пик на спектре принадлежащим шуму, а не моему сигналу.

Ясно,с большим шумом я не пробовал.
ViKo
Так спектр и усреднить можно. По множеству реализаций.

GetSmart
Цитата(Alexey Lukin @ Oct 18 2011, 15:00) *
Если надо определять коэффициенты с "дробными частотами" (между бинами), то дополняйте сигнал нулями и берите обычное ДПФ.

Правильно ли я понимаю, что если мне надо найти все дробные бины с разрешением 1/8, то я должен к основному блоку данных (32 точки) добавить ещё 7 раз по 32 точки нулей и сделать БПФ по 256 точкам? Или там другой алгоритм добавления?

Сейчас пока моделирую, проверяю достоверность амплитуд пиков этого метода. Хоть результат спектра далёк от идеала, но в моём случае, когда априорно известно, что сигнал - простой синус, может быть этот метод и сработает. Хотя БПФ по в 8 раз большему блоку сам по себе накладен и возможно будет медленнее БПФ @ 32N + X раз ДПФ.
SPACUM
Цитата(GetSmart @ Oct 18 2011, 15:21) *
Какой-то он избыточный.

Ну на 30 точек получаем 10 амплитуд-частот-фаз и восстановленный сигнал проходит через все точки с любой точностью. Избыточность меньше, чем у БПФ(сигнал представлен меньшим числом гармоник). Если нужно 4 частоты - возьмите 12 точек. Вот с шумами дело темное. Тут Крамер-Рао не работает. Закон такой: Если сигнал состоит точно из N частот, то для их определения достаточно 3 * N точек выборки не обязательно через равные промежутки времени.
А математика тут противная и требует повышенной точности вычислений и, наверное, усреднения по нескольким выборкам. При моем числе точек и для микропроцессора даже не пытался.

Поставленная Вами задача - нужная и интересная и я ей тоже занимаюсь(в свободное от работы время и медленно). Пока действительно слишком долго считает.
Alexey Lukin
Цитата(GetSmart @ Oct 18 2011, 18:48) *
Правильно ли я понимаю, что если мне надо найти все дробные бины с разрешением 1/8, то я должен к основному блоку данных (32 точки) добавить ещё 7 раз по 32 точки нулей и сделать БПФ по 256 точкам?

Совершенно верно. Перед дополнением нулей сигнал можно умножить на весовое окно. Если шума очень много — то прямоугольное (оно оптимально для детектирования сигнала), если поменьше — то Ханна или другое аналогичное (они улучшают аккуратность оценки частоты при интерполяции по 3 точкам). Далее интерполирете частоту по трём максимальным точкам в спектре. Спектр перед этим лучше перевести в логарифмический масштаб амплитуд.

Если нужна более высокая точность — обратитесь к параметрическим методам. Задача нахождения частоты синусоиды в шуме кем только не решалась, вот даже вот в соседнем топике...
GetSmart
Цитата(Alexey Lukin @ Oct 18 2011, 20:41) *
Задача нахождения частоты синусоиды в шуме кем только не решалась, вот даже вот в соседнем топике...

У меня задача не совсем такая. Мне её сначала нужно "выявить" на фоне большого шума. Просто по БПФ её часто не видно. Это главная часть задачи. И точек мало.
Я уже посмотрел на результаты 8-кратного дополнения нулей. Вобщем неплохо. Хотя странно, что амплитуды немного (или заметно) неточны. Часто даже в большую сторону. И это без шума вообще. Но мне это некритично.

Цитата(Alexey Lukin @ Oct 18 2011, 20:41) *
Спектр перед этим лучше перевести в логарифмический масштаб амплитуд.

Зачем?

Upd.
Вобщем, проверил. БПФ от дополненного нулями блока сэмплов даёт результат лучше обычного БПФ для определения сразу же максимума на спектре и более точной (чем БПФ) частоты этого максимума. И это при больших шумах. Только подозреваю, что смысла в очень большом дополнении нулями нет. Этот же результат можно высчитать другим методом (тремя точками?). А во сколько раз дополнять нулями оптимально, надо бы разобраться. 2, 4 или 8.
SPACUM
Цитата(GetSmart @ Oct 18 2011, 20:34) *
У меня задача не совсем такая. Мне её сначала нужно "выявить" на фоне большого шума. Просто по БПФ её часто не видно. Это главная часть задачи. И точек мало.
Я уже посмотрел на результаты 8-кратного дополнения нулей. Вобщем неплохо. Хотя странно, что амплитуды немного (или заметно) неточны. Часто даже в большую сторону. И это без шума вообще. Но мне это некритично.


Зачем?

1.При SNR = 1 видно хорошо, значит Ваш сигнал меньше?
2.БПФ - практически идеальный обнаружитель синусоидального сигнала и если его не видно, значит число точек мало и ничего не поможет.
3.Рекомендуемые здесь методы основаны на том, что пик однозначно виден и ближайшие бины не скачут.
4.Вершина пика при окне Ханна мало похожа на параболу, а логарифмирование слегка приближает форму пика к ней. Я бы выбрал окно с более гладкой вершиной Наттала, Гаусса, Флаттоп и без логарифмирования.
5.А фильтр перед АЦП нельзя сделать лучше? Насколько входная частота меняется?
Alexey Lukin
Цитата(GetSmart @ Oct 18 2011, 20:34) *
Только подозреваю, что смысла в очень большом дополнении нулями нет. Этот же результат можно высчитать другим методом (тремя точками?). А во сколько раз дополнять нулями оптимально, надо бы разобраться. 2, 4 или 8.

Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией.

Цитата(SPACUM @ Oct 18 2011, 22:41) *
4.Вершина пика при окне Ханна мало похожа на параболу, а логарифмирование слегка приближает форму пика к ней. Я бы выбрал окно с более гладкой вершиной Наттала, Гаусса, Флаттоп и без логарифмирования.

Вот уж как раз flat-top окно на параболу совсем непохоже. Да и способность детектировать сигнал в шуме у этих окон слабая — они слишком узкие во временной области.

Цитата(GetSmart @ Oct 18 2011, 20:34) *
Зачем?

Так точнее получаются оценки частоты с помощью параболической интерполяции. Если не брать логарифма, то оценки будут смещены в сторону ближайшего бина ДПФ.
GetSmart
Цитата(SPACUM @ Oct 18 2011, 23:41) *
...

1. Re[i] := cos(p * i) + (Random-0.5)*3.0;

2. Это не так. Точнее не всегда так. Возьмите 32 точки, частоту например в 10.5 раз выше 1/Т. БПФ будет показывать недостоверную частоту и амплитуду максимума (хоть с шумом, хоть без). Далее сравните много раз картинки чистого БПФ и дополненного нулями в 8 раз. Даже по картикам виден лучший результат.

5. Зачём? Нет наложения спектров.

----------
Маленький вопрос не совсем по теме.
ДПФ/БПФ увеличивает С/Ш в 2 раза или в 1.41 при увеличении периода (длины [кол-ва точек] синуса) в 2 раза на фоне белого шума?

Цитата(Alexey Lukin @ Oct 19 2011, 00:02) *
Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией.

Это хорошо. Если бы мне нужна была одна точка и я знал где её искать, интерполировал бы только её и сэкономил время. Но чтобы найти все возможные видимо проще будет делать большой БПФ.
Upd.
Как раз, в продолжении этого алгоритма мне понадобится знать только 4 точки из всего спектра. Их-то и можно будет интерполировать после короткого БПФ. Причём с любой дробной частью частоты.
Alexey Lukin
Цитата(GetSmart @ Oct 18 2011, 23:24) *
ДПФ/БПФ увеличивает С/Ш в 2 раза или в 1.41 при увеличении периода (длины [кол-ва точек] синуса) в 2 раза на фоне белого шума?

С/Ш в каждом бине ДПФ улучшается на 3 дБ, т.к. мощность шума распределяется на 2 бина, а мощность синуса не изменяется.
SPACUM
Цитата(GetSmart @ Oct 18 2011, 23:24) *
5. Зачём? Нет наложения спектров.

----------

В смысле шума на входе. БПФ не идеальный фильтр, а шума очень много.
Хотя если частота может меняться в несколько раз, смысла нет.
fontp
QUOTE (Alexey Lukin @ Oct 18 2011, 23:02) *
Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией.
Вот уж как раз flat-top окно на параболу совсем непохоже. Да и способность детектировать сигнал в шуме у этих окон слабая — они слишком узкие во временной области.
Так точнее получаются оценки частоты с помощью параболической интерполяции. Если не брать логарифма, то оценки будут смещены в сторону ближайшего бина ДПФ.


Форма пика зависит от окна. Вообще-то при квадратичной интерполяции пика оценка получается смещенной, причем величина смещения зависит и от формы спектрального окна и от количества добавленых нулей. С увеличением кол-ва добавленых нулей систематическое смещение уменьшается. Доказано, что при наличие гарантировано одного пика оптимальная форма окна - прямоугольная (тогда форма спектра действительно синк). При наличие нескольких удалённых пиков предлагают обычно окно гауса с логарифмированием, для которого парабола реализуется даже чисто теоретически, правда с значительными потерями в энергетике. В общем, не все окна одинаково полезны... При низком snr смещение не играет, случайная ошибка по Крамеру_Рао забивает полюбому смещение (тогда берут столько нулей сколько данных, фактор 2), при высоком Snr нужно подавить смещение - нулей берут в 4- 8 -16 раз больше...чем больше тем лучше... и пробуют разные окна

Здесь всё описано, исследовано экспериментально
Критерии дизайна 1....
Критерии дизайна 2
Критерии Дизайна 3

там ещё 2 других документов с деталями исследования: как зависит от окна, от кол-ва нулей, как выходит на критерий Рао, как влияет паразитная модуляция.... Там на все вопросы отвечено, что касается квадратичной интерполяции спектра

QUOTE (GetSmart @ Oct 18 2011, 15:57) *
Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность.


Шум сам по себе не есть ограничение для метода. Шум подавляется в любой степени увеличением числа отсчетов и метод выходит на критерий Крамера-Рао.
Не в любой, конечно... В значительной. Число отсчетов ограничено стабильностью основной частоты, т.е. тем насколько синусоида сама идеальна. Для сильных шумов метод QIFFT исключителен, в том смысле что ВСЕ параметрические методы (из того же Марпла) уже не работают

У метода квадратичной интерполяции FFT (QIFFT) есть значительные возможности адаптации под задачу.
Существуют методы интерполяции спектра для ленивых, не требующие добавления нулей, я когда-то размещал их на форуме - Qinn и MacLeod, реализация в Матлабе, файл tst3. Они дают соизмеримую точность (выходят на Крамера_Рао при малом SNR), но в них нет такой гибкости в отношение смещения. Там
http://electronix.ru/forum/index.php?showt...43698&st=15
GetSmart
Цитата(fontp @ Oct 19 2011, 18:03) *
Шум сам по себе не есть ограничение для метода. Шум подавляется в любой степени увеличением числа отсчетов и метод выходит на критерий Крамера-Рао.
Не в любой, конечно... В значительной. Число отсчетов ограничено стабильностью основной частоты, т.е. тем насколько синусоида сама идеальна. Для сильных шумов метод QIFFT исключителен, в том смысле что ВСЕ параметрические методы (из того же Марпла) уже не работают

В очередной раз встречаю какие-то непонятки о кол-ве отсчётов.
Нет, шум не подавляется увеличением числа отсчётов. Даже если синус супер-пупер стабильный. Т.к. кол-во отсчётов ограничено длительностью (ограниченностью) самого сигнала во времени. И из того, что есть, хотелось бы получить максимум шумоустойчивости. Для безшумного сигнала высокая точность не нужна. Наоборот, допустимо её ухудшить, применив не самые точные измерения (например оценку частоты), главное чтобы этот же алгоритм давал лучшие результаты при максимуме шумов, по крайней мере среднестатистическую вероятность правильных результатов. На выходе алгоритма будет от одного до 6 битовый результат. И нужно чтобы опознание было с бОльшей вероятностью правильное. Всего-то.

А вот с интерполяцией FFT хотелось бы найти где-нить теоретическое обоснование того, что в основных бинах FFT содержится так же информация о дробных частотах, по которым их можно интерполировать. Не какой-то набор статистики результатов. Я пока хочу использовать этот метод, но опасаюсь, что может оказаться, что интерполированные значения не всегда достоверны. И например скачут от начальной фазы этой дробной частоты. С другой стороны, синк-интерполяция означает, что эти промежуточные значения "размазаны" по всему спектру FFT. А не по 2-4 соседним точкам.

Upd.
Хотя... Увеличить кол-во отсчётов я могу. Длительность сигнала при этом будет прежней. А вот частоту оцифровки завысить без проблем. В конце спектра при этом будет "пустота". То есть там даже шума не будет, т.к. он круто отфильтрован в аналоге. Но такое увеличение отсчётов "наоборот" даст ли что-то полезное? Вообще, давно задумывался об этом. Но пока не разобрался.

Не могу увеличивать период оцифровки, т.к. полезный сигнал ограничен, а за ним идёт не просто шум, а уже другой сигнал, и, если увеличивать период (а-ля квазидополнение нулевым сигналом), то ИМХО результат будет хуже чем с настоящим дополнением нулями короткого блока сэмплов, т.к. в сэмплах будет уже реальная синусоидальная помеха.

Upd2.
Хорошая вещь, эта интерполяция спектра. При 8-кратном дополнении нулей БПФ по 32*8 точкам выдаёт ошибку в определении амплитуды одной единственной некратной синусоиды без шума максимум в 3% при любой стартовой фазе синусоиды и любой некратной частоте (хотя проверял от 5 до 13 гармоники).

Upd3.
Проверил с шумом. В сигнале (7.57 гармоника)
Re[i] := cos(p * i + pp) + (Random-0.5)*3.0;
при простом БПФ вероятность ошибочно найденного пика 15%, при 8 кратном дополнении нулями ошибка только 4%.
pp это случайная начальная фаза. Из простого БПФ с N=32, пик находится по простому максимуму, без доп. алгоритмов.

В сигнале
Re[i] := cos(p * i + pp) + (Random-0.5)*4.0;
ошибки 36% vs 23%

В сигнале
Re[i] := cos(p * i + pp) + (Random-0.5)*5.0;
ошибки 52% vs 46%

Ну хоть для чего-то этот алгоритм (дополнения нулями) сгодился sm.gif
То есть при больших шумах, до какого-то порога даёт лучшие вероятности, да ещё и с одновременным определением некратной частоты.

Upd4.
Маленький минус всё-таки нашёлся. При не очень больших шумах. В сигнале (7.00 гармоника)
Re[i] := cos(p * i + pp) + (Random-0.5)*2.5;
БПФ работает немного лучше. В обоих случаях ошибок менее 1%. Но в БПФ их меньше в 2..3 раза.

Ещё гораздо больший минус. В сигнале (7.00 гармоника)
Re[i] := cos(p * i + pp) + (Random-0.5)*3.5;
ошибки 8% vs 15%. Но на 7.2 гармонике уже вероятности примерно равны около 14%.

И что меня совсем удивило, так это стабильная вероятность ошибки интерполированного пика при любых дробных/недробных частотах. А это свойство для того, где я хочу применить алгоритм просто ценнейшее, потому как нет разделения на удачные и неудачные частоты. Они все равноценны.
fontp
QUOTE (GetSmart @ Oct 19 2011, 19:48) *
В очередной раз встречаю какие-то непонятки о кол-ве отсчётов.
Нет, шум не подавляется увеличением числа отсчётов. Даже если синус супер-пупер стабильный. Т.к. кол-во отсчётов ограничено длительностью (ограниченностью) самого сигнала во времени. И из того, что есть, хотелось бы получить максимум шумоустойчивости. Для безшумного сигнала высокая точность не нужна. Наоборот, допустимо её ухудшить, применив не самые точные измерения (например оценку частоты), главное чтобы этот же алгоритм давал лучшие результаты при максимуме шумов, по крайней мере среднестатистическую вероятность правильных результатов. На выходе алгоритма будет от одного до 6 битовый результат. И нужно чтобы опознание было с бОльшей вероятностью правильное. Всего-то.


Для борьбы с шумами используется только один способ в обработке сигналов. Это накопление, более хитрое или менее хитрое - но это всегда накопление чего-то нужного нам против шума, который накопляется плохо. Я там хотел сказать, что если возможно используйте больше отсчетов за большее время. А если невозможно - увы, оценку улучшить невозможно, критерий Крамера-Рао даёт предельную оценку. Доказано, что это предельная точность оценки по максимуму правдоподобия

Понятно, что передискретизация сигнала ничего не даёт нового . Дискретизировать нужно в диапазоне поиска частоты по Найквисту.

QUOTE (GetSmart @ Oct 19 2011, 19:48) *
А вот с интерполяцией FFT хотелось бы найти где-нить теоретическое обоснование того, что в основных бинах FFT содержится так же информация о дробных частотах, по которым их можно интерполировать. Не какой-то набор статистики результатов. Я пока хочу использовать этот метод, но опасаюсь, что может оказаться, что интерполированные значения не всегда достоверны. И например скачут от начальной фазы этой дробной частоты. С другой стороны, синк-интерполяция означает, что эти промежуточные значения "размазаны" по всему спектру FFT. А не по 2-4 соседним точкам.


Не может ничего такого оказаться ни с дробной частотой ни с фазой. Метод известен давно, проверен и обоснован теоретически в работе Райфа и Бурстина.
Другое дело, что он держится на априорной информации что синусоида (причем комплексная) одна или в крайнем случае их много, но они расположены далеко друг от друга.
1. Если мы положили, что она одна оптимально использовать прямоугольное окно, чтобы не терять энергетику и выйти на Критерий Крамера-Рао с максимально достижимой точностью. Однако если в сигнале присутствует другая синусоида, даже далеко расположеная - то оценка "скакнёт". Метод не адекватен к этой ситуации, поскольку у синка большие хвосты, и нужно использовать окна-
2. Синусоид несколько и они расположены далеко друг от друга. Нужно использовать окна, чтобы изолировать их хвосты.
Тогда возможно произвести оценку этих частот с небольшими потерями энергетики. Но может оказаться, что и эта модель не адекватна и синусоид не просто >=2, а они расположены рядом -

3. Тогда ничего уже не поможет и всё будет скакать biggrin.gif Тогда предельно достижимая точность уже не определяется критерием Крамера-Рао для одной синусоиды, а определяется "естественным" разрешением 1/T, что обычно значительно хуже. Вернее, если уж быть точным, то критерий Крамера-Рао (максимального правдоподобия) для 2-х близко расположеных синусоид отличается от критерия для одной синусоиды и приближается к 1/T
GetSmart
Цитата(Alexey Lukin @ Oct 19 2011, 01:12) *
С/Ш в каждом бине ДПФ улучшается на 3 дБ, т.к. мощность шума распределяется на 2 бина, а мощность синуса не изменяется.

Сейчас проверил. Расширил длину сигнала в 4 раза. По идее, при уровне шума в 2 раза большем вероятности ошибочных опознаний должны быть аналогичные. Но пока у меня выходит улучшение вероятности в 1.8. При 16 кратной длине улучшение в 3.3 раза. То бишь стабильно в 1.8 раз на учетверение длины. Почему-то не в 2.

Вообще, я почему спросил. В голове крутились два варианта усреднения. Вычислять короткие БПФ, оставлять от них только амплитуду, которая будет зашумлённая. Складывая амплитуду двух независимых БПФ получится классическое усреднение зашумлённого сигнала с зависимостью С/Ш корень из кол-ва слагаемых. Но длинный БПФ/ДПФ должен работать "круче" этого, т.к. имеет не только амплитуду, но и фазу.
SPACUM
Цитата(GetSmart @ Oct 20 2011, 17:03) *
Почему-то не в 2.

Посмотрите на частотную зависимость погрешности. На многих методах на первом и последнем десятке частот Фурье погрешность выше, чем в середине диапазона. Может это влияет.
Alexey Lukin
Цитата(GetSmart @ Oct 20 2011, 17:03) *
Сейчас проверил. Расширил длину сигнала в 4 раза. По идее, при уровне шума в 2 раза большем вероятности ошибочных опознаний должны быть аналогичные. Но пока у меня выходит улучшение вероятности в 1.8. При 16 кратной длине улучшение в 3.3 раза. То бишь стабильно в 1.8 раз на учетверение длины. Почему-то не в 2.

Уж не знаю, почему у вас так — это только вы сами можете разобраться. Мой-то факт на любом спектроанализаторе видно, его не оспоришь.

Цитата(GetSmart @ Oct 20 2011, 17:03) *
Вообще, я почему спросил. В голове крутились два варианта усреднения. Вычислять короткие БПФ, оставлять от них только амплитуду, которая будет зашумлённая. Складывая амплитуду двух независимых БПФ получится классическое усреднение зашумлённого сигнала с зависимостью С/Ш корень из кол-ва слагаемых. Но длинный БПФ/ДПФ должен работать "круче" этого, т.к. имеет не только амплитуду, но и фазу.

И в том, и в другом случае уменьшение спектральной плотности шума получается одинаковое — корень из увеличения длины. Но при использовании более длинного ДПФ у вас будет лучше спектральное разрешение.
GetSmart
Цитата(SPACUM @ Oct 21 2011, 12:25) *
Посмотрите на частотную зависимость погрешности. На многих методах на первом и последнем десятке частот Фурье погрешность выше, чем в середине диапазона. Может это влияет.

Экспериментировал примерно на середине диапазона. Там зависимости от частоты вроде как нет.

Цитата(Alexey Lukin @ Oct 21 2011, 13:15) *
И в том, и в другом случае уменьшение спектральной плотности шума получается одинаковое — корень из увеличения длины. Но при использовании более длинного ДПФ у вас будет лучше спектральное разрешение.

Что полезного в разрешении, когда априорно известно, что синусоида одна? На мой взгляд, это значит, что при удвоении длины БПФ, бин с сигналом раздвоится и от него отделится другой бин с шумом. То есть за счёт этого произойдёт уменьшение шума в корень из 2. Но тогда комбинация этих двух предложений в цитате с союзом "но" как бы "притянута за уши" sm.gif
SPACUM
CRLB можно вычислить по этой формуле:
RMS(df) / Fs = .551 / ((RMS(сигнал) / RMS(шум)) * sqrt(N * (N^2 - 1))).
А Ваши результаты близко?
GetSmart
Цитата(SPACUM @ Oct 21 2011, 18:11) *
CRLB можно вычислить по этой формуле:
RMS(df) / Fs = .551 / ((RMS(сигнал) / RMS(шум)) * sqrt(N * (N^2 - 1))).
А Ваши результаты близко?

А не подскажете RMS(сигнал) / RMS(шум) из представленной мной ранее формулы, в которой рандом умножен на 6 ?
Кроме того, я полагаю, N (число выборок) я должен брать до 8-кратного увеличения нулями?
Ну и RMS(df) прямо я не могу оценить. У меня ошибкой считается отклонение пика ДПФ более чем на на 3/8 гармоники. То бишь на 1/2 гармоники.
Хотя, могу в проге сделать правильный подсчёт этого значения.
SPACUM
Цитата(GetSmart @ Oct 21 2011, 17:53) *
А не подскажете RMS(сигнал) / RMS(шум) из представленной мной ранее формулы, в которой рандом умножен на 6 ?
Кроме того, я полагаю, N (число выборок) я должен брать до 8-кратного увеличения нулями?
Ну и RMS(df) прямо я не могу оценить. У меня ошибкой считается отклонение пика ДПФ более чем на на 3/8 гармоники. То бишь на 1/2 гармоники.
Хотя, могу в проге сделать правильный подсчёт этого значения.

Это корень из основополагающей формулы. RMS - это понятно, N - число использованных результатов АЦП, нули - это метод и здесь не причем.
По моему опыту в начале и конце спектра все намного хуже.
Сама формула для нормального распределения шума, у Вас оно равномерное, для точности я бы просто посчитал RMS.
Формула взята из:(http://www.google.ru/url?sa=t&source=web&cd=2&sqi=2&ved=0CCQQFjAB&url=http%3A%2F%2Fwww.ws.binghamton.edu%2Ffowler%2Ffowler%2520personal%2520page%2FEE522_files%2FEECE%2520522%2520Notes_08%2520Ch_3%2520CRLB%2520Examples%2520in%2520Book.pdf&rct=j&q=CRLB%20frequency%20estimation&ei=lP6KTpenFtC1hAfRy4TcAw&usg=AFQjCNGznlK-qkbdyIdnHjDpC8hcoPmi0Q&cad=rjt).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.