Спектральная плотность

lev-rechin

о терминах: http://en.wikipedia.org/wiki/Spectral_density#Power_spectral...
можно ли посчитать мощность/энергию сигнала в полосе частот не считая коэффециенты для каждой частоты?

Jeton89

Вопрос не очень понятен. Коэффициенты - это амплитуды спектральных компонент? И что нужно посчитать, мощность\энергию или их плотность?
В любом случае, если спектр аналитически описывается некой функцией, то его энергетические характеристики тоже можно посчитать аналитически, зная только параметры этой функции. Например, в случае гауссова спектра, достаточно будет знать только максимальную амплитуду спектра и его ширину, чтобы все посчитать. Хотя, в этом случае, амплитуды компонент и так известны.

lev-rechin

> Коэффициенты - это амплитуды спектральных компонент?
да, это амплитуды [math]$P(f) = \sqrt {a^2(f)+b^2(f)}$[/math], где a(f) и b(f) коэффициенты преобразования фурье с частотой f
> И что нужно посчитать, мощность\энергию или их плотность?
нужно посчитать мощность полосы определяемую как [math]$\sum_{f=f_1}^{f_2} P(f)$[/math] , или что тоже самое: [math]$\sum_{f=f_1}^{f_2} {|\sum_{k=1}^{N} {x_k e^{2 \pi i f \frac {k}{N}}}|}$[/math], где [math]$x_i$[/math] измеряется
желательно считать "не в лоб", т.е. может есть какая-то теорема о том, что это чему-то равно, ну или например о том, что двойную сумму можно раскрыть предварительно что-то сделав с данными (как-то выравнять фазы например, что у синусов коэффициенты окажутся = 0)

lev-rechin

мб это важно: исходные данные - голубой шум

Jeton89

Все равно не понимаю чего ты хочешь. Расскажи постановку задачи.
Чем тебя в лоб не устраивает считать? Долго? Есть быстрое преобразование Фурье чтобы побыстрее считать.

lev-rechin

> Все равно не понимаю чего ты хочешь.
всмысле? цифру посчитать хочу, быстро и без гемора
> Есть быстрое преобразование Фурье чтобы побыстрее считать.
даже быстрое долго

Jeton89

Чего дано? Спектр, сигнал во времени?
Какая задача? Посчитать мощность аналитически, численно? (видимо численно)
Википедия говорит, что голубой шум это вид сигнала, чья спектральная плотность увеличивается с ростом частоты.

Мощность, это площадь под кривой в заданной полосе. Если закон увеличения частоты известен, то мощность можно оценить через площадь трапеции.

lev-rechin

дан сигнал во времени, спектр не дан

lev-rechin

> Мощность, это площадь под кривой в заданной полосе. Если закон увеличения частоты известен, то мощность можно оценить через площадь трапеции.
спасибо, кэп, а как посчитать угол наклона ачх если спектр не дан?

Jeton89

Ну, то есть, у тебя задача быстро посчитать спектр, зная сигнал?
Тогда ничего лучше БПФ не знаю.

lev-rechin

спектр не нужен, нужно только относительно небольшую полоску, да и то не саму ачх, а её сумму. поскольку полоска небольшая - то бпф никакого бонуса не даёт

Jeton89

Не вычисляя спектра можно посчитать только суммарную спектральную мощность: Теорема Парсеваля.

lev-rechin

ладно давай так, положим у нас есть фильтр который давит всё кроме полосы f1...f2, пропустим исходные данные через этот фильтр, а к фильтрованному сигналу применим теорему парсеваля => получим мощность полосы - правильно?
если да, то есть где-то оно же, только "готовое"?

Jeton89

Да, правильно.
"Готового" нет. Получить "готовое" можно применив операцию фильтрации. Правда для этого тебе понадобится узнать спектр.

lev-rechin

> Получить "готовое" можно применив операцию фильтрации. Правда для этого тебе понадобится узнать спектр.
не понимаю, зачем узнавать спектр для фильтрации?

Jeton89

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

scorobei42ru

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

lev-rechin

я уточню, но кмк делается это на ура разностным фильтром без рассчётов спектра: достаточно сделать рациональное приближение для передаточной функции полосного фильтра, дальше http://en.wikipedia.org/wiki/Digital_filter#Difference_equat... это собственно и будут коэффициенты разностного фильтра

scorobei42ru

а как ты собираешься быстро делать свертку, не переводя в частотную область?

lev-rechin

свертку чего с чем? сначала из сигнала выфильтровывается только интересующая полоса, потом по теореме парсеваля считается полная мощность того, что получилось после фильтрации, не?

Jeton89

Фильтрация во временной области - это свертка передаточной функции фильтра с сигналом.

lev-rechin

смотри, если я сделаю вот такое преобразование, например: [math]$y_n = 0.25 y_{n-1} + 0.75 x_n$[/math], это просто к примеру цифры, то это будет соответствовать передаточной функции [math]$H(z) = \frac{0.75}{z-0.25}$[/math]
т.е. это получится что-то типа фильтра низких частот (с цифрами мб где-то ошибся)
upd: аналогично можно сделать преобразованием вида [math]$y_n = \sum a_k y_{n-k} +\sum b_k x_{n-k}$[/math] которое будет работать как фильтр полосы частот

scorobei42ru

но ведь фильтрация во временной области и есть свертка сигнала с коэффициентами фильтра.

lev-rechin

коэффициентов в фильтре порядка на 2 меньше чем частот в полосе, уж свернётся как-нибудь ... или ты о другом?

scorobei42ru

насколько я понимаю, тебе проще всего сконструировать приемлемый фильтр и на основании количества ненулевых коэффициентов в нем и длины сигнала оценить, быстрее ли будет делать свертку напрямую или с помощью бпф
Оставить комментарий
Имя или ник:
Комментарий: