реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Спектральный анализ на сверхнизких частотах
Crowbar
сообщение Jul 2 2007, 08:21
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 190
Регистрация: 8-05-07
Пользователь №: 27 595



Допустим, требуется получить разложение спектра частот до 20Гц с точностью 0,01Гц и выше. Каким образом это реализуется, помимо самого простого способа, как поставить частоту отцифровки на 40Гц, выставить кол-во сэмплов на 4000 и ждать больше полутора минут завершения очередного цикла?
Go to the top of the page
 
+Quote Post
mikalaha
сообщение Jul 2 2007, 09:03
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 16-05-07
Пользователь №: 27 771



Цитата(Crowbar @ Jul 2 2007, 12:21) *
Допустим, требуется получить разложение спектра частот до 20Гц с точностью 0,01Гц и выше. Каким образом это реализуется, помимо самого простого способа, как поставить частоту отцифровки на 40Гц, выставить кол-во сэмплов на 4000 и ждать больше полутора минут завершения очередного цикла?

Не обязательно. Просто набираете некоторое количество отсчетов (например 80 - 2 секунды записи). Затем производите БПФ требуемой размерности (например, 4096 - точность как раз около 0.01Гц). Недостающие до 4096 отсчеты (4016) заполняете нулями. И выполняете БПФ.
Go to the top of the page
 
+Quote Post
Alex255
сообщение Jul 2 2007, 09:22
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 450
Регистрация: 21-12-06
Пользователь №: 23 757



Цитата(mikalaha @ Jul 2 2007, 13:03) *
Не обязательно. Просто набираете некоторое количество отсчетов (например 80 - 2 секунды записи). Затем производите БПФ требуемой размерности (например, 4096 - точность как раз около 0.01Гц). Недостающие до 4096 отсчеты (4016) заполняете нулями. И выполняете БПФ.

То есть Вы хотите получить информацию о процессе периодом 100сек за 2секунды? wacko.gif Увы...

To Crowbar: Да, именно так как Вы сказали smile.gif
Go to the top of the page
 
+Quote Post
mikalaha
сообщение Jul 2 2007, 10:24
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 16-05-07
Пользователь №: 27 771



Цитата(Alex255 @ Jul 2 2007, 13:22) *
То есть Вы хотите получить информацию о процессе периодом 100сек за 2секунды? wacko.gif Увы...

To Crowbar: Да, именно так как Вы сказали smile.gif


На самом деле все отлично работает.
Например:
сигнал - тон с частотой 10 Гц (период 0.1 сек) - в одной секунде 10 периодов!!
при записи с дискретизацией 40 Гц одной секунды получаем 40 отсчетов, в которых содержится
целых 10 периодов тона.
Если теперь дополнить нулями и взять FFT мы получим этот тон.

Прикреплены картинки
time - сигнал во временной области;
freq - после FFT 4096
freq2 - увеличенная частотная позиция 10 Гц после FFT (что и требовалось)

Цитата(mikalaha @ Jul 2 2007, 14:14) *
На самом деле все отлично работает.
Например:
сигнал - тон с частотой 10 Гц (период 0.1 сек) - в одной секунде 10 периодов!!
при записи с дискретизацией 40 Гц одной секунды получаем 40 отсчетов, в которых содержится
целых 10 периодов тона.
Если теперь дополнить нулями и взять FFT мы получим этот тон.

Прикреплены картинки
time - сигнал во временной области;
freq - после FFT 4096
freq2 - увеличенная частотная позиция 10 Гц после FFT (что и требовалось)


То же самое наблюдается и при тоне с частотой например (10.05 Гц). Единственное различие вышло следующее: без прореживания нулями пик после Фурье вышел на частоте 10.0488 Гц, а с прореживанием - 10.0399 Гц
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 2 2007, 11:29
Сообщение #5


Эксперт
*****

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



Дополнение нулями работает, но только для одиночного тона. На самом деле вы получаете грубую сетку частот для оценки по БПФ, а более тонкие частоты получили интерполяцией (дополнение нулями означает некоторую интерполяцию промежуточных точек БПФ). Для оценки произвольного спектра это работать, очевидно, не будет. Попробуйте, например, разрешить два тона, отстоящих друг от друга на 0.01 гц - 10гц и 10.01 гц. Разрешить означает, что они присутствуют в спектре одновременно.
Неуспех гарантирован принципом неопределённости
Go to the top of the page
 
+Quote Post
el34
сообщение Jul 2 2007, 11:39
Сообщение #6


инженер
****

Группа: Свой
Сообщений: 717
Регистрация: 4-03-05
Пользователь №: 3 064



2 Crowbar возмите - в инете есть книжка Марпла


С.Л. Марпл-младший. Цифровой спектральный анализ и его приложения. (гл. 1-7)
С.Л. Марпл-младший. Цифровой спектральный анализ и его приложения. (гл. 8-16)
http://dsp-book.narod.ru/books.html

там есть глава Аналитические методы спектрального анализа
да и вообще - много полезного по Вашему вопросу....


--------------------
........поужинали вяленой рыбой, кот лежал рядом, молчали.......
Go to the top of the page
 
+Quote Post
Crowbar
сообщение Jul 2 2007, 15:16
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 190
Регистрация: 8-05-07
Пользователь №: 27 595



О, а я ее чего-то пропустил, когда там был, спасибо.
Go to the top of the page
 
+Quote Post
mikalaha
сообщение Jul 3 2007, 04:56
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 16-05-07
Пользователь №: 27 771



Цитата(fontp @ Jul 2 2007, 15:29) *
Дополнение нулями работает, но только для одиночного тона. На самом деле вы получаете грубую сетку частот для оценки по БПФ, а более тонкие частоты получили интерполяцией (дополнение нулями означает некоторую интерполяцию промежуточных точек БПФ). Для оценки произвольного спектра это работать, очевидно, не будет. Попробуйте, например, разрешить два тона, отстоящих друг от друга на 0.01 гц - 10гц и 10.01 гц. Разрешить означает, что они присутствуют в спектре одновременно.
Неуспех гарантирован принципом неопределённости

Согласен, погорячился. Надо подумать об обучении smile.gif
Go to the top of the page
 
+Quote Post
Waso
сообщение Jun 24 2009, 09:18
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Занимаюсь получением спектра по модифицированному ковариационному алгоритму, описанному в книге Марпла мл., на которую тут ссылались.
Написал прогу. Вернее списал с книжки, перевел с тамошнего фортрана на экселевский бейсик (ну надо оно мне там!!).
Но она считает неправильно. В конце той книги должна быть тест-последовательность, по которой можно отладить все процедурки,
приведенные в книге. Но в моем дэжавюшнике книга обрывается на стр 547, где еще идет окончание 16-й главы... Откуда я только не качал
эту книженцию - везде лежит одно и тоже. Иногда по половинкам иногда целая, но косяки все теже.
У кого есть ПРИЛОЖЕНИЕ II с 64-точечной комплексной тест-последовательностью марпла - помогите пожалуйста! Можно прямо тут положить. smile.gif
====================================
А все. Сам нашел. )))) Там-же есть постраничная выкладка этой книги. Там все от начала и до конца и в хорошем качестве. Только чтоб показывало - надо скачать 0584.djbz обязательно. и можно по страничкам смотреть.
Go to the top of the page
 
+Quote Post
ne_ya
сообщение Apr 29 2013, 11:19
Сообщение #10





Группа: Новичок
Сообщений: 4
Регистрация: 29-04-13
Пользователь №: 76 672



Цитата(Waso @ Jun 24 2009, 13:18) *
Занимаюсь получением спектра по модифицированному ковариационному алгоритму, описанному в книге Марпла мл., на которую тут ссылались.
Написал прогу. Вернее списал с книжки, перевел с тамошнего фортрана на экселевский бейсик (ну надо оно мне там!!).
Но она считает неправильно. В конце той книги должна быть тест-последовательность, по которой можно отладить все процедурки,
приведенные в книге. Но в моем дэжавюшнике книга обрывается на стр 547, где еще идет окончание 16-й главы... Откуда я только не качал
эту книженцию - везде лежит одно и тоже. Иногда по половинкам иногда целая, но косяки все теже.
У кого есть ПРИЛОЖЕНИЕ II с 64-точечной комплексной тест-последовательностью марпла - помогите пожалуйста! Можно прямо тут положить. sm.gif
====================================
А все. Сам нашел. )))) Там-же есть постраничная выкладка этой книги. Там все от начала и до конца и в хорошем качестве. Только чтоб показывало - надо скачать 0584.djbz обязательно. и можно по страничкам смотреть.



У меня та же самая проблема -- не подскажите, как решили? До того реализовывал метод Берга -- рекурсивное нахождение дисперсии белого шума (rho) давало неправильные результаты. После того, как рекурсию заменил на "грубую силу", начал получать правильный спектр. Может, здесь тоже с этим проблема? Или я где-то с коэффициентами напутал?
Go to the top of the page
 
+Quote Post
fontp
сообщение Apr 29 2013, 12:28
Сообщение #11


Эксперт
*****

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



QUOTE (ne_ya @ Apr 29 2013, 15:19) *
У меня та же самая проблема -- не подскажите, как решили? До того реализовывал метод Берга -- рекурсивное нахождение дисперсии белого шума (rho) давало неправильные результаты. После того, как рекурсию заменил на "грубую силу", начал получать правильный спектр. Может, здесь тоже с этим проблема? Или я где-то с коэффициентами напутал?


Наверно напутали. У Марпла блочные методы работающие. Проверяйте на его тестовых данных. Оценки дисперсии генерирующего шума могут быть смещенными, но оценки спектра получаются хорошими (хотя тоже немного смещенными). Поэтому метод Берга работает хуже обычного Левинсона в отношении определения частоты пиков, например. Берг за то лучше предсказывает. Но это уже вопросы адекватности моделей, а не работоспособности алгоритма

Если данных мало,среди блочных методов ковариационные методы лучше всего.

Скользящая же рекурсия (алгоритм Fast RLS) работает условно - то есть он сходится до определенного предела, после чего обязательно разваливается, поскольку вблизи точного решения обычно алгоритм становится сингулярным, выходит на границу устойчивости.
Самый простой способ, используемый для борьбы с этим - это периодическая реинициализация, там сказано. Кроме того существуют более устойчивые варианты FRLS, чем классический, приведенный у Марпла (как адапитивная Калмановская AR-модель)

типа этого FRLS, устойчивого в большинстве случаев
http://www.wcl.ece.upatras.gr/CSNDSP//cont...0Audio/A8.1.pdf
Go to the top of the page
 
+Quote Post
ne_ya
сообщение May 28 2013, 05:11
Сообщение #12





Группа: Новичок
Сообщений: 4
Регистрация: 29-04-13
Пользователь №: 76 672



Цитата(fontp @ Apr 29 2013, 16:28) *
Наверно напутали. У Марпла блочные методы работающие. Проверяйте на его тестовых данных. Оценки дисперсии генерирующего шума могут быть смещенными, но оценки спектра получаются хорошими (хотя тоже немного смещенными). Поэтому метод Берга работает хуже обычного Левинсона в отношении определения частоты пиков, например. Берг за то лучше предсказывает. Но это уже вопросы адекватности моделей, а не работоспособности алгоритма

Если данных мало,среди блочных методов ковариационные методы лучше всего.

Спасибо за ответ.

Что ковариционные методы на коротких отрезках данных дают лучшие оценки спектра, я читал. Поэтому мне и нужно реализовать модифицированных ковариционный.

Проблема в том, что при переписывании приведенной программы один-в-один и прогонке по тестовому примеру, ответ получился не тот. Начал копаться в описании алгоритма -- нашел несоответствия с текстом программы. Обрадовался, переделал -- результат еще хуже. Вы реализовывали эти методы сами или просто знаете, что они работающие? Если реализовывали, то по описанному алгоритму или ориентировались на приложенную программу?
Go to the top of the page
 
+Quote Post
fontp
сообщение May 28 2013, 12:29
Сообщение #13


Эксперт
*****

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



QUOTE (ne_ya @ May 28 2013, 08:11) *
Спасибо за ответ.

Что ковариционные методы на коротких отрезках данных дают лучшие оценки спектра, я читал. Поэтому мне и нужно реализовать модифицированных ковариционный.

Проблема в том, что при переписывании приведенной программы один-в-один и прогонке по тестовому примеру, ответ получился не тот. Начал копаться в описании алгоритма -- нашел несоответствия с текстом программы. Обрадовался, переделал -- результат еще хуже. Вы реализовывали эти методы сами или просто знаете, что они работающие? Если реализовывали, то по описанному алгоритму или ориентировались на приложенную программу?


Я когда-то реализовывал все блочные методы, но очень давно. Когда еще был ФОРТРАН. Деталей не помню. Там в тексте программ главное не путать I и 1, и не запутаться в индексах, если перекладывать на другой язык
Go to the top of the page
 
+Quote Post
_pv
сообщение May 28 2013, 17:55
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



возник похожий вопрос, так что спрошу тут.
есть N точек с достаточно неравномерной сеткой, сигнал - серия коротких импульсов, соответсвенно вокруг импульса сетка чаще, там где ничего нет между импульсами, околонулевой сигнал - сетка реже. интересует только одна конкретная частота, но с разной полосой.

1) если просто посчитать интеграл Фурье, какая получится полоса у полученного спектрального отсчёта?
2) как можно простым образом эту полосу контролирумо уменьшить?

подозреваю, что я могу, наверное, сделать интерполяцию, расставить равномерно отсчёты, потом пропустить это через какой-нибудь КИХ фильтр бешенной длины и опять посчитать тот же интеграл на нужной частоте, но хотелось бы проще.
Go to the top of the page
 
+Quote Post
ne_ya
сообщение May 30 2013, 09:05
Сообщение #15





Группа: Новичок
Сообщений: 4
Регистрация: 29-04-13
Пользователь №: 76 672



Цитата(fontp @ May 28 2013, 16:29) *
Я когда-то реализовывал все блочные методы, но очень давно. Когда еще был ФОРТРАН. Деталей не помню. Там в тексте программ главное не путать I и 1, и не запутаться в индексах, если перекладывать на другой язык



откомпелировал код на фортране, запустил -- ответ с предоставленным в книге не совпадает. Зато очень даже похож на то, что при переписывании на c# получалось. Так что все-таки вряд ли "все блочные методы у Марпла рабочие", к сожалению.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 05:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016