Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Любителям анализировать спектры!
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
newfiz
В программе SPECTRAND (SPECTRum ANalysis via Derivation) реализован метод спектрального анализа дискретных стохастических рядов, имеющих зашумлённые гармонические компоненты - при этом корректно обрабатываются низкочастотный тренд и скачки в потоке данных.

При традиционном подходе, низкочастотный тренд даёт паразитные вклады в амплитуды спектральных компонент. Эти вклады устраняют - например, в методах, основанных на использовании вариации Аллана, или при быстром преобразовании Фурье - но при этом возможна обработка только таких рядов, в которых отсчёты разделены ОДИНАКОВЫМИ промежутками времени. Так, в национальных Службах времени-частоты, ради возможности спектрального анализа потоков данных, отсчёты специально делаются раз в час, раз в сутки - и при этом возможно нахождение лишь тех спектральных компонент, периоды которых кратны дискрету времени между отсчётами. Что касается скачка в ряде данных, то приходится искусственно, с долей произвола, делать "сшивку" такого ряда.

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



Программа SPECTRAND и её описание свободно доступны на http://newfiz.narod.ru/soft/soft.htm
Для широкого круга пользователей!
eugen_pcad_ru
А при наличии шумов пробовали смотреть? "Чистый" сигнал - это зачастую роскошьsm.gif
newfiz
eugen_pcad_ru,
"А при наличии шумов пробовали смотреть?"

Разумеется! Там красота метода проявляется ещё круче!
По тому же адресу есть программка NORAD-Spectr. Прародитель.
В её Описании дана картинка с шумами.
А в Описании SPECTRAND дана ссылка на статью, где метод был применён впервые.
Там тоже весёлые картинки. Взгляните!
eugen_pcad_ru
Спектральный анализ стохастических рядов при чтении файла в текстовом формате?..
А можно доработать программу до работы с wav-файлами? И померяться силами с обработчиками звуковых редакторов?

P.S.: А то генерировать гигабайтные файлы не очень хочется.
newfiz
eugen_pcad_ru,
"А можно доработать программу до работы с wav-файлами?"

Наверное, можно - но не знаю, когда руки дойдут. И потом:
у Вас - одни предпочтения, у других - другие. Всем не угодишь.
А текстовый формат - самый простой и универсальный.
Kluwert
Цитата(newfiz @ Oct 17 2012, 16:04) *
В нашем же методе перечисленные недостатки преодолены. Идея метода основана на том, что анализируется не исходный ряд, а его производная.


Зачёт ребята, дальше можно не читать! А вы, вообще в курсе, что "производная" - это есть вещь, котрую все нормальные специалисты тщательно избегают. А всё потому, что попытка взять дискретную производную резко увеличивает высокочастотные шумы. Так что садитесь за учебники и не позорьтесь.
newfiz
Kluwert,
"попытка взять дискретную производную резко увеличивает высокочастотные шумы"

Да, появляются единичные сильные выбросы. Так мы эти выбросы исключаем.
И всё получается чики-пики. Проверьте, убедитесь.
Нехорошо умничать, не дочитав до конца.
eugen_pcad_ru
Дело не в моих личных предпочтениях. Наиболее мощные инструменты для анализа и обработки сигналов в настоящее время реализованы в звуковых редакторах. Вы свой реализованный алгоритм сравнивать с уже существующими собираетесь или нет?
Вы же используете не просто текстовый формат, а специальным образом сформированный.
Сделал я txt размером 600 Мб с отсчетами сигнала. И после этого Вы предлагаете мне его доработать ручками до Вашего формата. То есть Вы предлагаете не ПОЛЬЗОВАТЬСЯ Вашей программой, а РАЗРАБОТАТЬ соответстсвующую утилиту для представления данных в формат Вашей программы?

P.S.: Не хотите возиться с wav, могу переслать Вам сгенерированный текстовый файл, Вы мне скриншот результата из своей программы, а я Вам из звукового редактора. Подходит?
bookd
Создание конвертера для текстовых файлов не потребует много времени. Можно скрипт написать, а можно прямо в MATLAB сделать.
Главное иметь доходчивое описание формата файла в который надо сконвертировать.
Авторам программы спасибо.
Victor®
Цитата(newfiz @ Oct 17 2012, 15:04) *
В программе SPECTRAND (SPECTRum ANalysis via Derivation) реализован метод спектрального анализа дискретных стохастических рядов, имеющих зашумлённые гармонические компоненты - при этом корректно обрабатываются низкочастотный тренд и скачки в потоке данных.

При традиционном подходе, низкочастотный тренд даёт паразитные вклады в амплитуды спектральных компонент. Эти вклады устраняют - например, в методах, основанных на использовании вариации Аллана, или при быстром преобразовании Фурье - но при этом возможна обработка только таких рядов, в которых отсчёты разделены ОДИНАКОВЫМИ промежутками времени. Так, в национальных Службах времени-частоты, ради возможности спектрального анализа потоков данных, отсчёты специально делаются раз в час, раз в сутки - и при этом возможно нахождение лишь тех спектральных компонент, периоды которых кратны дискрету времени между отсчётами. Что касается скачка в ряде данных, то приходится искусственно, с долей произвола, делать "сшивку" такого ряда.

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



Программа SPECTRAND и её описание свободно доступны на http://newfiz.narod.ru/soft/soft.htm
Для широкого круга пользователей!


Где-то публиковались с "методом"?
Где именно? Ссылки есть?

И простите за грубое слово - но интерфейс конкретно "попугайский"
TSerg
Детский лепет.
О качестве софта вообще молчу.
newfiz
bookd,
очень рад, что Вам это пригодилось! Пользуйтесь!
Аналогов мы не нашли!
bookd
Ага, спасибо что сделали полезную утилиту.
TSerg
"Чушики и нисколько не фонит" (С) brothers С.
TSerg
Не поленился, сгенерил чистый синус в один период и поимел вот такой спектр sm.gif

TSerg
Цитата(newfiz @ Oct 25 2012, 11:23) *
Аналогов мы не нашли!


И не найдете sm.gif
Victor®
Цитата(TSerg @ Oct 26 2012, 11:17) *
Не поленился, сгенерил чистый синус в один период и поимел вот такой спектр sm.gif



sm.gif
А нафиг Вам спектр синуса?
"Прога" не дла этого biggrin.gif
Надо "дискретный стохастический ряд, имеющий зашумлённые гармонические компоненты"
С "низкочастотным трендом и скачками в потоке данных"

Шо есть трЕнд, кстати?
TSerg
Цитата(Victor® @ Oct 26 2012, 15:18) *
А нафиг Вам спектр синуса?


Мне ? Ни на фига sm.gif

Цитата(Victor® @ Oct 26 2012, 15:18) *
Шо есть трЕнд, кстати?


"Плавное" изменение среднего в частности по ср. с общим или локально-генеральная тенденция.
На самом деле - еще та ересь.
thermit
Цитата
TSerg:
На самом деле - еще та ересь


Да все та же сумма низкочастотных гармоник.
TSerg
Цитата(thermit @ Oct 26 2012, 15:34) *
Да все та же сумма низкочастотных гармоник.


И кто-то выдает это за планы "Партии и Правительства". sm.gif


Формируем сигнал, как и задумано авторами:

for i:= 1 to 1000 do..
x := step*i;
rnd := 0.5*(2*Random-1);
if i mod 133 = 0 then shift := shift + 0.3;
if i mod 33 = 0 then pulse := 3*(2*Random-1);
y := Sin(x) + rnd + pulse + shift + 0.3*Sin(3*x) + 0.2*Cos(5*x) + 0.3*Cos(20*x);

Лажа полная:




Я даже боюсь представить, что покажет spectrand, если скормлю ему стохастический процесс с заданными корреляционными свойствами , сформированный из белого шума методом формирующего фильтра sm.gif

P.S.
Это "чистый" синус-композиция
y := Sin(x) + 0.3*Sin(3*x) + 0.2*Cos(5*x) + 0.3*Cos(20*x);


thermit
Да ну... Прикольно так все. Разноцветно...
TSerg
Цитата(thermit @ Oct 26 2012, 16:13) *
Да ну... Прикольно так все. Разноцветно...


Надо поддержать авторов, зря что-ли они на многих ворумах тычат пальчиком в свой уникальный алгоритм sm.gif
newfiz
TSerg,
"Не поленился, сгенерил чистый синус в один период и поимел вот такой спектр"

Да, Вы получили честный спектр - проверьте другим спектроанализатором.
Если не понимаете, что искать спектр по одному периоду - смешно.
Вы бы ещё пол-периода прогнали, или четверть.
Чтобы получить выраженный пик, нужно несколько периодов.
Ваши дальнейшие примеры страдают тем же. Подучитесь, что ли.
Неужели Вы думаете, что программа не тестировалась?
bahurin
Цитата(newfiz @ Oct 29 2012, 09:46) *
TSerg,
"Не поленился, сгенерил чистый синус в один период и поимел вот такой спектр"

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


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

ЗЫ спектр одного периода синусоиды есть одна палка а не как у вас там нарисовано.
newfiz
bahurin,
я ничего не впариваю, а просто предлагаю - потому что есть чем поделиться.
Так что смените тон, пожалуйста.
Ссылка на статью, где описан алгоритм, дана в Описании.

"спектр одного периода синусоиды есть одна палка а не как у вас там нарисовано"

Это спектр бесконечной синусоиды есть одна палка. Я смотрю, Вы тоже крутейший
специалист. По понтам.
thermit
Цитата
newfiz:
Это спектр бесконечной синусоиды есть одна палка.


2 палки. В смысле, 2 дельта-функции.

ps
А апликуха ваша, увы, абсолютно unusable...
TSerg
ТС на заметку:

Генерация сигнала:
a := 0.1;
b := 0.5;
c := 0.1;
d := 0.05;
alpha := 2*cPi*t; // t =0..1.0
Value := a + b*Sin(alpha) + c*Sin(3*alpha) + d*Sin(17*alpha);
P.S.
Число точек: 1030

Для анализа спектра имеем один период основной частоты и пару гармоник ( 3 и 17 ):



После честного и всем понятного FFT на 1024 точки ( без какой-либо оконной обработки ):




P.S.
Что-то примерно в этом роде должна показывать Ваша прога, а иначе - см. посты выше.
mdmitry
Для ТС
Цитата(newfiz @ Oct 31 2012, 08:03) *
Ссылка на статью, где описан алгоритм, дана в Описании.

В статье приведен алгоритм. Обоснования законности (корректности, работоспособности и другие синонимы) таких преобразований там нет, где можно уведеть? Каковы ограничения на применимость алгоритма?

Цитата
Это спектр бесконечной синусоиды есть одна палка.
FFT подразумевает периодичность сигнала. Может быть растекание спектра, как показал TSerg, если укладывается не целое число периодов на обрабатываемой выборке.
TSerg
ТС оперирует прикладной темой связанной с движением спутников, планет, галактик.. etc.
Наблюдаемые параметры движения относятся к непрерывным процессам., поэтому ТС-ру приводить контрпримеры связанные с ограниченной длительностью наблюдаемого сигнала по меньшей мере некорректно.
Если бы он изучал спектры одиночных импульсных сигналов, то в этом случае поправки на спектральное описание были бы уместны, да и то, чисто теоретически.
bahurin
Цитата(newfiz @ Oct 31 2012, 09:03) *
bahurin,
я ничего не впариваю, а просто предлагаю - потому что есть чем поделиться.
Так что смените тон, пожалуйста.
Ссылка на статью, где описан алгоритм, дана в Описании.

"спектр одного периода синусоиды есть одна палка а не как у вас там нарисовано"

Это спектр бесконечной синусоиды есть одна палка. Я смотрю, Вы тоже крутейший
специалист. По понтам.


Открываем матлаб вставляем и запускаем скрипт:

Код
N = 64;
t = (0:N-1)/N;
s = sin(2*pi*t);
subplot(211), stem(t,s), grid, title('один период синусоиды');
S = abs(fft(s));
subplot(212), stem(0:N-1,S), grid, title('спектр одного периода синусоиды');


смотрим график:

Нажмите для просмотра прикрепленного файла

Очевидно что на графике только одна палка S(1) все остальные равны нулю (надеюсь не надо объяснять что такое вторая палка).

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



newfiz
bahurin,
если Вы эту странную матлабовскую картиночку называете спектром -
где с очевидностью нет соответствия ни по периоду, ни по амплитуде - флаг Вам в руки.
Я ничего не навязываю, если помните.

mdmitry,
"FFT подразумевает периодичность сигнала."

Вы это объясните своему коллеге bahurin'у. А то специалиста из себя корчит.

"Обоснования законности (корректности, работоспособности и другие синонимы) таких преобразований там нет, где можно уведеть?"

Всё, чем могу поделиться, я уже предложил. Я Вам ничего не должен, если помните.
Интересно выяснить границы - вперёд, с песнЯми.

"Каковы ограничения на применимость алгоритма?"

См. в Описании: "Пользователь должен понимать..." и т.д.
mdmitry
Цитата(newfiz @ Nov 1 2012, 08:07) *
mdmitry,
"FFT подразумевает периодичность сигнала."

Вы это объясните своему коллеге bahurin'у. А то специалиста из себя корчит.

"Обоснования законности (корректности, работоспособности и другие синонимы) таких преобразований там нет, где можно уведеть?"

Всё, чем могу поделиться, я уже предложил. Я Вам ничего не должен, если помните.
Интересно выяснить границы - вперёд, с песнЯми.

"Каковы ограничения на применимость алгоритма?"

См. в Описании: "Пользователь должен понимать..." и т.д.


К Вам я обращался вежливо, будьте любезны вести себя тоже вежливо (Правила форума)

1. bahurin не мой коллега и я ему ничего не должен объяснять.
2. Ответа на мой вопрос нет ( где можно уведеть?) rolleyes.gif Ссылки на апробацию алгоритма приведите пожалуйста.
3.
Цитата
Пользователь должен понимать, что результаты спектрального анализа имеют смысл, когда период центральной компоненты, во-первых, гораздо меньше интервала времени, на котором анализируется функция, и, во-вторых, много больше характерного дискрета времени, разделяющего соседние точки в анализируемом ряду.

Пользователь должен понимать, что если некоторая компонента испытывает инверсии фазы (скачки на 180 градусов), то амплитуда этой компоненты в результирующем спектре будет значительно уменьшена - вплоть до самого нуля.

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

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

Это не техническая оценка применимости, необходимы количественные оценки.

Следует, что сигналы с фазовой манипуляцией не обрабатываются (броски фазы).

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

Алгоритмы, математика по законодательсту РФ не подлежит патентованию.


TSerg
Поскольку ТС назойливо предлагает свой алгоритм и прогу на многих сайтах и форумах, предлагаю выполнить ему простой тест:

Сгенерированы данные: полиномиальный тренд + пара периодических синусоидальных сигналов (невысокая и целочисленная кратность основному периоду) + гауссовский шум.
Никаких выбросов и сдвигов, равномерная дискретность, процесс стационарен, т.е. вполне обычные условия для задачи обнаружения, распознавания и фильтрации.
Число точек: 1030.

ТС требуется доказать состоятельность его алгоритма и проги:
- обнаружение и "измерение" частот периодических сигналов;
- обнаружение и компенсация тренда ( в идеале - регрессионная зависимость )

Тестовые данные:
http://exfile.ru/382297

График:


Не стоит это предложение рассматривать как "на слабо", поскольку никаких и нигде и ни с чем сравнений алгоритмов ТС с другими, на просторах Инета обнаружено не было.
ТС: просто выполните "учебное" задание.

Сделаете - можно продолжить разговор, нет - "f topku", т.е. только для "внутриутробного" использования ТС-ром.
bahurin
Цитата(newfiz @ Nov 1 2012, 09:07) *
bahurin,
если Вы эту странную матлабовскую картиночку называете спектром -
где с очевидностью нет соответствия ни по периоду, ни по амплитуде - флаг Вам в руки.
Я ничего не навязываю, если помните.

Почему нет соотвествия по периоду? Частота сигнала 1 Гц палка на частоте 1 что не так? Амплитуда просто должна быть поделена на N если хотите получить честное значение 0.5. В скрипте 6 строчек с какой именно вы не согласны?
TSerg
Так, вроде уже понятно - ТС согласен только с собственным мнением.

P.S.
Особенно замечательно смотрится его мнение о практическом анализе непериодического сигнала на бесконечном интервале, как в плюс, так и в минус.
newfiz
Блаженны те, кому уже понятно.
Не кашляйте, не чихайте!
Приятно было с вами поделиться!
mdmitry
Цитата(newfiz @ Nov 2 2012, 11:06) *
Блаженны те, кому уже понятно.
Не кашляйте, не чихайте!
Приятно было с вами поделиться!

К сожалению, ожидаемый результат ответов на вопросы crying.gif
Дальнейшее обсуждение для себя считаю бессмысленным. Последую совету TSerg'а.
thermit
Цитата
newfiz:
Не кашляйте, не чихайте!
Приятно было с вами поделиться!


Справедливости ради надо сказать, что несколько странная реакция на вполне конструктивную критику...
Фтопку однозначно.

ps
матлаб рулит.
Victor®
Цитата(newfiz @ Nov 2 2012, 11:06) *
Блаженны те, кому уже понятно.
Не кашляйте, не чихайте!
Приятно было с вами поделиться!


Monsieur Гришаев А.А.
(я так позозреваю, что это многоуважаемый в узких кругах newfiz
согласно надписи на http://newfiz.narod.ru/
Связь с автором материалов и сайта:
E-mail: newfiz@yandex.ru
Гришаев А.А. )

Потрудитесь опубликоваться хоть в каком-то журнале - хоть в Мурзилке.
Кроме Вашего сайта их почему-то никто не публикует. Странно это как-то.... biggrin.gif
Походу - всемирный заговор олд-фэшн физиков. Обратитесь в Лигу Наций.

Для адекватных форумчан http://dxdy.ru/topic54840.html
thermit
Цитата


А. Это многое объясняет...
_Ivana
Справедливости ради надо сказать (С), что как ошибки альтернативщика критиковать и фтопку посылать, то все тут как тут, а как выдать хоть какую-нибудь реакцию на, например, найденный мной метод интерполяции, который точнее широко применяющегося при том же количестве операций - так никого, включая Бахурина и др.

ЗЫ а в солидных журналах печатают разное - например, поищите статьи Симона Эльевича Шноля в УФН, так что это не показатель.
thermit
Цитата
_Ivana:
найденный мной метод интерполяции


Угу.
1 До тебя этот метод человек 100500 нашли...
2 Ничего принципиально нового в твоем методе нет.
3 как вывод - гении достали своей гениальностью...
4 Когда уже администрация этого форума наведет порядок и забанити гениефф навечно???
bookd
Цитата(thermit @ Nov 4 2012, 00:35) *
Угу.
1 До тебя этот метод человек 100500 нашли...
2 Ничего принципиально нового в твоем методе нет.
3 как вывод - гении достали своей гениальностью...
4 Когда уже администрация этого форума наведет порядок и забанити гениефф навечно???

Любителей банить налево и направо 99 человек из 100, а программу написать может только один. Я б банил как раз этих самых, "конструктивных критиков", от которых яду больше чем пользы sm.gif
thermit
прежде, чем написать ..........., попробуй что-нить полезное написать. Тогда глупость тебе простят. Иначе, будешь читать на форуме собственную .........
_Ivana
Цитата(thermit @ Nov 4 2012, 02:13) *
прежде, чем написать хуйню, попробуй что-нить полезное написать. Тогда глупость тебе простят. Иначе, будешь читать на форуме собственную хуйню...

С этим трудно не согласиться. А где можно ознакомиться, например, с вашими полезными работами по теме?
Flood
Цитата(Victor® @ Nov 2 2012, 23:45) *
согласно надписи на http://newfiz.narod.ru/


Ну вот, опять мы все в Матрице... sm.gif
TSerg
"Каждый сходит с ума по своему, но не каждый может увлечь этим массы" (С) Jeer
AndrewN
QUOTE (Flood @ Nov 4 2012, 12:40) *
Ну вот, опять мы все в Матрице... :)
Не все, не все. Вы просто не хотите знать правду о физическом мире. Не хотите оставить мокрое место от ортодоксальных теоретических доктрин.

Почему вы не хотите дифференцировать ряды случайных чисел?!

Жду типичную реакцию больших учёных, чтоб её продифференцировать!

Victor®
Цитата(AndrewN @ Nov 10 2012, 19:13) *
Не все, не все. Вы просто не хотите знать правду о физическом мире. Не хотите оставить мокрое место от ортодоксальных теоретических доктрин.


А почему Вы решили, что мы правду не знаем?
И почему решили, что Ваша правда правдивее?

Какие реальные физ. эксперименты проводили, кроме словоблудия?
AndrewN
QUOTE (Victor® @ Nov 10 2012, 22:47) *
А почему Вы решили, что мы правду не знаем?
Да я просто посмотрел на этот бред на ньюфиз дот народ дот ру, по ссылке Flood'а - и пошутил, гмм, может быть слегка грубовато. А вы подумали, что я серьёзно? Посмотрите внимательно на пост номер 1 в этой ветке, и после такого кто-то может требовать от меня серьёзности? :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.