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

БРФ. Что считать амплитудой гармоники?

В результате преобразования Фурье(или быстрого преобразования Фурье) помимо гармоник получается еще и некоторые составляющие на соседних частотах (как я понял из-за того, что в окно влезает не целое число периодов..) Вопрос- что же считать амплитудой гармоники? Амплитуду ее самой? Или как-то учитывать эти самые "боковые лепестки"?

 

Извиняюсь, дрогнула рука%) Все-таки БПФ%)

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


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

В результате преобразования Фурье(или быстрого преобразования Фурье) помимо гармоник получается еще и некоторые составляющие на соседних частотах (как я понял из-за того, что в окно влезает не целое число периодов..) Вопрос- что же считать амплитудой гармоники? Амплитуду ее самой? Или как-то учитывать эти самые "боковые лепестки"?

 

Извиняюсь, дрогнула рука%) Все-таки БПФ%)

 

В коде ошибка...Приведи пример программы!

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


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

Ну как что?

Для одиночной экспоненты эксперты проводят обычно интерполяцию. Называют это ML-extension

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

В окрестности максимума строим параболу по трём точкам (надо бы синк но не умеем, да и не очень-то надо, если нулей добавлено много). Максимум параболы - это энергия волны, а аргумент максимума - её частота. Амплитуда - это типа корень из энергии

 

Есть и более сложные формулы, без нулей. Более быстрые, но не более точные

Вот модельки в матлабе

http://home.comcast.net/~kootsoop/EricJ2/index.htm

 

 

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

Во всяком случае отсчёты БПФ это результат свёртки непрерывного спектра с некоторым ядром и нужно смотреть, что можно извлечь оттуда

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


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

В коде ошибка...Приведи пример программы!

Ну нет ошибки- просто попробуй сам сделать БПФ любого реального сигнала(или не быстрое)%)

Откуда появились различные окна(Хэмминга, Наттола)? Они то и есть результат борьбы с этим явлением.

 

fontp, спасибо за рассказ. только не понял, почему надо считать спектр мощности, а не просто спектр сигнала?

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


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

Ну нет ошибки- просто попробуй сам сделать БПФ любого реального сигнала(или не быстрое)%)

Откуда появились различные окна(Хэмминга, Наттола)? Они то и есть результат борьбы с этим явлением.

 

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

 

fontp, спасибо за рассказ. только не понял, почему надо считать спектр мощности, а не просто спектр сигнала?

 

"Мне нравится слово" (с) И.Кормильцев

Считайте что спектр ;-)

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


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

"Мне нравится слово" (с) И.Кормильцев

Считайте что спектр ;-)

%) ну слово, так слово. просто у меня есть отчеты напряжения, а для мощности надо брать фурье от квадратов этих отчетов(а потом брать корень из результата). отсюда и возник вопрос. %)

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


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

%) ну слово, так слово. просто у меня есть отчеты напряжения, а для мощности надо брать фурье от квадратов этих отчетов(а потом брать корень из результата). отсюда и возник вопрос. %)

а для мощности, если использовать спектр, надо перемножить его на комплексно- сопряженный и, проинтегрировать его по частоте. Или, если сигнал периодический, то просуммировать квадраты гармоник и взять корень от этой суммы. Это называется теорема Парсиваля.

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

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


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

а для мощности, если использовать спектр, надо перемножить его на комплексно- сопряженный и, проинтегрировать его по частоте. Или, если сигнал периодический, то просуммировать квадраты гармоник и взять корень от этой суммы. Это называется теорема Парсиваля.

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

вопрос стоял не в том, "как?" а в том "почему?". то есть почему если я спрашивал про спектр сигнала, от вет я получил про спектр мощности. не было ли в этом какого-то "тайного знания"? %)

Хотя и в сказанном заложен большой смысл- спасибо%)

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

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


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

Ну нет ошибки- просто попробуй сам сделать БПФ любого реального сигнала(или не быстрое)%)

Откуда появились различные окна(Хэмминга, Наттола)? Они то и есть результат борьбы с этим явлением.

 

Смоделируйте в MatLab'е:

 

%------------------------

%------------------------

% ПАРАМЕТРЫ СИГНАЛА:

Np=10; % число периодов синусоиды

f0=1; % частота синусоиды, [Гц]

T0=1/f0; % период синусоиды, [с]

 

%------------------------

%------------------------

% ПАРАМЕТРЫ МОДЕЛИ:

fs=11*f0; % частота дискретизации

t=0:1/fs:Np*T0-1/fs; % временная ось (ОБРАТИТЕ ВНИМАНИЕ на слагаемое 1/fs)

s=sin(2*pi*f0*t); % синусоида

%------------------------

%------------------------

% АМПЛИТУДНЫЙ СПЕКТР:

Sfft=abs(fft(s));

stem(Sfft,'.'); grid; % ПОКАЖИТЕ МНЕ, ГДЕ ВЫ ВИДИТЕ ЛИШНИЕ ГАРМОНИКИ????

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

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


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

вопрос стоял не в том, "как?" а в том "почему?". то есть почему если я спрашивал про спектр сигнала, от вет я получил про спектр мощности. не было ли в этом какого-то "тайного знания"? %)

Хотя и в сказанном заложен большой смысл- спасибо%)

 

На страничке по ссылке, которую я привёл интерполяцию ведут непосредственно по комплексному спектру. Но это знание доступное только посвященным, это трудно понять... :) Я его сам плохо понимаю, не то что объяснить на форуме

 

Cамый простой, доступный и понятный даже младенцу способ - это взять спект мощности (он действительный) и произвести его интерполяцию. Причём если работать через дополнение нулями - то и результаты можно получить более точные, чем по ссылке у экспертов. У экспертов только побыстрее

 

Смоделируйте в MatLab'е:

 

ПОКАЖИТЕ МНЕ, ГДЕ ВЫ ВИДИТЕ ЛИШНИЕ ГАРМОНИКИ????

 

Эм-м... Так не пойдёт. Подставляйте Np=10.5 и Np=10.3

Там колоколольчик весь, синк

При целом числе периодов отсчёты спектра находятся в нулях синка

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


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

Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр?

 

Эм-м... Так не пойдёт. Подставляйте Np=10.5 и Np=10.3

Там колоколольчик весь, синк

При целом числе периодов отсчёты спектра находятся в нулях синка

вопрос как раз в том, что дело имеет быть как раз с аппаратом, то есть всякие красивые соотношения выполняются с трудом и все равно не до конца(В МОЁМ КОНКРЕТНОМ СЛУЧАЕ)

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


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

Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр?

вопрос как раз в том, что дело имеет быть как раз с аппаратом, то есть всякие красивые соотношения выполняются с трудом и все равно не до конца(В МОЁМ КОНКРЕТНОМ СЛУЧАЕ)

 

Вы чем недовольны? "Амплитудный" спектр - это как раз и есть корень квадратный из спектра мощности. Даже если сигнал действительный, в любом случае определение "настоящей" амплитуды делается примерно так как я сказал выше и по ссылке (вместе с определением частоты). Дополнительно делается фильтрация и преобразование Гильберта для действительной синусоиды. Это исчерпывающее решение задачи, я когда-то загружал сюда статью насчёт оценки параметров действительной синусоиды на теоретическом достижимом пределе

 

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

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

Sum(S(k)*exp(iwk))

 

Про "красивые соотношения" я отвечал вообще не Вам, а человеку, который утверждал, что у него всегда в спектре синусоиды отдельная "палка", спектр не размазывается и даже привёл программу

 

GoodBye!

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


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

Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного)

Хахаха(голосом робота Вертера). Да сам базис Фурье комплексный, а само определение гармоник дано только через базис Фурье, потому и не прокатит, например, косинусное преобразование.

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

 

(для fontp- я понимаю, что говорю))).

как раз, думаю, не очень :biggrin: ...

 

мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%))

А у него может быть только одно значение - это модуль(абсолютна длинна) вектора разложенного по определенному базису и выраженный в единицах этого же разложения.

и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр?

А при том... При том, что по-определению DFT(FFT) на выходе дает комплексную функцию. Т.е. Ваша искомая амплитуда разложена по 2-м компонетам (cos(w*t) + j*sin(w*t)). И "степень разложенности" как раз зависит от фазы. Чтобы ее(зависимость) убрать и находят модуль вектора спроецированного на базис из гармонических функций. И делается это не иначе как sqrt(I*I+Q*Q) для каждой пары отсчетов;

 

вопрос как раз в том, что дело имеет быть как раз с аппаратом, то есть всякие красивые соотношения выполняются с трудом и все равно не до конца(В МОЁМ КОНКРЕТНОМ СЛУЧАЕ)

ну ничто не совершенно, это понятно, но Вы пытаетесь обойти Эвклидову геометрию

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


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

вопрос стоял не в том, "как?" а в том "почему?".

Ну почитайте поподробнее... излагать все здесь в мелочах ну очень громоздко...

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


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

Смоделируйте в MatLab'е:

..........................................

ПОКАЖИТЕ МНЕ, ГДЕ ВЫ ВИДИТЕ ЛИШНИЕ ГАРМОНИКИ????

Не кричите, милейший.

Подобную чушь можете моделировать сами, вплоть до посинения. Только речь здесь идёт об оценке спектра для окна, в которое укладывается нецелое число периодов сигнала. ;)

 

Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр?
Спектр мощности может оказаться удобнее. Потому, что к-т гармоник определяется именно суммарной мощностью гармоник, отнесённой к мощности основного тона. Потом нужно взять только корень.

 

%) ну слово, так слово. просто у меня есть отчеты напряжения, а для мощности надо брать фурье от квадратов этих отчетов(а потом брать корень из результата). отсюда и возник вопрос.
Не правильно.

Для того, чтобы получить спектр мощности, нужно брать Фурье от АКФ исходного сигнала. Или находить квадрат абсолютного значения оценки амплитудного спектра.

 

Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр?
Вы, вероятно, думаете, что если сигнал вещественный, то и результат ПФ будет также вещественным? :biggrin:

Спектр мощности у Вас получится как результат промежуточного преобразования при вычислении модуля спектральной функции, т.е., вполне естественным путём. :)

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


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

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

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

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

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

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

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

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

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

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