|
БРФ. Что считать амплитудой гармоники? |
|
|
|
Jun 25 2008, 09:52
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
В результате преобразования Фурье(или быстрого преобразования Фурье) помимо гармоник получается еще и некоторые составляющие на соседних частотах (как я понял из-за того, что в окно влезает не целое число периодов..) Вопрос- что же считать амплитудой гармоники? Амплитуду ее самой? Или как-то учитывать эти самые "боковые лепестки"?
Извиняюсь, дрогнула рука%) Все-таки БПФ%)
|
|
|
|
|
Jun 25 2008, 10:29
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 28-01-08
Пользователь №: 34 498

|
Цитата(radiohobbyt @ Jun 25 2008, 13:52)  В результате преобразования Фурье(или быстрого преобразования Фурье) помимо гармоник получается еще и некоторые составляющие на соседних частотах (как я понял из-за того, что в окно влезает не целое число периодов..) Вопрос- что же считать амплитудой гармоники? Амплитуду ее самой? Или как-то учитывать эти самые "боковые лепестки"?
Извиняюсь, дрогнула рука%) Все-таки БПФ%) В коде ошибка...Приведи пример программы!
|
|
|
|
|
Jun 25 2008, 11:07
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Ну как что? Для одиночной экспоненты эксперты проводят обычно интерполяцию. Называют это ML-extension В простейшем случае интерполяция делается так - дополняем нулями в два-три-четыре раза и считаем спектр мощности (дополнение нулями это просто способ интерполяции, можно было бы наоборот посчитать без нулей, а потом проинтерполировать) В окрестности максимума строим параболу по трём точкам (надо бы синк но не умеем, да и не очень-то надо, если нулей добавлено много). Максимум параболы - это энергия волны, а аргумент максимума - её частота. Амплитуда - это типа корень из энергии Есть и более сложные формулы, без нулей. Более быстрые, но не более точные Вот модельки в матлабе http://home.comcast.net/~kootsoop/EricJ2/index.htmА если спектр непрерывный, то вопрос не очень имеет смысл - это всё равно, что произвести дискретизацию и спросить - а что было между отсчётами?. Всяко бывает ;-) Во всяком случае отсчёты БПФ это результат свёртки непрерывного спектра с некоторым ядром и нужно смотреть, что можно извлечь оттуда
|
|
|
|
|
Jun 26 2008, 11:10
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
Цитата(RadioJunior @ Jun 25 2008, 14:29)  В коде ошибка...Приведи пример программы! Ну нет ошибки- просто попробуй сам сделать БПФ любого реального сигнала(или не быстрое)%) Откуда появились различные окна(Хэмминга, Наттола)? Они то и есть результат борьбы с этим явлением. fontp, спасибо за рассказ. только не понял, почему надо считать спектр мощности, а не просто спектр сигнала?
|
|
|
|
|
Jun 26 2008, 14:29
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(radiohobbyt @ Jun 26 2008, 15:10)  Ну нет ошибки- просто попробуй сам сделать БПФ любого реального сигнала(или не быстрое)%) Откуда появились различные окна(Хэмминга, Наттола)? Они то и есть результат борьбы с этим явлением. В отсутствии окна там синк сидит от прямоугольного окна. Окно сглаживает сильнее. При дискретизации получается более достоверный результат для более смазанного спектра, без биений. Но в любом случае сохраняется зависимость от того где находится частота относительно бина Цитата(radiohobbyt @ Jun 26 2008, 15:10)  fontp, спасибо за рассказ. только не понял, почему надо считать спектр мощности, а не просто спектр сигнала? "Мне нравится слово" (с) И.Кормильцев Считайте что спектр ;-)
|
|
|
|
|
Jun 27 2008, 08:53
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
Цитата(fontp @ Jun 26 2008, 18:29)  "Мне нравится слово" (с) И.Кормильцев Считайте что спектр ;-) %) ну слово, так слово. просто у меня есть отчеты напряжения, а для мощности надо брать фурье от квадратов этих отчетов(а потом брать корень из результата). отсюда и возник вопрос. %)
|
|
|
|
|
Jun 27 2008, 09:05
|
Гуру
     
Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290

|
Цитата(radiohobbyt @ Jun 27 2008, 14:53)  %) ну слово, так слово. просто у меня есть отчеты напряжения, а для мощности надо брать фурье от квадратов этих отчетов(а потом брать корень из результата). отсюда и возник вопрос. %) а для мощности, если использовать спектр, надо перемножить его на комплексно- сопряженный и, проинтегрировать его по частоте. Или, если сигнал периодический, то просуммировать квадраты гармоник и взять корень от этой суммы. Это называется теорема Парсиваля. А можно брать просто квадраты отсчетов, интегрируя по периоду и затем вычисляя кв. корень- т.е. вычисляя скалярное произведение непосредственно.
--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
|
|
|
|
|
Jun 27 2008, 09:49
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
Цитата(Designer56 @ Jun 27 2008, 13:05)  а для мощности, если использовать спектр, надо перемножить его на комплексно- сопряженный и, проинтегрировать его по частоте. Или, если сигнал периодический, то просуммировать квадраты гармоник и взять корень от этой суммы. Это называется теорема Парсиваля. А можно брать просто квадраты отсчетов, интегрируя по периоду и затем вычисляя кв. корень- т.е. вычисляя скалярное произведение непосредственно. вопрос стоял не в том, "как?" а в том "почему?". то есть почему если я спрашивал про спектр сигнала, от вет я получил про спектр мощности. не было ли в этом какого-то "тайного знания"? %) Хотя и в сказанном заложен большой смысл- спасибо%)
Сообщение отредактировал radiohobbyt - Jun 27 2008, 10:02
|
|
|
|
|
Jun 27 2008, 10:28
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 28-01-08
Пользователь №: 34 498

|
Цитата(radiohobbyt @ Jun 26 2008, 15:10)  Ну нет ошибки- просто попробуй сам сделать БПФ любого реального сигнала(или не быстрое)%) Откуда появились различные окна(Хэмминга, Наттола)? Они то и есть результат борьбы с этим явлением. Смоделируйте в 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 - Jun 27 2008, 10:29
|
|
|
|
|
Jun 27 2008, 10:31
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(radiohobbyt @ Jun 27 2008, 13:49)  вопрос стоял не в том, "как?" а в том "почему?". то есть почему если я спрашивал про спектр сигнала, от вет я получил про спектр мощности. не было ли в этом какого-то "тайного знания"? %) Хотя и в сказанном заложен большой смысл- спасибо%) На страничке по ссылке, которую я привёл интерполяцию ведут непосредственно по комплексному спектру. Но это знание доступное только посвященным, это трудно понять...  Я его сам плохо понимаю, не то что объяснить на форуме Cамый простой, доступный и понятный даже младенцу способ - это взять спект мощности (он действительный) и произвести его интерполяцию. Причём если работать через дополнение нулями - то и результаты можно получить более точные, чем по ссылке у экспертов. У экспертов только побыстрее Цитата(RadioJunior @ Jun 27 2008, 14:28)  Смоделируйте в MatLab'е:
ПОКАЖИТЕ МНЕ, ГДЕ ВЫ ВИДИТЕ ЛИШНИЕ ГАРМОНИКИ???? Эм-м... Так не пойдёт. Подставляйте Np=10.5 и Np=10.3 Там колоколольчик весь, синк При целом числе периодов отсчёты спектра находятся в нулях синка
|
|
|
|
|
Jun 27 2008, 12:36
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр? Цитата(fontp @ Jun 27 2008, 14:31)  Эм-м... Так не пойдёт. Подставляйте Np=10.5 и Np=10.3 Там колоколольчик весь, синк При целом числе периодов отсчёты спектра находятся в нулях синка вопрос как раз в том, что дело имеет быть как раз с аппаратом, то есть всякие красивые соотношения выполняются с трудом и все равно не до конца(В МОЁМ КОНКРЕТНОМ СЛУЧАЕ)
|
|
|
|
|
Jun 27 2008, 12:48
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(radiohobbyt @ Jun 27 2008, 16:36)  Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр? вопрос как раз в том, что дело имеет быть как раз с аппаратом, то есть всякие красивые соотношения выполняются с трудом и все равно не до конца(В МОЁМ КОНКРЕТНОМ СЛУЧАЕ) Вы чем недовольны? "Амплитудный" спектр - это как раз и есть корень квадратный из спектра мощности. Даже если сигнал действительный, в любом случае определение "настоящей" амплитуды делается примерно так как я сказал выше и по ссылке (вместе с определением частоты). Дополнительно делается фильтрация и преобразование Гильберта для действительной синусоиды. Это исчерпывающее решение задачи, я когда-то загружал сюда статью насчёт оценки параметров действительной синусоиды на теоретическом достижимом пределе Если вам просто нужен коэффициент гармоник - считайте энергию в окрестности своей частоты (складывая бины) и энергию кратной гармоники (складывая бины). На спектре мощности энергию в полосе частот (куда она размазалась временным окном) можно получить интегрированием (чего нельзя сказать про ваш "амплитудный спектр" - энергии можно складывать, но не амплитуды). Если частота известна, то Вам вообще весь спектр и БПФ не нужно. Берите один отсчёт на нужной частоте, причём, интегрируйте по времени кратно периоду, аналогично для кратной гармоники. Sum(S(k)*exp(iwk)) Про "красивые соотношения" я отвечал вообще не Вам, а человеку, который утверждал, что у него всегда в спектре синусоиды отдельная "палка", спектр не размазывается и даже привёл программу GoodBye!
|
|
|
|
|
Jun 27 2008, 23:17
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(radiohobbyt @ Jun 27 2008, 15:36)  Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного) Хахаха(голосом робота Вертера). Да сам базис Фурье комплексный, а само определение гармоник дано только через базис Фурье, потому и не прокатит, например, косинусное преобразование. Цитата(radiohobbyt @ Jun 27 2008, 15:36)  , надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения
(для fontp- я понимаю, что говорю))). как раз, думаю, не очень  ... Цитата(radiohobbyt @ Jun 27 2008, 15:36)  мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) А у него может быть только одно значение - это модуль(абсолютна длинна) вектора разложенного по определенному базису и выраженный в единицах этого же разложения. Цитата(radiohobbyt @ Jun 27 2008, 15:36)  и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр? А при том... При том, что по-определению DFT(FFT) на выходе дает комплексную функцию. Т.е. Ваша искомая амплитуда разложена по 2-м компонетам (cos(w*t) + j*sin(w*t)). И "степень разложенности" как раз зависит от фазы. Чтобы ее(зависимость) убрать и находят модуль вектора спроецированного на базис из гармонических функций. И делается это не иначе как sqrt(I*I+Q*Q) для каждой пары отсчетов; Цитата(radiohobbyt @ Jun 27 2008, 15:36)  вопрос как раз в том, что дело имеет быть как раз с аппаратом, то есть всякие красивые соотношения выполняются с трудом и все равно не до конца(В МОЁМ КОНКРЕТНОМ СЛУЧАЕ) ну ничто не совершенно, это понятно, но Вы пытаетесь обойти Эвклидову геометрию
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Jun 29 2008, 17:31
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(RadioJunior @ Jun 27 2008, 14:28)  Смоделируйте в MatLab'е: .......................................... ПОКАЖИТЕ МНЕ, ГДЕ ВЫ ВИДИТЕ ЛИШНИЕ ГАРМОНИКИ???? Не кричите, милейший. Подобную чушь можете моделировать сами, вплоть до посинения. Только речь здесь идёт об оценке спектра для окна, в которое укладывается нецелое число периодов сигнала. Цитата(radiohobbyt @ Jun 27 2008, 16:36)  Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр? Спектр мощности может оказаться удобнее. Потому, что к-т гармоник определяется именно суммарной мощностью гармоник, отнесённой к мощности основного тона. Потом нужно взять только корень. Цитата(radiohobbyt @ Jun 27 2008, 12:53)  %) ну слово, так слово. просто у меня есть отчеты напряжения, а для мощности надо брать фурье от квадратов этих отчетов(а потом брать корень из результата). отсюда и возник вопрос. Не правильно. Для того, чтобы получить спектр мощности, нужно брать Фурье от АКФ исходного сигнала. Или находить квадрат абсолютного значения оценки амплитудного спектра. Цитата(radiohobbyt @ Jun 27 2008, 16:36)  Еще раз сформулирую задачу(просто я эт не делал, извините): есть АЦП(сигнал-реальный%), ничего комплексного), надо найти например коэфффициент искажения синусоидальности(а там стоят как раз действительные значения гармоник(естественно можно и амплитудные значения (для fontp- я понимаю, что говорю))). мне нужен только амплитудный спектр(тут слово "амплитудный"- в другом значении%)) и абсолютно не важен фазовый. Так вот вопрос- а при чем тут мощность? даже ее спектр? Вы, вероятно, думаете, что если сигнал вещественный, то и результат ПФ будет также вещественным? Спектр мощности у Вас получится как результат промежуточного преобразования при вычислении модуля спектральной функции, т.е., вполне естественным путём.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|