0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 5
|
||||||
1 | ||||||
Спектральный анализ данных в Matlab05.01.2013, 00:52. Показов 12407. Ответов 7
Метки нет (Все метки)
Добрый день! Зарегистрировался на вашем форуме, т.к. надеюсь, что вы мне поможете. Сначала небольшое отступление - я аспирант, специальность "Автоматизация процессов управления", школа моего научрука занимается применением элементов ИИ в нефтегазовой промышленности. В моем случае, это нейросети. Но, для начала (а у меня только первый месяц учебы прошел) мне нужно разобраться с объектом исследования. Теперь, непосредственно к теме.
У меня есть файл с двухмерным массивом данных из 64 столбцов (температура, давление и т.д. - параметры с разных точек газоперекачивающего агрегата) и около 7000 строчек (данные за месяц, снимаются каждые 5 минут +- отдельные интервалы нулей). Мне надо исследовать их статистические характеристики. Само собой, проще всего мне это сделать в Матлабе, хотя я не работал с ним со второго курса, но кое-что помню. Знания по матану и обработке сигналов есть кое-какие, но, видимо, недостаточные. Я исключил нули (там, где это оправдано), центрировал значения относительно 0, получил графики распределения и плотности распределения, автокорелляционную и автоковариационную функцию. Проблема возникла со спектральной плотностью - pcov(массив,1) резко опускалась в 0 во всех случаях. Пошарив по вашему форуму, набрел на этот код:
0
|
05.01.2013, 00:52 | |
Ответы с готовыми решениями:
7
Гармонический и спектральный анализ в Matlab Спектральный анализ несинусоидального сигнала в Matlab Спектральный анализ напряжения Спектральный анализ функции |
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
05.01.2013, 09:43 | 2 |
было бы значительно проще если бы вы выложили данные и код, а не только графики.
Ладно, что можно сказать по графикам: Все правильно - в данных имеется постоянная составляющая. Поэтому основная часть спектра сосредоточена около нулевой частоты, а остальная часть на графике(в данном масштабе) практически не видна. То же самое на втором графике. Собственно второй график и последний имеют довольно схожий смысл - второй это амплитудный спектр построенный с помощью fft, последний оценка спектральной плотности мощности ковариационным методом. вот это должно было решить данную проблему, однако на первом графике видно, что это не сделано. по поводу выявления скрытых периодичностей в инете полно статей.
2
|
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 5
|
|
05.01.2013, 13:36 [ТС] | 3 |
Первым графиком я выложил просто сигнальную функцию. Но ведь pcov базируется на ковариации, разве нет? А автоковариационная функция по определению работает с центрированными значениями. А по поводу работы над центрированными значениями во втором графике - спасибо, попробую.
0
|
117 / 116 / 8
Регистрация: 23.12.2012
Сообщений: 195
|
|
05.01.2013, 14:12 | 4 |
Судя по графикам, сигнал на первом рисунке представляет собой реализацию нормального белого шума. По крайней мере, очень на это похоже. Функция и плотность распределения, а также АКФ имеют характерный вид.
1
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||||||
05.01.2013, 15:31 | 5 | |||||
я бы не стал так утверждать. Если характер распределения близок к гауссовскому, это еще не означает что шум белый. Об окраске шума можно утверждать только по спектру, а его при наличии постоянки не очень видно. Почему то многие путают понятия "белый" и "гауссов" шум, хотя белый шум может быть не гауссовым, а гауссов не белым.
Я честно говоря внутрь функции не лазил, не очень хорошо представляю себе как она работает. По определению ковариации, да, она должна быть центрирована. Но! В этом случае что, она игнорирует нулевую частоту? Но ведь такая спектральная оценка будет не верна! Видимо внутри функции постоянка как то все таки учитывается и домешивается на выходе. Посмотрим на примере кода:
Кстати это пример как раз не гауссовова белого шума)
1
|
117 / 116 / 8
Регистрация: 23.12.2012
Сообщений: 195
|
|
05.01.2013, 16:55 | 6 |
Сообщение было отмечено как решение
Решение
vital792, согласен с Вами в том, что многие путают эти понятия. Но я, уверяю Вас, хорошо их различаю. Мой вывод о коррелированности сигнала сделан по автокорреляционной функции (АКФ), которая имеет только один пик в нуле. Это свидетельствует об отсутсвии кореляции между сдвинутыми во времени значениями сигнала. Спектральная плотность мощности, кстати сказать, однозначно связана с АКФ преобразованием Фурье, так что скорей всего при правильном рассчете получится равномерной.
Добавлено через 1 час 2 минуты slabinoha, vital792, по поводу функции pcov и ковариационного метода. В книге Сергиенко А.Б. "Цифровая обработка сигналов"(2003), на стр. 69 есть интересное замечание, смысл которого примерно в следующем: в отечественной и иностранной литературе используют совершенно противоположные определения для ковариационной и корреляционной функции (в плане того, где выполняется центрирование, а где нет). См., например, определение автокорреляционной функции на википедии. Когда речь идет о случайных функциях - используется матожидание произведения центрированных значений (надо полагать, что для ковариационной функции используются нецентрированные значения). Однако если речь о конкретной реализации сигнала, то автокорреляционная функция вычисляется без центрирования. Если википедия кажется ненадежным источником, сразу оговорюсь, такое же определение у Сергиенко и в книге Баскакова "Радиотехнические цепи и сигналы". Так что путаница может возникнуть изрядная. Раз результат работ pcov зависит от центрирования, приходится предположить, что внутри функции оно не выполняется.
3
|
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 5
|
|
05.01.2013, 18:09 [ТС] | 7 |
Выкладываю аналогичные графики для другого параметра - первый рисунок - нецентрированные значения, второй - центрированные. pcov() все так же непрерывно стремится к нулю, в принципе на всех графиках изменились только границы. Меня интересует следующее - теоретически, если я применяю fft() в том виде, в котором я сделал здесь и выше, я получу функцию спектральной плотности относительно частот? Если нет, ткните носом в ошибку. Вообще, может я где-то в корне неправ и мне нужно применять другие функции и методы? Подскажите, пожалуйста.
0
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
06.01.2013, 09:31 | 8 |
шум сосредоточенный в полосе будет давать такой же пик, но не будет белым.
спектральная плотность связана с акф теоремой Парсеваля. Однако из этого не следует, что спектр будет равномерным по всей полосе частот. Ну да ладно, я уже придираюсь к терминологии, хотя сам не люблю таких людей это мало относится к теме вопроса. да, да - тоже с таким сталкивался. Однако в матлабе функция xcorr() выполняет привычную нам корреляцию, а функция xcov() - ковариацию. возможно просто колебание очень низкой частоты, близкой к нулевой? Все таки, если бы вы скинули данные, было бы проще анализировать. Теоретически, когда вы выполняете преобразование Фурье, вы получаете коэффициенты разложения, соответствующие частотам в данном разрешении(зависящем от длины окна). От этих коэффициентов, соответствующих квадратурной и синфазной компонентам, легко перейти к любому интересующему вас спектру - амплитудному, фазовому, или спектру мощности. методов полно, но надо же с чего то начинать) Вы же аспирант - будущий соискатель. Вот и попробуйте разные методы и выберите какой по вашему лучше. Добавлено через 9 минут То есть Винера-Хинчина, сори. Пора бы и мне освежить теорию, почитать учебники. Начинаю забывать основы
1
|
06.01.2013, 09:31 | |
06.01.2013, 09:31 | |
Помогаю со студенческими работами здесь
8
Спектральный анализ в матлабе Спектральный анализ и статистика Спектральный анализ осциллограмм Спектральный анализ сигнала Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |