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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Спектральный анализ на сверхнизких частотах
fontp
сообщение May 31 2013, 11:58
Сообщение #16


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

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



QUOTE (ne_ya @ May 30 2013, 12:05) *
откомпелировал код на фортране, запустил -- ответ с предоставленным в книге не совпадает. Зато очень даже похож на то, что при переписывании на c# получалось. Так что все-таки вряд ли "все блочные методы у Марпла рабочие", к сожалению.


Оставлю на вашей совести, обвинение Марпла в публикации неработающего метода в книге. Говорю же в книге, особенно переводной, могут быть опечатки, особенно типично I пропечатать как 1 или J, могут быть пропущены даже строки в программе.

Ладно, помогу Вам немного, раз уж ввязался. В книге есть ссылки на публикации по каждому методу, и в большинстве публикаций в то время было принято приводить псевдокод и, часто, код на ФОРТРАНе. А ковариационный метод для Марпла "проприетарный", в том смысле, что это метод Марпла, как метод Левинсон-Дурбина - это метод Левинсона и Дурбина, а не Берга. Поэтому он особенно постарался.
Ковариационный метод Марпл предлагал даже в более общем и интересном варианте -
для идентификации FIR-систем по короткой последовательности (типа статический эквалайзер модема по известной преамбуле). То есть Yn = FIR(Xn-1), а не Xn=FIR(Xn-1) как в AR
Эта работающая реализация не настолько стара, чтобы быть мне недоступной.
Вот эта статья c программой (FORTRAN в самом крутом, комплексном варианте), сравните со своей реализацией, заменяя вектор Y на сдвинутый Х, получится ваша AR-модель.
ЗЫ.В принципе у меня есть РАБОТАЮЩАЯ реализация на С, но не очень хочется заморачиваться с ее размещением (С-файл в форуме не атачится), да Вы и не просили, да и вообще, если программа не понравится - скажите какую-то гадость - лучше не буду навязываться biggrin.gif
Прикрепленные файлы
Прикрепленный файл  Marple_Covar.pdf ( 1.01 мегабайт ) Кол-во скачиваний: 87
 
Go to the top of the page
 
+Quote Post
ne_ya
сообщение Jun 3 2013, 06:12
Сообщение #17





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



Цитата(fontp @ May 31 2013, 15:58) *
Оставлю на вашей совести, обвинение Марпла в публикации неработающего метода в книге. Говорю же в книге, особенно переводной, могут быть опечатки, особенно типично I пропечатать как 1 или J, могут быть пропущены даже строки в программе.

Ладно, помогу Вам немного, раз уж ввязался. В книге есть ссылки на публикации по каждому методу, и в большинстве публикаций в то время было принято приводить псевдокод и, часто, код на ФОРТРАНе. А ковариационный метод для Марпла "проприетарный", в том смысле, что это метод Марпла, как метод Левинсон-Дурбина - это метод Левинсона и Дурбина, а не Берга. Поэтому он особенно постарался.
Ковариационный метод Марпл предлагал даже в более общем и интересном варианте -
для идентификации FIR-систем по короткой последовательности (типа статический эквалайзер модема по известной преамбуле). То есть Yn = FIR(Xn-1), а не Xn=FIR(Xn-1) как в AR
Эта работающая реализация не настолько стара, чтобы быть мне недоступной.
Вот эта статья c программой (FORTRAN в самом крутом, комплексном варианте), сравните со своей реализацией, заменяя вектор Y на сдвинутый Х, получится ваша AR-модель.
ЗЫ.В принципе у меня есть РАБОТАЮЩАЯ реализация на С, но не очень хочется заморачиваться с ее размещением (С-файл в форуме не атачится), да Вы и не просили, да и вообще, если программа не понравится - скажите какую-то гадость - лучше не буду навязываться biggrin.gif



Спасибо большое за помощь!
Go to the top of the page
 
+Quote Post
Mikhail K.
сообщение Aug 26 2013, 19:16
Сообщение #18





Группа: Новичок
Сообщений: 9
Регистрация: 26-08-13
Пользователь №: 78 056



Цитата(_pv @ May 28 2013, 21:55) *
возник похожий вопрос, так что спрошу тут.
есть N точек с достаточно неравномерной сеткой, сигнал - серия коротких импульсов, соответсвенно вокруг импульса сетка чаще, там где ничего нет между импульсами, околонулевой сигнал - сетка реже. интересует только одна конкретная частота, но с разной полосой.


Можно сделать дискретное преобразование Фурье (DFT) на неравномерной сетке. Оно немного (зависит от степени неравномерности) хуже обусловлено, и требует большего объёма вычислнеий по сравнению с DFT (нужно решать систему линейных уравнений)

Цитата(_pv @ May 28 2013, 21:55) *
1) если просто посчитать интеграл Фурье, какая получится полоса у полученного спектрального отсчёта?


"Интеграл Фурье" для дискретных отсчётов посчитать нельзя. Наверно, имеется в виду дискретное преобразование Фурье? Если взять обычное DFT и применить к последовательности, оцифрованной с неравномерным шагом, результаты будут некорректными. Если же попытаться делать что-то типа перемножения измеренного с неравномерным шагом сигнала на дискретизированные с тем же шагом синусоиды, то результат будет опять же некорректный, потому что такие синусоиды не ортогональны. Если же их ортогонализовать с помощью процесса Грама-Шмидта, то получится метод, эквивалентный вышеупомянутому дискретному преобразованию Фурье на неравномерной сетке.

Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 26 2013, 21:35
Сообщение #19


Гуру
******

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



Цитата(Mikhail K. @ Aug 27 2013, 01:16) *
Если же попытаться делать что-то типа перемножения измеренного с неравномерным шагом сигнала на дискретизированные с тем же шагом синусоиды, то результат будет опять же некорректный, потому что такие синусоиды не ортогональны.

мне только одна частота нужна, и да я беру и сэмплирую своей неравномерной сеткой синус / косинус перемножаю с сигналом и суммирую, почему это некорректно?
а если я на данные, например, сплайн кубический натяну и честно эти полиномы третьей степени перемноженные с синусом/косинусом проинтегрирую вроде всё корректно будет.
и сетка хоть и не равномерная, но даже там где разреженная, всё равно заметно мельче чем интересующая частота.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Aug 28 2013, 13:48
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



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


Я бы частоту самплинга повыше выбрал. Вы ставите anti aliasing filter? Он частоту Найквиста (Котельникова) подавит, что я думаю вам нежелательно. Не ставить фильтр также нежелательно. Без фильтра можно получить "чудеса". Продолжительность измерения определяет разрешение шкалы результата. Допустим вы измеряли 1000 секунд, тогда после преобразования Фурье разрешение будет 1/1000 = 0.001 Герц. Конечно можно и получить ниже, но выше не получится.


Цитата(_pv @ Aug 27 2013, 01:35) *
мне только одна частота нужна, и да я беру и сэмплирую своей неравномерной сеткой синус / косинус перемножаю с сигналом и суммирую, почему это некорректно?
а если я на данные, например, сплайн кубический натяну и честно эти полиномы третьей степени перемноженные с синусом/косинусом проинтегрирую вроде всё корректно будет.
и сетка хоть и не равномерная, но даже там где разреженная, всё равно заметно мельче чем интересующая частота.


Для одной частоты не надо делать преобразование Фурье. Достаточно считать корелляции с синусом и косинусом заранее известной частоты.
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 29 2013, 08:23
Сообщение #21


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

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



А если частота известна только примерно, нужно вычислить несколько таких корреляций ( минимум 3) вблизи известной частоты с тем, чтобы провести интерполяцию пика и выявить максимум
Ведь известно, что отклик на синусоиду в спектральной области повторяет функцию спектрального окна, то есть будем иметь выборки этого спектрального пика в окрестности максимума. Совсем вблизи максимума всякий непрерывный пик, может приближаться квадратичной параболой
Go to the top of the page
 
+Quote Post
Mikhail K.
сообщение Aug 30 2013, 11:33
Сообщение #22





Группа: Новичок
Сообщений: 9
Регистрация: 26-08-13
Пользователь №: 78 056



Цитата(_pv @ Aug 27 2013, 01:35) *
мне только одна частота нужна, и да я беру и сэмплирую своей неравномерной сеткой синус / косинус перемножаю с сигналом и суммирую, почему это некорректно?


Я написал, почему. Можете сделать численный эксперимент - вычислите оцифровку серии коротких импульсов с заданной частотой, и пропустите через ваш аллгоритм. Попробуйте то же самое на разных частотах. Сравните результат алгоритма с априори известной частотой импульсов

Цитата(_pv @ Aug 27 2013, 01:35) *
а если я на данные, например, сплайн кубический натяну и честно эти полиномы третьей степени перемноженные с синусом/косинусом проинтегрирую вроде всё корректно будет.
и сетка хоть и не равномерная, но даже там где разреженная, всё равно заметно мельче чем интересующая частота.


Корректный алгоритм должен давать точное значение искомой частоты, когда погрешность измерения стремится к нулю. Всё то, что вы пишете выше, таким свойством не обладает.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Aug 30 2013, 11:43
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Mikhail K. @ Aug 30 2013, 15:33) *
Корректный алгоритм должен давать точное значение искомой частоты, когда погрешность измерения стремится к нулю. Всё то, что вы пишете выше, таким свойством не обладает.


Все определяется целью, в АОНАх или DTMF детекторах этот алгоритм блестяще справляется.

Go to the top of the page
 
+Quote Post
Mikhail K.
сообщение Aug 30 2013, 15:08
Сообщение #24





Группа: Новичок
Сообщений: 9
Регистрация: 26-08-13
Пользователь №: 78 056



Цитата(Tarbal @ Aug 30 2013, 15:43) *
Все определяется целью, в АОНАх или DTMF детекторах этот алгоритм блестяще справляется.


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

Цитата(fontp @ Aug 29 2013, 12:23) *
А если частота известна только примерно, нужно вычислить несколько таких корреляций ( минимум 3) вблизи известной частоты с тем, чтобы провести интерполяцию пика и выявить максимум
Ведь известно, что отклик на синусоиду в спектральной области повторяет функцию спектрального окна, то есть будем иметь выборки этого спектрального пика в окрестности максимума. Совсем вблизи максимума всякий непрерывный пик, может приближаться квадратичной параболой



Кстати, такой алгоритм не даст истинного значения частоты даже при идеальной оцифровке сигнала - без пропуска и шума. Да, я знаю, что "все так делают, и ничего".
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 30 2013, 18:11
Сообщение #25


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

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



QUOTE (Mikhail K. @ Aug 30 2013, 19:08) *
Кстати, такой алгоритм не даст истинного значения частоты даже при идеальной оцифровке сигнала - без пропуска и шума. Да, я знаю, что "все так делают, и ничего".


Действительно не даст из-за систематического смещения оценки.Но

1. Это смещение очень мало для зашумленного сигнала ( хуже 30-40 дб) по сравнению с случайной ошибкой, обусловленной шумом. Причем эта случайная ошибка достигает минимальных предельных значений, достижимых любым другим способом, поскольку она приближается к оценке максимального правдоподобия, которая известна как предельная оценка Крамера-Рао

2. Систематическое смещение контролируется в широких пределах способом интерполяции - выбором окон и числа корреляторов. Теоретически увеличивая число корреляторов можно сделать эту ошибку как угодно малой, но это практически неэффективно

Поэтому так и делают, что это теоретически обосновано- такой алгоритм наиболее устойчив в отношении шумов. Естественно, при очень высоком отношении сигнал/шум такой метод становится не адекватным из-за смещения оценки. Любой метод имеет область применения и где-то становится неадекватным

Кстати, ковариационный алгоритм Марпла, также является некоторым образом оценкой максимального правдоподобия, поскольку оценка линейной системы по минимуму квадратов невязки приводит к нормальным уравнениям, причем в качестве матрицы в левой стороне как раз будет матрица ковариации. Получается оценка импульсного отклика TSE- линейной системы по минимуму квадратов быстрым алгоритмом (импульсного отклика, но не спектрального)
Go to the top of the page
 
+Quote Post

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

 


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


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