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

Выделение главной гармоники.

Надо выделить главную гармонику. В интернете мало информации (или я не правильно ищу). Как я понял надо в каждом окне (как в спектрограмме) искать максимальную частоту. Можете подсказать, где прочитать про это, или рассказать алгоритм выделения.

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


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

13 минут назад, matro сказал:

Надо выделить главную гармонику. В интернете мало информации (или я не правильно ищу). Как я понял надо в каждом окне (как в спектрограмме) искать максимальную частоту. Можете подсказать, где прочитать про это, или рассказать алгоритм выделения.

Строите амплитудный спектр сигнала, перебираете составляющие спектра и ищете самую большую по амплитуде.

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


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

2 minutes ago, Lmx2315 said:

Строите амплитудный спектр сигнала, перебираете составляющие спектра и ищете самую большую из них.

Можете, пожалуйста, немного поподробнее рассказать.

Каким образом выделить все оставшиеся гармоники? Надо рассматривать локальные максимумы?

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


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

17 минут назад, matro сказал:

Можете, пожалуйста, немного поподробнее рассказать.

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

2.Умножаете записанный блок отсчётов на выбранное вам окно (от типа окна зависит разрешение по частоте, нужно выбрать окно через компромисс между шириной основного лепестка и динамический диапазоном до боковых лепестков)

3.Делаете БПФ 

4.Строите амплитудный спектр через вычисление модуля комплексных отсчётов полученных после БПФ  и записываете полученный массив гармоник в память.

5.Перебираете массив гармоник в поиске наибольшей гармоники из всех.

 

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


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

19 minutes ago, Lmx2315 said:

Строите амплитудный спектр сигнала, перебираете составляющие спектра и ищете самую большую по амплитуде.

Извините что так много вопросов. Каким образом выделяются остальные гармоники? Надо рассматривать локальные максимумы?

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


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

1 минуту назад, matro сказал:

Извините что так много вопросов. Каким образом выделяются остальные гармоники? Надо рассматривать локальные максимумы?

Я описал способ как найти гармонику с максимальной амплитудой, по моей логике  - гармоника с максимальной амплитудой и есть главная гармоника.

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


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

1 minute ago, Lmx2315 said:

Я описал способ как найти гармонику с максимальной амплитудой, по моей логике  - гармоника с максимальной амплитудой и есть главная гармоника.

Спасибо.

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


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

8 minutes ago, matro said:

Надо рассматривать локальные максимумы?

Глобальная. Только перед БПФ нужно вычесть постоянную составляющую: считаем среднее по окну и вычитаем из всех отсчётов.

И усреднить шумы перед поиском максимума.

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


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

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

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

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


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

Вы что делаете? Если измеритель КНИ, то желательно выбирать частоту чтобы в кол-во отсчётов БПФ укладывалось целое число периодов, тогда не нужно будет окон. Например для АЦП 1 КГц можно взять частоту 31.25 Гц.

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

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


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

21 hours ago, Pavia said:

Глобальная. Только перед БПФ нужно вычесть постоянную составляющую: считаем среднее по окну и вычитаем из всех отсчётов.

И усреднить шумы перед поиском максимума.

Какое среднее надо посчитать? Среднее по входному сигналу в каждом окне?  И что значит усреднить шумы?

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


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

40 минут назад, matro сказал:

Какое среднее надо посчитать? Среднее по входному сигналу в каждом окне?  И что значит усреднить шумы?

Среднее считается по входному блоку данных, до наложения окна и до обработки БПФ.

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

 

Усреднить шумы БПФ - это значит обработать (наложить окно, рассчитать БПФ, посчитать амплитудный спектр) несколько блоков входных данных.

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

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


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

10 minutes ago, Lmx2315 said:

Среднее считается по входному блоку данных, до наложения окна и до обработки БПФ.

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

 

Усреднить шумы БПФ - это значит обработать (наложить окно, рассчитать БПФ, посчитать амплитудный спектр) несколько блоков входных данных.

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

выходному бину блока данных - это значения модулей после БПФ? Не понятно, что значит усреднение проводить по одному и тому же бину данных между всеми обработанными блоками. Можете, пожалуйста, рассказать подробнее?

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


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

21 минуту назад, matro сказал:

выходному бину блока данных - это значения модулей после БПФ? Не понятно, что значит усреднение проводить по одному и тому же бину данных между всеми обработанными блоками. Можете, пожалуйста, рассказать подробнее?

К примеру, у вас БПФ размерностью 128 отсчётов. И вы хотите произвести усреднение по 10 блокам.

Обрабатываете 10 таких блоков по 128 отсчётов и запоминаете их, затем суммируете все одни и те же отсчёты десяти блоков между собой и делите каждую сумму на 10. Получаете новый, усреднённый блок из 128 отсчётов - его используете для дальнейшей работы.

spectr0.jpg

spectr1.jpg

 

(тут БПФ = 4096, усреднение 10)

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


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

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

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

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

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

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

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

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

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

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