|
Что значит Ваша фраза - определить десяток гармоник? Амплитуду их померить? Частоту (если частота основной неизвестна)? Что?
Как соотносится частота основного тона Вашего и длительность Фурьевого окна? Т.е. во сколько (приблизительно) раз Ffundamental больше, чем Fdiskr/N? N - длина Фурье. Или может она у Вас совсем не больше, а меньше?
Вы гармоники своей основной частоты глазом в спектре видите или нет?
Решение может быть и таким.
Сигнал множите на окно. Берете Фурье и затем квадрат модуля. Находите медиану квадрата модуля спектра.
Умножаете ее на 20-25. Это будет порог. Все что ниже порога - шум.
Все, что выше порога, - сигнальные (и помеховые, если есть помехи) составляющие.
Находите все локальные максимумы в сигнально-помеховых состаляющих.
Уточняете положение локальных максимумов. Уточнение - разными способами. Например интерполяцией.
Получите ряд из положений (частот) локальных максимумов. Выделить из этого ряда те, которые являются гармониками некой основной частоты (из этого же ряда) - плевое дело. А потом уточнить их амплитуду. Тоже плевое дело и куча способов. Если нужно - напишу. Сейчас лень. Или поищите в конфе. Кучу раз писал.
А если частота основной известна, или хотя бы приблизительно известна, то вообще все упрощается. Ищете лок. максимумы только в интересующих областях (если приблизительно известна), или вообще не ищите, а сразу уточняете амплитуду, если известна точно.