Спектральный анализ. Нужна помощь

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
mvm
Открыл глаза
Сообщения: 40
Зарегистрирован: Вс янв 30, 2011 18:52:55

Сообщение mvm »

Теоретически понимаю, а практически - "упираюсь в стену" незнания. :?
понимаю, что любая кривая сигнала, на определенном участке может быть сведена к сумме синусоидальных сигналов разных частот, амплитуд и фаз.
Теперь задача:
Есть массив данных (в честности запись осциллограммы в формате время/потенциал исследовалась вибрация предмета)
Надо получить амплитуды и частоты спектра вибрации данного тела, зависимость потенциала от ускорения известна к примеру 1g = 0,25 В - на выходе датчика.
Т.е. из двухмерного графика получить 3-х мерный, где осями будут ускорение, частота и время, где время - это время отслеживания первичных данных (время проведения опыта).

кому нужны подробности: испытывался высоко оборотистый редуктор, снято несколько осциллограмм в частности - разгон, работа и остановка в разных режимах нагрузки но трем осям.
частота дискретизации 0,01 мкС.
необходимо произвести анализ вибрации всей установки, выявив частоты на которых происходит наибольший "разнос".

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

В донной ветке я хочу рассмотреть теорию и формулы, так, чтоб понять как можно это сделать самому. Т.е. вариант "загнать" данные в Матлаб и использовать преобразование Фурье или используем программу "ххххх" и всё получится - не вариант т.к. хочу понять и осознать. Нужна помощь "на пальцах".
Последний раз редактировалось mvm Чт мар 29, 2012 08:24:27, всего редактировалось 1 раз.
Реклама
Друг Кота
Сообщения: 5398
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий

Сообщение petrenko »

"Беседы об автоматике и кибернетике" Москва "Наука" ФизМатЛит 32.81 З_23 УДК 62-50 Тираж 60`000экз. цена 80коп. Автор - Лев Абрамович Залманзон - профессор, доктор технических наук, сотрудник Института проблем управления Академии наук СССР. Почти что "на пальцах", популярно разъясняет, так, чтобы понять и осознать откуда товарищ Эйлер и товарищ Фурье вывели свои формулы. Для осознания достаточно знания школьного курса (или нынче в школах всё проходят, но - мимо?), мне не показалось сложным ничего из книги.
Делать свёртку и производить БПФ можно и без Матлаба - такие библиотеки к Фортрану были уже очень очень давно и к более новым ЯП существуют, или можете для осознания самостоятельно "помучаться"
*_может наоборот: "зависимость электропотенциала с датчика ускорения от самого ускорения"? - логичнее...
**_это с Вас три оси координат потебовали, или сами так хотите?
***_вот это без осознания написано, даже начинающему бросается сумбурность. Правильно сформулированная задача - чуть ли не половина решения - нас так в школе учили.
Последний раз редактировалось petrenko Чт мар 29, 2012 22:33:11, всего редактировалось 2 раза.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Поищите на форуме обсуждения о дискретном преобразовании Фурье. Обсуждалось как реализовывать двутональные фильтры и т.п.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Друг Кота
Сообщения: 5398
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий

Сообщение petrenko »

Оффтоп: если меня поправили, так уж и "ашыпки" ТС тоже тогда. И вообще сноски получились к пустоте теперь. <-Что правила нарушаю?, усмотрите обсуждение действий кого нельзя ? Может молодёжь сподвигнется хоть раз в библиотеку сходить!?
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
mvm
Открыл глаза
Сообщения: 40
Зарегистрирован: Вс янв 30, 2011 18:52:55

Сообщение mvm »

Ну слава б.г.!!!
Нашелся истинный гуру! Господин petrenko, почитал рекомендованную Вами литературу, но с трудом могу понять как применить изложенные данные. Рас уж Вы столь элементарно разбираетесь в данном вопросе, будьте добры помочь мне в данном вопросе. Я вкладываю файл Excel, в котором записаны данные осциллограммы. Можете туда-же дописать формулы, чтоб получить спектрограмму в том-же Excel.
Заранее благодарю.
Вложения
3106.xls
(76.5 КБ) 198 скачиваний
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Можете туда-же дописать формулы, чтоб получить спектрограмму в том-же Excel.
FFT не есть какая-то одна формула, это алгоритм. Можно, конечно, его развернуть, но это будет изысканным извращением.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Реклама
Друг Кота
Сообщения: 5398
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий

Сообщение petrenko »

mvm писал(а):Ну слава б.г.!!!
Нашелся истинный гуру! Господин petrenko, почитал рекомендованную Вами литературу, но с трудом могу понять как применить изложенные данные. Рас уж Вы столь элементарно разбираетесь в данном вопросе, будьте добры помочь мне в данном вопросе. Я вкладываю файл Excel, в котором записаны данные осциллограммы. Можете туда-же дописать формулы, чтоб получить спектрограмму в том-же Excel.
Заранее благодарю.
Какой же я "гуру"- начинающий я, просто сам для повышения грамотности прочитал, вот и посоветовал, хорошо, что Вам поможет. Выборки, то бишь значения в разные моменты времени умножаются на комплексные числа, которые или предвычисляются или берутся из таблиц. Произведения далее умножаются на следующие комплексные числа, и т.д. Схема умножения вектора из выборок на вектор из комплексных коэффициентов обзывается "бабочка"- по внешнему виду блок-схемы всех умножений. В конце концов получаются много чисел, у которых мнимую часть отбрасывают, а действительная означает амплитуду на конкретной частоте, то есть набор амплитуд разных частот. Просто и ясно.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Контактная информация:
mvm
Открыл глаза
Сообщения: 40
Зарегистрирован: Вс янв 30, 2011 18:52:55

Сообщение mvm »

Если кто-то "нарвется" на аналогичную проблему - не распыляйтесь!
Алгоритмы, объяснения, теории и доказательства, исходники:
классная статья! http://psi-logic.shadanakar.org/fft/fft.htm
Автор постарался. За что ему отдельное спасибо.
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

mvm, я не совсем понял из последних ваших постов: вас интересует механизм алгоритма БПФ, его теоретическое обоснование, либо же вы не понимаете как правильно интерпретировать результаты БПФ?

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

По вейвлетам можно заглянуть сюда. Картинки хотя бы посмотреть. Если следовать рекомендациям этой статьи, взяв правда вот такую вейвлет-функцию:
Изображение
то из вот этой своеобразной композиции ("Мужицкий дождь" первые 20 секунд) можно получить вот такую замечательную картинку (частота сверху вниз возрастает, время по горизонтали). Если вы прослушаете композицию, глядя на картинку, то вопросы интерпретации результатов должны отпасть сами собой. Остаётся лишь по алгоритму вычислить для конкретной интересующей точки графика её время и частоту.
Вложения
mrain.png
(240.71 КБ) 675 скачиваний
wl-func.gif
(4.16 КБ) 1443 скачивания
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

Поковырялся я с вашими данными из эксель-файла. Я так понял там частота дискритизации 100 кГц. Вот что получилось:

Изображение

На спектрограмме частота по вертикали в логарифмическом масштабе возрастает снизу в верх от 1 кГц (деление 500) до 50 кГц (деление 0). Однако я точно знаю что с амплитудами накосячил (в зависимости от частоты), хотя общий вид картинки вроде правильный.

Вам что-то такое надо?
Вложения
test_wl2.png
(24.5 КБ) 1453 скачивания
mvm
Открыл глаза
Сообщения: 40
Зарегистрирован: Вс янв 30, 2011 18:52:55

Сообщение mvm »

B@R5uk - вы правы, ДА, это инменно ОНО! столкнувшись БПФ я увидел, что он работает. Но если записать осциллограммы акселерометров, установленных на редуктор от момента запуска, до его остановки, а потом применить БПФ - это усреднит результаты, я решил применять БПФ действительно к "окну" данных, хотя осознаю что это не совсем корректно. Действительно, предложенное Вами вейвлет-преобразование - это то, что надо, т.к. результат виден на всём этапе опыта. И в зависимости, от частот вращения элементов редуктора модно производить его дефектацию без разборки.

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

P.S.: кстати, если Вам интересно, в данном случае, на предоставленном графике изображен удар датчика, в частности - фон, основное воздействие, и собственная вибрация корпуса. Я не стал "для примера" выкладывать данные опыта запуска редуктора, т.к. при продолжительности в 10...15 минут, ну и естественно, при вменяемой развертке, это с трудом информативная "кривулина" весом в десятки Мб.

Кстати, интересно, что это на 23кГц, что это существующее еще при "фоне", но к концу записи сходит на нет... хм... это интересно.
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

Вот ещё поковырялся, подправил амплитуду, увеличил разрешение по времени (по частоте разрешение, соответственно, уменьшилось):

Изображение

Вейвлет анализ хоть и гибок, но тоже не лишён недостатков. В часности, разрешение по времени и по частоте -- увеличиваем одну, уменьшаем другую. Это сродни неопределённости Гейзенберга для пар время-энергия координата-скорость квантовой частицы. Мы не можем предельно точно узнать одновременно обе величины.
mvm писал(а):Поделитесь, пожалуйста, чем конкретно Вы воспользовались, для получения данного результата.
Программа на матлабе в прикреплённом файле. Однако с точки зрения дотошного математика у меня там вейвлет-функция построена совершенно неграмотно, хоть и даёт разумную картинку. Я сам в вейвлетах новичёк и помогаю вам исключительно с целью самообразования.
mvm писал(а):в данном случае, на предоставленном графике изображен удар датчика
Я догадался об этом, когда прослушал запись с замедленной частотой дискретизации. Характерный для удара резкий переходных процесс и быстрое затухание на одной частоте. Напоминает звук ксилофона -- деревянного инструмента. Возможно, ваш прибор вибрирует и на каких-то других более высоких частотах, чтобы их увидеть надо поднять частоту дискретизации.
Вложения
test_wl2.rar
(3.18 КБ) 173 скачивания
test_wl2-2.png
(45.85 КБ) 1399 скачиваний
mvm
Открыл глаза
Сообщения: 40
Зарегистрирован: Вс янв 30, 2011 18:52:55

Сообщение mvm »

B@R5uk, большое спасибо за внимание к теме.
У меня к Вам вопрос:
при попытке воспользоваться Вашими исходниками MathLab 6.1 выдает ошибку (приложена к сообщению).
это проблема совместимости версий матлаб или я что-то не так делаю?

в файле tst_wl2.m есть строки "%[sounddata,fs]=wavread('mrain.wav');", я так понимаю, данную
таблицу "моих" значений необходимо преобразовать в wav файл, с которым и работает матлаб,
на прямую вставлять значения в матлаб не получиться...
Вложения
default.JPG
ERROR
(151.43 КБ) 625 скачиваний
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

mvm писал(а):при попытке воспользоваться Вашими исходниками MathLab 6.1 выдает ошибку (приложена к сообщению).
Шестой Матлаб совершенно не дружит с русскими символами. Даже коментарии на русском придётся стереть, чтобы запустить. Возможно, файл не читается потому что русские буквы в пути, это надо потестить. Но скорее всего, действительно, несовместимость версий, так как скрипт запустился и пишет о повреждении мат-файла. Я использую MATLAB R2008a, скачал с рутреккера, он гораздо пропработанней (во многих отношениях, включая новые очень полезные функции), чем шестой, так что рекомендую.
mvm писал(а):в файле tst_wl2.m есть строки "%[sounddata,fs]=wavread('mrain.wav');"
Это закомментированная загрузка данных из звукового файла. Матлаб так же позволяет непосредственно записывать сигнал со звуковой карты, обрабатывать его и воспроизводить. Разумеется эти действия производятся не параллельно.
mvm писал(а):данную таблицу "моих" значений необходимо преобразовать в wav файл, с которым и работает матлаб,
на прямую вставлять значения в матлаб не получиться...
Если у вас данные изначально в виде звукового файла, то преобразовывать ничего не надо, достаточно их просто открыть. Если же они в каком-то другом виде (например, в текстовом), то можно просто вставить этот текст как инициализацию вектора-столбца. Я так и делал копи-пастом из вашего эксэль-документа. Просто потом, чтобы куча текста не мешалась я сохранил одну переменную (с именем "data") в мат-файл с именем "test_wl2.mat". Лишние конвертации могут привести к неприятным и труднообнаружимым ошибкам.
Ответить

Вернуться в «Теория»