|
Быстрое преобразование Фурье не для степени 2, как довести число отсчетов до стпени двойки |
|
|
|
 |
Ответов
(1 - 99)
|
Sep 14 2011, 14:32
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sergey Makarov @ Sep 14 2011, 16:45)  Стоит задача осуществить быстрое преобразование Фурье для 500 отсчетов. А мне нули не нравятся, спектр совсем другой. Существует множество алгоритмов для 500 отсчетов, например Винограда(раза в полтора медленнее чем FFT на 512 точек), или FFTW (http://www.fftw.org)авторы называют его самым быстрым для любого числа точек и текст программы приведен.
Сообщение отредактировал SPACUM - Sep 14 2011, 14:38
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 14 2011, 21:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Sep 15 2011, 02:26)  GetSmart, какая палка?
fontp правильно написал. Везде надо искать подвох  И вы с fontp обманщики, мягко говоря, те ещё. Спектр, в виде частотного разрешения, может и не меняется, но амплитуда искажается.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 15 2011, 05:54
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 19-10-05
Из: Россия, г.Чебоксары
Пользователь №: 9 845

|
Спасибо большое за ответы! Кое что уже началось проясняться  Не могли бы еще ответить на один небольшой вопрос. Есть массив из 500 точек, грубо говоря это отсчеты для 50тигерцового сигнала с отсчетом 40 мкс за один период. А мне надо допустим разложить сигнал с основной частотой 30Гц, тогда массив получается 833 точки на один период. Для сигнала с еще меньшей частотой, массив будет еще больше. Отсюда вопрос, надо ли знать для преобразования Фурье частоту раскладываемого сигнала? или в результате разложения частота основной гармоники и так станет известной? Вроде как судя по формулам частота раскладываемого сигнала нигде не фигурирует, а делается предположение что массив данных отсчетов значений функций это есть значения за одни период, и дальше этот сигнал будет повторяться. ТО есть я могу для 30герцового сигнала взять теже 500 отсчетов? или минимум должен взять кол-во отсчетов снятое за период сигнала? Извините за дилетантские вопросы, с обработкой цифровых сигналов пока столкнулся впервые. Цитата(getch @ Sep 14 2011, 21:51)  спасибо за приведенную ссылку  но вопрос заключался немного в другом, есть аппаратная реализация в ДСП по алгоритму двойки, и мне надо довести 500 отсчетов до 512 каким то образом, чтоб не тратиь вычеслительные ресурсы контроллера, используя аппаратный модуль. Цитата(Alexey Lukin @ Sep 15 2011, 01:26)  всё зависит от задачи. В абсолютном большинстве задач выгоднее дополнить сигнал нулями, чем считать FFT "неправильного" размера. согласен с вами. А например я могу весь диапазон измеряемых сигналов дискретировать 512 отсчетами? буть то 10Гц сигнал, либо 60Гц. Сильно это будет влять на точность результата?
|
|
|
|
|
Sep 15 2011, 06:22
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sergey Makarov @ Sep 15 2011, 09:54)  Сильно это будет влять на точность результата? Это зависит от того, что Вы называете точностью. И какую точность считаете достаточной. Если Вы уточните Ваши требования, то ответ будет более правильный. Может БПФ совсем не обладает требуемой точностью. А Alexey Lukin привел пример конечного сигнала (ядро фильтра) тут и дополнять нечего слева и справа от ядра только нули.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 15 2011, 06:43
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 19-10-05
Из: Россия, г.Чебоксары
Пользователь №: 9 845

|
Цитата(SPACUM @ Sep 15 2011, 10:22)  Это зависит от того, что Вы называете точностью. И какую точность считаете достаточной. Если Вы уточните Ваши требования, то ответ будет более правильный. Может БПФ совсем не обладает требуемой точностью. А Alexey Lukin привел пример конечного сигнала (ядро фильтра) тут и дополнять нечего слева и справа от ядра только нули. первоначально хотел бы добавить что анализируемый сигнал является результатом оцифровки синусоидальных токов и напряжений во время частотного регулирования электроприводом, а преобразование фурье необходимо для анализа основных гармоник (например пяти) составляющих этот сигнал с исключением оставшихся, для последующей развертки и анализа сигнала
|
|
|
|
|
Sep 15 2011, 06:45
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Alexey Lukin: Результат ДПФ — это и есть спектр. Как скажете...
|
|
|
|
|
Sep 15 2011, 07:05
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sergey Makarov @ Sep 15 2011, 10:43)  анализируемый сигнал является результатом оцифровки синусоидальных токов и напряжений во время частотного регулирования электроприводом, Гармоники весьма малы. И дополнение нулями и ресемплинг по Фарроу с обычным FFT пожалуй неприемлемы по точности. Можно попробовать 6 нулей слева + сигнал + 6 нулей справа и применить окно с низкими значениями по краям Натолла например. Хотя для определения гармоник лучше использовать окно флаттоп.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 15 2011, 07:18
|

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

|
QUOTE (bookevg @ Sep 15 2011, 11:02)  В книге Гольденберга 1985г на стр.220, если не выполняется условие 2^N дополняют массив нулями при спектральном анализе, но вот нет математического обоснования данного требования. Как я понимаю автор темы просит дать математич.обоснование разрешения дополнения массива до нужного размера какими то величинами. Если отвлечься от того тонкого вопроса насколько ДПФ вообще соответствует физическому спектру сигнала. То в книге Марпла "обосновыется" для значительного, кратного добавления нулей. В этом случае очевидно. Смысл в том, что если изначально было N точек, то было и N ортогональных функций базиса, и по этому базису можно разложить всё что угодно, в том числе и те добавленые новые гармоники, соответствующие длине сигнала 2*N Там в чистом виде синки взвешивают В случае некратного дополнения на пальцах трудно сказать, но принцип примерно тот же - один базис выражается через другой. Если это расписать, то и получится, не то что доказательство, а представление сигнала через соответствующие "спектры" QUOTE (Sergey Makarov @ Sep 15 2011, 10:43)  первоначально хотел бы добавить что анализируемый сигнал является результатом оцифровки синусоидальных токов и напряжений во время частотного регулирования электроприводом, а преобразование фурье необходимо для анализа основных гармоник (например пяти) составляющих этот сигнал с исключением оставшихся, для последующей развертки и анализа сигнала Для сингулярных спектров типа синусов (ширина спектра меньше бина) ДПФ в чистом виде (без спектральных окон) не является вообще адекватным инструментом анализа. Результат будет полностью зависить от того куда палка легла по отношению к бину ДПФ (не даст соврать гурукилер) Нужно использовать спектральные окна (и, возможно, добавление большого числа нулей и интерполяцию спектра, если нужно получить измерительную точность оценки частот и амплитуд) Размазывая спектр шире бина окном, мы получаем стабильные результаты, пусть даже теряя в разрешении. Если просто посмотреть - достаточно добавить нулей и взвесить окном. Если нужно промерять синусоиды с предельной точностью - то по ссылке https://ccrma.stanford.edu/STANM/stanm/node3.htmlисчерпывающее исследование
|
|
|
|
|
Sep 15 2011, 08:22
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(bookevg @ Sep 15 2011, 11:02)  дать математич.обоснование разрешения дополнения массива до нужного размера какими то величинами. Ну все просто: ошибка = спектр обнуленного куска сигнала. Если обнуляется при переходе через нуль, то мало, а если на максимуме, то больше. Самый простой совет: синхронизировать начало семплирования с переходом через нуль и вставлять Ваши нули перед сигналом. Ошибки останутся, но гармоники прыгать перестанут.
Сообщение отредактировал SPACUM - Sep 15 2011, 08:42
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 15 2011, 08:28
|

Местный
  
Группа: Участник
Сообщений: 240
Регистрация: 20-09-08
Пользователь №: 40 347

|
Почитайте для начала тута и здеся.
|
|
|
|
|
Sep 15 2011, 09:04
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sergey Makarov @ Sep 15 2011, 12:08)  Все таки для анализа сигнала посредством ДПФ необходимо брать отсчеты за период этого сигнала и доводить их степени двойки?или можно использовать фиксированное окно из 512 отсчетов полученный в результате оцифровки? Да хоть нечетное число. Если у Вас есть алгоритм БПФ на это число отсчетов, то получите результат быстрее, если нет, то по точкам можете посчитать. Если вставите нули - получите ошибку в зависимости от того какой участок сигнала так представили. Тема измерения гармоник силовой сети обсуждалась. Резюме: использовать окно флаттоп и достаточное число отсчетов, чтобы широкие лепестки флаттоп не пересекались. Максимумы спектра и есть нужные Вам амплитуды гармоник.
Сообщение отредактировал SPACUM - Sep 15 2011, 09:09
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 16 2011, 20:59
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Sep 15 2011, 03:55)  Ничего не искажается! Наоборот, становится видно больше правильных деталей. А спектры некоторых сигналов (например, ядер фильтров) без дополнения их нулями перед ДПФ вообще некорректно рассматривать. Оставим в покое ядра фильтров. Но по поводу "становится видно больше правильных деталей" очень любопытно. ДПФ/БПФ всего лишь свёртка с синусом aka интеграл. Ну а если мы зануляем часть функции, то с чего бы это результат интеграла функции не изменится? В ДПФ/БПФ в конце идёт нормировка результата и она расчитана на 2^n, допустим 512 точек. Синус исходника был на интервале 500 точек. Значит ошибка нормировки 500/512 = 0,97656. Иногда это неважно, иногда очень важно. А уж если кто-то пожелает в разы увеличивать блок нулями в своих корыстных целях, то вообще мама не горюй. Но это вообще-то пока ещё мелкий недостаток, который легко перенормируется. Гораздо серьёзней, когда блоки дополняются нулями и из них выцепляются низшие гармоники. Тут уже идут значительные фазовые искажения в дополнение к амплитудным. На 1-2-3 гармониках блока, хотя в зависимости от желаемой точности и на 10-20 (грубо говоря). Оконные функции само собой сильно улучшают ситуацию тем, что они львиную долю информации берут из центра блока, а нули дополняются по краю/краям. Цитата(fontp @ Sep 15 2011, 12:18)  Для сингулярных спектров типа синусов (ширина спектра меньше бина) ДПФ в чистом виде (без спектральных окон) не является вообще адекватным инструментом анализа. Результат будет полностью зависить от того куда палка легла по отношению к бину ДПФ (не даст соврать гурукилер) Гурукиллер Вас всегда поправит  А вообще, что за дискриминация спектров? Все спектры имеют право встречаться в жизненных ситуациях. Вот пример глюков "Что такое эффект размазывания" http://psi-logic.narod.ru/fft/fft9.htmИМХО, непрерывный спектр существует только у частотно-модулированных сигналов или недооцифрованных. Но у недооцифрованных это просто недостаток информации уже после оцифровки. Если взять исходный аналоговый сигнал и оцифровать его точнее, то спектр "очистится" и в пределе станет прерывным. Суть в том, что многие сигналы в идеале такие, но идеально их восстановить оцифровкой очень трудно и порой не нужно. А нужно понимать с какой точностью получился результат и от чего он зависит. То бишь с какой точностью получается результат при пользовании каким-то инструментом, например БПФ, да ещё и с добавлением нулей. Чутьё мне подсказывает, что частотно-модулированные сигналы, возможно, могут тоже выродиться в прерывные, но уже по обратной причине. Из-за переоцифровки, то бишь когда длина блока равна бесконечности. Но это скорее математическая мутота, не имеющая практической ценности. Upd. Хотя есть ещё третий вариант непрерывного спектра "в жизненных ситуациях". Когда разные сигналы накладываются друг на друга. Даже если один из них является идеальным с прерывным спектром, то другие могут быть с непрерывным. В данном случае переоцифровка (в пределе) сигнала ситуацию не разрулит, т.к. предел ограничен "вредным" сигналом. Эта ситуация вообще чаще всего бывает. Идеальный ЦОС-овик понимая все нюансы всех этапов прохождения своего сигнала будет просто приближаться к мат.пределу точности при правильном использовании инструментов. Правильно понимая достоверность результата при этом. Upd2 Я бы с удовольствием замутил разговор страниц на 50 на эту тему. Только съезжу в отпуск на Бора-Бора
Сообщение отредактировал GetSmart - Sep 16 2011, 23:16
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 17 2011, 02:39
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Sep 17 2011, 00:59)  ДПФ/БПФ всего лишь свёртка с синусом aka интеграл. ДПФ это не свёртка. ДПФ это умножение сигнала на матрицу, которая свёрткой не является. Цитата(GetSmart @ Sep 17 2011, 00:59)  Ну а если мы зануляем часть функции, то с чего бы это результат интеграла функции не изменится? Дополнение сигнала нулями — это отнюдь не зануление части сигнала. Представьте, что у вас есть сигнал длины 512 точек и его копия, дополненная нулями до 1024 точек. ДПФ от второго сигнала будет совпадать с ДПФ от первого на сетке частот первого ДПФ. В этом смысле спектр не искажается. Но у второго ДПФ будет информация о сигнале на промежуточных частотах — результаты скалярных произведений с промежуточными частотами. Именно это я и называю полезными деталями. В случае, например, синусоидального сигнала эти промежуточные частотные отсчёты позволят вам более точно узнать частоту сигнала. А в случае фильтра — получить его АЧХ (которая, как известно, является непрерывной функцией частоты) в промежуточных точках по частоте, найти нули АЧХ и т.п. Цитата(GetSmart @ Sep 17 2011, 00:59)  В ДПФ/БПФ в конце идёт нормировка результата и она расчитана на 2^n, допустим 512 точек. Синус исходника был на интервале 500 точек. Если дополнение нулями не кратное, то полученный спектр будет дискретной выборкой из непрерывного спектра исследуемого отрезка сигнала. Это может быть плохо или хорошо, в зависимости от задач. Чаще всего это хорошо, по тем же причинам, которые описаны выше: частотное разрешение анализа получается выше. Цитата(GetSmart @ Sep 17 2011, 00:59)  Гораздо серьёзней, когда блоки дополняются нулями и из них выцепляются низшие гармоники. Тут уже идут значительные фазовые искажения в дополнение к амплитудным. Что-то не понял мысли... Цитата(GetSmart @ Sep 17 2011, 00:59)  ИМХО, непрерывный спектр существует только у частотно-модулированных сигналов или недооцифрованных. И этой тоже...
|
|
|
|
|
Sep 17 2011, 08:37
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Sep 17 2011, 07:39)  ДПФ это не свёртка. ДПФ это умножение сигнала на матрицу, которая свёрткой не является. ДПФ это свёртка с синусом и косинусом. И интеграл само собой. Цитата(Alexey Lukin @ Sep 17 2011, 07:39)  Дополнение сигнала нулями — это отнюдь не зануление части сигнала. Представьте... Я не писал зануление части сигнала. Не надо меня искажать. Если функция ФФТ юзает 512 точек, из которых 500 присутствуют, остальные нулевые, то это есть зануление части функции. Равноценно тому, что было получено 512 действительных точек, а потом 12 было занулено. Эквивалентно потери части информации в функции 512 точек. Однако львиная доля информации ещё осталось. Результат, относительно случая с полным набором точек будет искажён. Насколько велики искажения - (0.01%...ХХ%) зависит от многих нюансов. Часть я описал. Если что-то непоняли, бывает. Это неудивительно, т.к. в книжках многое не пишут чтобы не перегружать читателя и/или не вызывать у читателя какие-то сомнения. Но если понимаете "физику процесса", то сразу понимаете море подводных камней, причём там, где никто никаких сомнений в книжках не высказывал.
Сообщение отредактировал GetSmart - Sep 17 2011, 08:55
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 17 2011, 10:30
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Alexey Lukin: ДПФ это не свёртка. ДПФ это умножение сигнала на матрицу, которая свёрткой не является. Вообще-то ДПФ можно представить и так и эдак. Например БПФ винограда основан на представлении дпф как свертки и вычислении длинной свертки через короткие. Цитата GetSmart: в книжках многое не пишут чтобы не перегружать читателя и/или не вызывать у читателя какие-то сомнения.Но если понимаете "физику процесса", то сразу понимаете море подводных камней, причём там, где никто никаких сомнений в книжках не высказывал. Да нормально все в книжках пишут. Просто некоторые гурукиллеры читают их через 3 строки, а потом начинают с энтузиазмом преодолевать подводные камни.
|
|
|
|
|
Sep 17 2011, 11:49
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Alexey Lukin, я кажется понял ваше непонимание процесса. Вы бы раскопали любой исходник ДПФ (не математическую формулу учебника, а код) особенно когда вычисляются не все гармоники, а только часть, что есть именно ДПФ, а не БПФ. И там очевидно, что гармоника идёт через нормированный интеграл. И если у входных данных функции (точнее у данных, принадлежащих гармонике) часть данных нулевая, то интеграл будет иметь меньшее значение, чем у полных данных. А соответственно и окончательный результат. То, что все другие способы вычисления ДПФ дают аналогичный результат, я почти уверен. Видимо когда ДПФ кажется умножением на матрицу, то в этом процессе волшебным способом всё решается и понимать не надо. А от дополнения нулями результат становится всё лучше и лучше  Цитата(thermit) Да нормально все в книжках пишут. Просто некоторые гурукиллеры читают их через 3 строки, а потом начинают с энтузиазмом преодолевать подводные камни. Где логика? 20 постов почти все утверждают, что от дополнения нулями результат не хуже. Это я так книжки читаю или это другие нахватались знаний не из книжек. Я зашёл чтобы поправить чужие заблуждения. И это моё мнение о том почему так происходит. Если бы в учебниках/книгах все нюансы/подводные камни были бы хотя бы обозначены, то таких глюков в рассуждениях было бы значительно меньше. Upd. Ещё более наглядное объяснение. ДПФ/БПФ в качестве результата даёт амплитуду/фазу гармоники интегрально за весь блок. Если в блоке 1/3 данных обнулена, то ессно интегральное значение амплитуды будет меньше на 1/3. Но ещё фишка в том, что это обнуление порождает "запредельные" гармоники, которых в исходном сигнале не должно было быть, то есть с частотой больше Fd/2 и меньше 1/Т. Именно они будут портить качество/достоверность результата уже в таком виде, что простая перенормировка не поможет.
Сообщение отредактировал GetSmart - Sep 17 2011, 12:01
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 17 2011, 15:26
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Sep 17 2011, 12:37)  ДПФ это свёртка с синусом и косинусом. И интеграл само собой. Повторю ещё раз: ДПФ это не свёртка. Откуда вы это взяли? Цитату из книжки привести можете? Вы могли прочитать, что "скользящее ДПФ — это набор свёрток". Могли прочитать, что "ДПФ можно выразить (вычислить) через свёртку". Но говорить, что "ДПФ это свёртка" — всё равно, что говорить, что "число пи — это сумма бесконечного ряда". Конечно, число пи можно вычислисть как сумму ряда, но это отнюдь не определение. Прежде чем укорять меня в невнимательном чтении книжек лучше сами с ними разберитесь для начала... Цитата(GetSmart @ Sep 17 2011, 12:37)  Я не писал зануление части сигнала. Не надо меня искажать. Писали, и до сих пор пишете. Мы с вами просто с разных позиций говорим: вы считаете, что сигнал из 512 точек у вас был, а я считаю, что его никогда не было, а было только 500. Спорить бесполезно. Цитата(thermit @ Sep 17 2011, 14:30)  Вообще-то ДПФ можно представить и так и эдак. Например БПФ винограда основан на представлении дпф как свертки и вычислении длинной свертки через короткие. Как я уже написал выше, представить-то можно, только это не есть определение. И в этом представлении сворачивается не исходный сигнал с синусами и косинусами, как пишет GetSmart, а другие сигналы. Цитата(GetSmart @ Sep 17 2011, 15:49)  Alexey Lukin, я кажется понял ваше непонимание процесса. Вы бы раскопали любой исходник ДПФ (не математическую формулу учебника, а код) особенно когда вычисляются не все гармоники, а только часть, что есть именно ДПФ, а не БПФ. И там очевидно, что гармоника идёт через нормированный интеграл. И если у входных данных функции (точнее у данных, принадлежащих гармонике) часть данных нулевая, то интеграл будет иметь меньшее значение, чем у полных данных. А соответственно и окончательный результат. Вообще-то я неплохо знаком с исходниками ДПФ  И даже защитил диссертацию практически по спектральному анализу. Вы мне пытаетесь толковать про какую-то тривиальщину: нормировку коэффициентов, "интегралы", "запредельные гармоники"... А я вам про практический результат о форме спектра.
|
|
|
|
|
Sep 17 2011, 16:18
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Sep 17 2011, 20:26)  Прежде чем укорять меня в невнимательном чтении книжек лучше сами с ними разберитесь для начала... Взял уже любой исходник кода и разобрался. Или это непонимание из серии теоретика с практиком? Мне например гораздо важнее что практически происходит с дискретным сигналом, а не теоретически (точнее должно происходить). Теоретики любят черезмерно упрощать свои входные данные и особенно идеальность преобразований. А так же сувать везде бесконечность. Всё это особенно когда учат других. Как пример первые 5 постов здесь. Ну никто не догадался сказать о мало того что искажении амплитуды, но и о искажениях младших гармоник. Хотя какие гармоники ТС интересовали было не ясно, а значит вполне вероятно и младшие тоже. Цитата Писали, и до сих пор пишете. Мы с вами просто с разных позиций говорим: вы считаете, что сигнал из 512 точек у вас был, а я считаю, что его никогда не было, а было только 500. Спорить бесполезно. Вам видней, полезно или нет. Однако я считаю что был сигнал 500 точек, но в функцию, требующую 512 точек засунули 500, остальные нули. То есть не что-то там было где-то, а аргумент функции (который должен быть информативным) частично занулили. Дальше не повторяю. Цитата Как я уже написал выше, представить-то можно, только это не есть определение. И в этом представлении сворачивается не исходный сигнал с синусами и косинусами, как пишет GetSmart, а другие сигналы. В данном случае определений можно дать множество одного и того же сложного действия. Хотя любопытно к какому определению апеллируете вы. (слово интересное - даже гугл не понял как правильно писать - аппелируете или апеллируете  хотя инет = большая свалка) Цитата И даже защитил диссертацию практически по спектральному анализу. Вы мне пытаетесь толковать про какую-то тривиальщину: нормировку коэффициентов, "интегралы", "запредельные гармоники"... А я вам про практический результат о форме спектра. Серьёзно? А по постам и не скажешь  Наверное суровые профессионалы считают, что тривиальщина вообще не стоит упоминания. И такие же профи пишут учебники. Судя по этому Цитата Чем больше добавляется нулей, тем точнее получается спектр сигнала. Конечно, это тот же самый спектр, но на более плотной сетке частот Диссертации там, где вы защищали, принимают неглядя. PS Если вас не затруднит, то расскажите поподробней это Цитата Ничего не искажается! Наоборот, становится видно больше правильных деталей "Правильные детали" заинтриговали
Сообщение отредактировал GetSmart - Sep 17 2011, 16:56
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 17 2011, 16:58
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Sep 17 2011, 20:18)  Вам видней, полезно или нет. Однако я считаю что был сигнал 500 точек, но в функцию, требующую 512 точек засунули 500, остальные нули. То есть не что-то там было где-то, а аргумент функции (который должен быть информативным) частично занулили. Дальше не повторяю. Ок, мы пришли к согласию в этом вопросе. Цитата(GetSmart @ Sep 17 2011, 20:18)  В данном случае определений можно дать множество одного и того же сложного действия. Хотя любопытно к какому определению аппелируете вы. Да какое там сложное действие... Вот определение, другого просто не бывает: Как видите, ни свёртки, ни интегралов в нём нет. Есть набор скалярных произведений — проекция вектора на другой базис (либо умножение на матрицу, что то же самое). Цитата(GetSmart @ Sep 17 2011, 20:18)  Если вас не затруднит, то расскажите поподробней это "Правильные детали" заинтриговали Я уже написал выше более подробно: "В случае, например, синусоидального сигнала эти промежуточные частотные отсчёты позволят вам более точно узнать частоту сигнала. А в случае фильтра — получить его АЧХ (которая, как известно, является непрерывной функцией частоты) в промежуточных точках по частоте, найти нули АЧХ". Разве это не "полезные, правильные детали"?
|
|
|
|
|
Sep 17 2011, 17:16
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Sep 17 2011, 21:58)  Вот определение, другого просто не бывает: Как видите, ни свёртки, ни интегралов в нём нет. Есть набор скалярных произведений — проекция вектора на другой базис (либо умножение на матрицу, что то же самое). Хотел было попросить привести определение свёртки, но... сэкономлю время. Сумма и интеграл = аналоги, только сумма применяется в ограниченном множестве, точнее просто во множестве, но обычно в ограниченном. Так что сумма aka интеграл уже есть. Свёртка - это сумма/интеграл произведения функций. А в данном случае функция = комплексный синус (или как там он по фен-шую называется?  может формула Эйлера) Upd. В дополнение к интегралу: в зависимости от типа ПФ в "определении" (хотя по-моему это называется формулой) будет либо интеграл, либо сумма. Но "физика процесса" одна и та же. В дополнение к свёртке: можно считать комплексный синус aka формулу Эйлера ядром узкополосного фильтра. То есть свёртка происходит с ядром фильтра. И на выходе имеем отфильтрованную одну гармонику.
Сообщение отредактировал GetSmart - Sep 17 2011, 18:11
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 17 2011, 18:49
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Дальнейший спор мне представляется бессмысленным. Прежде чем спорить, неплохо бы разобраться с простейшими понятиями: комплексный синус и комплексная экспонента, сумма и интеграл, свёртка и ДПФ, "запредельные гармоники" и боковые лепестки. А то получается, как в рассказе Шукшина "Срезал"... Чтобы проиллюстрировать полезные детали спектра, открывающиеся при дополнении сигнала нулями, специально для вас (и других читателей форума) приготовил иллюстрации. На первой — синусоида с частотой 1 кГц. Спектр без дополнения нулями не позволяет даже толком определить её частоту. При дополнении нулями не только проявляется частота в 1 кГц, но и становятся отчётливо видны боковые лепестки окна. На второй — ядро НЧ-фильтра. Спектр без дополнения нулями производит замечательное (но неверное!) впечатление об АЧХ фильтра. При дополнении нулями проявляется наличие значительных пульсаций, как в полосе пропускания, так и в полосе подавления. Становятся также видны нули фильтра. Это и есть реальная АЧХ.
|
|
|
|
|
Sep 17 2011, 19:29
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Sep 17 2011, 23:49)  Дальнейший спор мне представляется бессмысленным. Вот тут я пожалуй соглашусь. Спорить с человеком, который не понимает что и почему у него отображается на графиках наверно бесполезно. Блажен кто верует, что спектр чистого синуса имеет вид как на первой картинке. Однако прикольно осознавать, что не меняя синал, но слегка меняя условия оцифровки спектр одного и того же сигнала будет заметно меняться. Это явно чудо, т.к. как утверждал Котельников, соблюдая условие верхней частоты оцифровки сигнал, после дискретизации во времени, представляется без потери информации. При этом линейное его фурье-преобразование почему-то может давать разные спектры. PS. Спектр - это не одна самая высокая палка. Спектр это полный набор гармоник. PPS. Если хотите поточнее увидеть спектр своего синуса - используйте оконную функцию. Только не говорите, что результат будет менее достоверный. Ну а потом сравните со своим на первой картинке. И потом уже можно приступать к обсуждению "полезных, правильных деталей".
Сообщение отредактировал GetSmart - Sep 17 2011, 19:33
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 17 2011, 21:12
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
О! Наконец-то Гуру-киллер сказал умную вещь! У меня даже появилось желание ответить вам про весовые окна. Моё весовое окно прямоугольное, но в данном случае это не меняет вывода о пользе дополнения нулями. С другим весовым окном будет то же самое: от дополнения нулями и частота станет видна точнее, и боковые лепестки окна. Цитата(thermit @ Sep 18 2011, 00:43)  inf S(w)=SUM( x(n) * exp(-j*w*n) ) n=-inf
Спектр дискретного сигнала. Согласен, но это для бесконечного сигнала. Разве такие бывают на практике? Да и если в формулу подставить бесконечную синусоиду, сумма разойдётся. Я согласен с трактовкой Гуру-киллера: спектр — это общее понятие, они бывают разных видов в зависимости от ситуации и от вида анализа сигнала. Кстати, Википедия тоже так считает.
|
|
|
|
|
Sep 18 2011, 07:20
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Сомневающимся, что дополнение нулями улучшает представление спектра (не увеличивает разрешение по частоте, а просто показывает больше точек в том же спектре), посмотрите Р. Лайонс. Цифровая обработка сигналов, рис 3.21. Поначалу удивляет, это да...  для Alexey Lukin
по первой картинке хочу спросить - сколько точек было ДПФ до заполнения нулями и после - 512 и ...? Насчет свертки - свертка принимает две последовательности во временной области и выдает результат во временной области. Еще бывает и в частотной, но тоже - и входы, и выходы. P.S. было бы неплохо, чтобы не только GetSmart дополнял и поправлял fontp, но и наоборот.
|
|
|
|
|
Sep 18 2011, 15:36
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(ViKo @ Sep 18 2011, 11:20)  для Alexey Lukin по первой картинке хочу спросить - сколько точек было ДПФ до заполнения нулями и после - 512 и ...? ... и 131072. Взял побольше, чтобы показать, к чему всё встремится.
|
|
|
|
|
Sep 20 2011, 06:38
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Sergey Makarov @ Sep 20 2011, 08:00)  А можно поближе к земным материям?... БПФ потому так называется, что количество выборок кратно степени 2 (ну, или 4, например). Конечно, именно столько и нужно брать выборок. А то, что период сигнала не уложится ровненько в этот массив, так для этого существуют окна, которые больше или меньше давят края этого массива. А вы книжку скачайте, что я выше упомянул. Она имеется на просторах интернет (и здесь, рядом, тоже была...) . Там всё просто и красиво изложено.
|
|
|
|
|
Sep 20 2011, 07:06
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 19-10-05
Из: Россия, г.Чебоксары
Пользователь №: 9 845

|
Цитата(ViKo @ Sep 20 2011, 10:38)  А вы книжку скачайте, что я выше упомянул. Она имеется на просторах интернет (и здесь, рядом, тоже была...) . Там всё просто и красиво изложено. Да, да! За книжку отдельное спасибо! Начал уже читать, все изложено просто супер. Как раз для меня
|
|
|
|
|
Sep 20 2011, 09:33
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 27-05-09
Из: Москва
Пользователь №: 49 648

|
Мне нравится как дискуссия по поводу спектра (в большинстве случаев) плавно уходит в метафизику =) Немного отсебятенки к определению спектра: Основополагающим стержнем держащим все здание под названием "спектр, спектральный анализ" является понятие о гармонической природе всех сигналов, т.е. "вера" (именно вера) в то, что у "чистого" синуса спектр бесконечно узкий (одна палка) и только эта "вера" позволяет нам утверждать что любой сигнал можно разложить в ряды Фурье (как правило оговаривается то, что сигнал должен быть "гармоническим", чтобы все было чисто с юридической точки зрения), а соответственно и вычислить спектр. Ну а теперь если подумать, существуют ли гармонические сигналы? Конечно же нет, это сугубо математическая абстракция, ведь невозможно эмпирически доказать обратное (АЦП с частотой дискретизации бесконечность никогда не будет создан). Тем самым осуществляя преобразование Фурье мы самолично принимаем решение о входе в мир абстракций и уходе от "реальности". Вроде, пока что, ныне существующего понятия о сигналах вполне достаточно для реальных задач. Могу ошибаться конечно же=)
|
|
|
|
|
Sep 20 2011, 11:17
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(almost @ Sep 20 2011, 12:33)  Мне нравится как дискуссия по поводу спектра (в большинстве случаев) плавно уходит в метафизику =) ... Ну а теперь если подумать, существуют ли гармонические сигналы? ... Могу ошибаться конечно же=) Ничего страшного, если мы пытаемся дойти собственными размышлениями до понимания. Даже, наоборот. Но в данном случае спектр - абсолютно точное математическое преобразование. Естественно, в реальности это преобразование можно осуществить с какой-то заданной точностью (хотя бы, разрядностью чисел ограничено). Но только и всего. Для сигнала, преобразованного в цифровую форму, появляются неточности, связанные с частотой дискретизации, количеством отсчетов в реализации, разрядностью АЦП, линейностью АЦП, джиттером частоты дискретизации, шумом. Про гармонические сигналы. Если сигнал гармонический, т.е. содержит всего одну синусоидальную составляющую, то и спектр его - одна палка. Это, так сказать, разными словами говорится об одном. А если взять, например, прямоугольный сигнал, то в спектре у него - куча гармоник. Но вычислить его спектр тоже можно со сколь угодно большой точностью. Синус - это не от балды взятый сигнал. Возьмите колесо, поставьте его в центр координатных осей X и Y, задайте на ободе колеса точку, и крутите это колесо с равномерной скоростью. И посмотрите, как изменяются координаты этой точки по Х и Y со временем. И много в природе движется так, равномерно вращаясь. С определенной долей допущения, конечно.
|
|
|
|
|
Sep 20 2011, 11:48
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 27-05-09
Из: Москва
Пользователь №: 49 648

|
Цитата(ViKo @ Sep 20 2011, 15:17)  Ничего страшного, если мы пытаемся дойти собственными размышлениями до понимания. Даже, наоборот. Я не в коем случае никого не обвиняю в не компетентности, дискуссию выше прочитал с удовольствием. Я просто в очередной раз подмечаю, что основы радиотехники имеют под собой достаточно хлипкий фундамент (и не я один). С другой стороны из этого хлипкого вырисовываются достаточно крепкие математические модели. Мое замечание, что все клонится к метафизике это не насмешка, я и в правду думаю что тут надо копать в сторону "А как же математика завязана с реальностью?", чтобы хоть чуть чуть взбодрить теорию о спектре, рядах фурье и прочем. Цитата(ViKo @ Sep 20 2011, 15:17)  Но в данном случае спектр - абсолютно точное математическое преобразование. Естественно, в реальности это преобразование можно осуществить с какой-то заданной точностью (хотя бы, разрядностью чисел ограничено). Но только и всего. Для сигнала, преобразованного в цифровую форму, появляются неточности, связанные с частотой дискретизации, количеством отсчетов в реализации, разрядностью АЦП, линейностью АЦП, джиттером частоты дискретизации, шумом. Угумс, спектр это математическая "фича", позволяющая объединить эмпирический опыт тысячи исследователей с учетом джиттера/разрядности/ и прочего. Т.е. в моем понимание понятие спектра это инструмент, а не объяснение. Цитата(ViKo @ Sep 20 2011, 15:17)  Про гармонические сигналы. Если сигнал гармонический, т.е. содержит всего одну синусоидальную составляющую, то и спектр его - одна палка. Это, так сказать, разными словами говорится об одном. А если взять, например, прямоугольный сигнал, то в спектре у него - куча гармоник. Но вычислить его спектр тоже можно со сколь угодно большой точностью. Синус - это не от балды взятый сигнал. Возьмите колесо, поставьте его в центр координатных осей X и Y, задайте на ободе колеса точку, и крутите это колесо с равномерной скоростью. И посмотрите, как изменяются координаты этой точки по Х и Y со временем. И много в природе движется так, равномерно вращаясь. С определенной долей допущения, конечно. Я вот не могу догнать почему именно так, почему именно синус? Моск разрывается просто =) Есть у Юнга достаточно интересное произведение - Синхроничность называется, то же моск взрывает.
|
|
|
|
|
Sep 20 2011, 12:23
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 27-05-09
Из: Москва
Пользователь №: 49 648

|
Цитата(ViKo @ Sep 20 2011, 15:59)  Колесо. Если хотите, покрутите на веревке шарик, и посмотрите сбоку.  Или - как меняется продолжительность дня от времени года. Это всё оттого, что всё в мире вращается, от электронов до галактик. То то и оно, что доказательство (а точнее объяснение) понятия спектра/гармонии и прочего является примеры Вами приведенные=)
|
|
|
|
|
Sep 20 2011, 12:43
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sergey Makarov @ Sep 20 2011, 09:00)  Есть частота силового напряжения 50Гц. Диапазон частот осциллографируемых гармонических сигналов 0-51Гц. Не поправляю. Вторая гармоника = 100Гц, третья = 150Гц, итд. Мне кажется в Вашем случае самое полезное это практика. Сделайте как есть, получите результат и спрашивайте как его улучшить. 1. Напишите обмен с процом. Самое легкое через COM и стандартную программу терминал. Желательнее подключить монитор(хотя бы через SPI) и клавиатуру. 2.Выборку делайте не менее 5-7 периодов основной частоты. 3.При вопросах прилагайте выборку и ответы будут по существу вопроса.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Sep 20 2011, 13:42
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 19-10-05
Из: Россия, г.Чебоксары
Пользователь №: 9 845

|
Цитата(SPACUM @ Sep 20 2011, 16:43)  Не поправляю. Вторая гармоника = 100Гц, третья = 150Гц, итд. Мне кажется в Вашем случае самое полезное это практика. Сделайте как есть, получите результат и спрашивайте как его улучшить. 1. Напишите обмен с процом. Самое легкое через COM и стандартную программу терминал. Желательнее подключить монитор(хотя бы через SPI) и клавиатуру. 2.Выборку делайте не менее 5-7 периодов основной частоты. 3.При вопросах прилагайте выборку и ответы будут по существу вопроса. уже скоро приступлю к реализации, думаю еще куча вопросов появится, а сейчас только поак собираю инфу. если честно то рад что открыл тему на форуме, много чего стало ясно. а так всем спасибо! по мере поступления вопросов, буду тему поднимать
|
|
|
|
|
Sep 20 2011, 23:26
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(almost @ Sep 20 2011, 14:33)  Мне нравится как дискуссия по поводу спектра (в большинстве случаев) плавно уходит в метафизику =) ... Ну а теперь если подумать, существуют ли гармонические сигналы? Конечно же нет, это сугубо математическая абстракция, Не заметил в своих рассуждениях никакой метафизики. И спектр и гармонические сигналы это исходно математика. Как и отдельное спасибо математике за предоставленные числа  Которыми смело пользуюся при измерении величин и даже расчётов. Ведь никто не сомневается, если мультиметр показывает 1.235 вольт в том, что там на самом деле 1.3 вольта. С определённой точностью прибора ему доверяют. И спектр чистого синуса вполне похож на палку, и чем точнее мат. обработка, тем уже и точнее на спектре будет эта палка. Это легко доказывается прямыми и обратными преобразованиями. А скатывание в метафизику скорее признак демогогии. Более подробно о спектре. Допустим того же синуса. Спектр вообще это не одна палка. Спектр любого сигнала это целое множество "палок". Но у синуса это одна ярковыраженная палка (ненулевой длины) и все соседние нулевой длины. Вот это и есть спектр синуса при правильной мат.обработке. То есть спектр у синуса прерывный. У других не ЧМ сигналов тоже спектр в идеале прерывный, но из нескольких палок, например АМ модуляция. Мне например смешно, когда мне показывают какую-то "жуткую" картинку с пологими сторонами "палки" и говорят что это самый правильный спектр синуса, на котором видно множество правильных деталей. То есть "детали" приписывают именно сигналу, а не ограниченности данных и кривой обработке. С одной стороны, если нужно отловить на спектре только самую ярковыраженную палку или несколько их с большей точностью значения частоты, то это да, смысл есть в дополнении нулями. Но надо прекрасно понимать, что при этом возникают искажения более слабых гармоник, да и главные пики имеют амплитуду ниже оригинальной сигнала когда его период не кратен. То есть точность определения частоты возрастает, точность определения амплитуды уменьшается для пиков спектра, для слабых сигналов всё намного хуже.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 21 2011, 08:15
|

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

|
QUOTE (almost @ Sep 20 2011, 15:48)  Я вот не могу догнать почему именно так, почему именно синус? Моск разрывается просто =) Есть у Юнга достаточно интересное произведение - Синхроничность называется, то же моск взрывает. Спектральное разложение в математике, обобщенно - это собственные функции оператора. А комплексные синусы - это собственные функции конкретного оператора сдвига. Именно поэтому синусы занимают центральное место в анализе процессов в однородном пространстве или времени. Ничего удивительного QUOTE (GetSmart @ Sep 21 2011, 03:26)  Более подробно о спектре. Допустим того же синуса. Спектр вообще это не одна палка. Спектр любого сигнала это целое множество "палок". Но у синуса это одна ярковыраженная палка (ненулевой длины) и все соседние нулевой длины. Вот это и есть спектр синуса при правильной мат.обработке. То есть спектр у синуса прерывный. У других не ЧМ сигналов тоже спектр в идеале прерывный, но из нескольких палок, например АМ модуляция. Мне например смешно, когда мне показывают какую-то "жуткую" картинку с пологими сторонами "палки" и говорят что это самый правильный спектр синуса, на котором видно множество правильных деталей. То есть "детали" приписывают именно сигналу, а не ограниченности данных и кривой обработке. С одной стороны, если нужно отловить на спектре только самую ярковыраженную палку или несколько их с большей точностью значения частоты, то это да, смысл есть в дополнении нулями. Но надо прекрасно понимать, что при этом возникают искажения более слабых гармоник, да и главные пики имеют амплитуду ниже оригинальной сигнала когда его период не кратен. То есть точность определения частоты возрастает, точность определения амплитуды уменьшается для пиков спектра, для слабых сигналов всё намного хуже. Не вступая в бесполезную дискуссию, и соглашаясь с Вами в отношении "деталей", замечу только, что напротив - спектр "прерывный" бывает только в идеале, в абстракции. Физические спектры всегда непрерывны, хотя бы из-за нестабильности несущей или ограниченности времени наблюдения. "Прерывные" (линейчатые) спектры всего лишь удобная абстракция, когда от некоторых деталей можно отвлечься
|
|
|
|
|
Sep 23 2011, 20:51
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(fontp @ Sep 21 2011, 13:15)  ... замечу только, что напротив - спектр "прерывный" бывает только в идеале, в абстракции. Физические спектры всегда непрерывны, хотя бы из-за нестабильности несущей или ограниченности времени наблюдения. "Прерывные" (линейчатые) спектры всего лишь удобная абстракция, когда от некоторых деталей можно отвлечься На самом деле на реальные спектры сигналов гораздо сильнее влияют шумы, которые есть почти всегда. Вот в опорах может чаще нестабильности. Я просто указал ориентир того, какие правильные детали должны быть видны на спектре, разумеется идеализировав детали. В реале все спектры непрерывные и даже АМ в чистом виде не существует, там всегда АМ+ЧМ. Потому как "голая" АМ (с прерывным спектром) есть отсутствие информации (динамики) в сигнале. Цитата(ViKo @ Sep 18 2011, 12:20)  P.S. было бы неплохо, чтобы не только GetSmart дополнял и поправлял fontp, но и наоборот.  Ещё советы, пожелания, просьбы? А то все неожиданно замолчали. А у меня готовы две сотни ответов
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 24 2011, 19:17
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(thermit @ Sep 24 2011, 15:19)  Чем спектр синуса отличается от спектра косинуса? Фазой. Или градусом, если это из области шутки  В спектре, фаза неотъемлемая часть.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 28 2011, 11:24
|
Группа: Новичок
Сообщений: 3
Регистрация: 17-05-09
Пользователь №: 49 186

|
Цитата(almost @ Sep 20 2011, 15:48)  ... Я вот не могу догнать почему именно так, почему именно синус? Моск разрывается просто =) ... Ничто вам не мешает взять любой другой полный набор ортогональных функций. Преобразование Фурье, в общем виде, не завязано на конкретный базис.
|
|
|
|
|
Oct 5 2011, 19:25
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Почитал все посты тредстартера. Не понял что надо найти. Во-первых, разумеется, при юзании БПФ/ДПФ сигнал должен быть хотя бы 1 период. То есть в 500 точках 40 мкс дискр. искать сигнал в 30 или 20 гц занятие бесполезное. Как и сигналы диапазона 0-51 гц. Разрешение каждого бина будет 50 гц. Хоть дополняй нулями, хоть не дополняй. То есть увидеть можно 50,100,150 гц сигналы, в реале это будут /грубо/ 25-75, 75-125, 125-175 и тд. Дополнение нулями (500->512) на младших гармониках (что нужно ТС) занятие бесполезное, даже вредное. Советчики этого метода пересказали что-то, о чём где-то прочитали не поняв сути и задания.
Вообще, если ТС нужны низкие частоты, то почему дискр. 40 мкс? Почему не 1 мс и с 500 сэмплами будет разрешение 2..500 гц. Тогда можно смело брать 512 отсчётов и не беспокоиться о точности периода, который всё равно точно не известен. У частотника наверняка будут и низкие частоты, ниже сетевой частоты, хотя конечно от нагрузки зависит.
Ну и, собственно, прежде чем что-то считать нужно чётко понимать что и где "искать". И есть ли там это что-то. А то можно в запале захотеть найти спектр одиночного импульса. При этом как говорится - флаг в руки.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 7 2011, 06:52
|
Местный
  
Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639

|
Цитата(Sergey Makarov @ Sep 14 2011, 16:45)  Добрый день! Стоит задача осуществить быстрое преобразовние Фурье для 500 отсчетов. Аппаратно DSP поддерживает быстрое преобразование по модулю 2. Вопрос, как довести кол-во точек до 512? Достаточно ли заполнить недостающие значения нулями? Сильно ли исказится результат преобразования после такого допущения? Не сильно, но исказится. Дополнение нулями во временной области), как следует из свойств ПФ приведет к тому, что полученный спектр будет являться сверткой настоящего спектра (т.е. спектра 500-отсчетного исходного сигнала) и ПФ от прямоугольного окна (s_i = 1, i=0:499 и s_i = 0, i=500:511). Спектр этого окна вы отлично знаете - это функция sinc. Поскольку окно очень широкое, то ширина функции sinc будет чуть шире одного отсчета. Другими словами, спектр после дополнения нулями "слегка размажется".
|
|
|
|
|
Oct 8 2011, 11:49
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата Добрый день! Стоит задача осуществить быстрое преобразовние Фурье для 500 отсчетов. Аппаратно DSP поддерживает быстрое преобразование по модулю 2. Вопрос, как довести кол-во точек до 512? Достаточно ли заполнить недостающие значения нулями? Сильно ли исказится результат преобразования после такого допущения? Если можно ссылкой на математическое обоснование поделитесь плз. Или все таки придется до 512 точек дополнять интерполировав существующие значения? Кто чем может помогите плз. Если ДПФ используется для оценки СПМ, то вместо добавления 0 экстраполируйте по 6 отсчетов с каждого края и будет Вам счастье. Это явно дешевле интерполяции. За теоретическим обоснованием - к Марплу гл. 7.4. В качестве экстраполирующего можно использовать полосовой фильтр, если примерно известна полоса процесса, который анализируете.
Сообщение отредактировал andyp - Oct 8 2011, 11:52
|
|
|
|
|
Oct 10 2011, 13:54
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 19-10-05
Из: Россия, г.Чебоксары
Пользователь №: 9 845

|
Цитата(GetSmart @ Oct 5 2011, 23:25)  Почитал все посты тредстартера. Не понял что надо найти. Во-первых, разумеется, при юзании БПФ/ДПФ сигнал должен быть хотя бы 1 период. То есть в 500 точках 40 мкс дискр. искать сигнал в 30 или 20 гц занятие бесполезное. Как и сигналы диапазона 0-51 гц. Разрешение каждого бина будет 50 гц. Хоть дополняй нулями, хоть не дополняй. То есть увидеть можно 50,100,150 гц сигналы, в реале это будут /грубо/ 25-75, 75-125, 125-175 и тд. Дополнение нулями (500->512) на младших гармониках (что нужно ТС) занятие бесполезное, даже вредное. Советчики этого метода пересказали что-то, о чём где-то прочитали не поняв сути и задания.
Вообще, если ТС нужны низкие частоты, то почему дискр. 40 мкс? Почему не 1 мс и с 500 сэмплами будет разрешение 2..500 гц. Тогда можно смело брать 512 отсчётов и не беспокоиться о точности периода, который всё равно точно не известен. У частотника наверняка будут и низкие частоты, ниже сетевой частоты, хотя конечно от нагрузки зависит.
Ну и, собственно, прежде чем что-то считать нужно чётко понимать что и где "искать". И есть ли там это что-то. А то можно в запале захотеть найти спектр одиночного импульса. При этом как говорится - флаг в руки. С вами согласен полностью, искать 30Гц сигналы в 500 точках с дискретой 40 мкс дело бесполезное, и не благодарное, хоть сколько угодно не дополняй данный массив нулями. Я это уже понял. Моделирование в МАТЛАБ все (или почти все) расставило на свои места. Только вот не понял как это " 1 мс и с 500 сэмплами будет разрешение 2..500 гц."? может все таки 50Гц? Цитата(andyp @ Oct 8 2011, 15:49)  Если ДПФ используется для оценки СПМ, то вместо добавления 0 экстраполируйте по 6 отсчетов с каждого края и будет Вам счастье. Это явно дешевле интерполяции. За теоретическим обоснованием - к Марплу гл. 7.4. В качестве экстраполирующего можно использовать полосовой фильтр, если примерно известна полоса процесса, который анализируете. вобщем путем моделирования стало ясно, что добавление нулей к отсчетам функции с 500 до 512, приводит к смещению спектра. например для синусоидального 50Гц сигнала добавленного нулями частота максимальной гармоники стала равной 48,8Гц. Экспериментировал много, с сигналами разной частоты, всегда получал смещение. Да, после увеличения кол-ва отсчетов до большего значения добавлением нулей , максимумы спектра выделяются явнее, но частота этих максимумов уже не соответствует действительности.
|
|
|
|
|
Oct 10 2011, 14:46
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sergey Makarov @ Oct 10 2011, 17:54)  Только вот не понял как это " 1 мс и с 500 сэмплами будет разрешение 2..500 гц."? может все таки 50Гц? Тк. автор не ответил, отвечу за него. Время выборки = 500 * 1мс = .5с. Самая медленная синусоида которая туда влезает F = 1/.5c = 2Гц. Это первая гармоника Фурье. А Ваши 50Гц будут 25й гармоникой. Самое первое упоминание об БПФ на 500 точек было в этой книге, я тогда оттуда программу и взял. И все работало. (http://www.knigonosha.net/tehnika/other_tehn/31-primenenie-teorii-chisel-v-cifrovoj-obrabotke.html)
Сообщение отредактировал SPACUM - Oct 10 2011, 15:00
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 10 2011, 17:50
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата вобщем путем моделирования стало ясно, что добавление нулей к отсчетам функции с 500 до 512, приводит к смещению спектра. например для синусоидального 50Гц сигнала добавленного нулями частота максимальной гармоники стала равной 48,8Гц. Экспериментировал много, с сигналами разной частоты, всегда получал смещение. Да, после увеличения кол-ва отсчетов до большего значения добавлением нулей , максимумы спектра выделяются явнее, но частота этих максимумов уже не соответствует действительности. при добавлении отсчетов по краям смещения спектра не происходит, немного повышается разрешение (ну те ширина колодца DFT была Fs/500, а стала Fs/512) и Ваша фиксированная частота как-бы "смещается", попадая в другие колодцы.
Сообщение отредактировал andyp - Oct 10 2011, 17:53
|
|
|
|
|
Oct 11 2011, 11:44
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 19-10-05
Из: Россия, г.Чебоксары
Пользователь №: 9 845

|
Цитата(SPACUM @ Oct 10 2011, 18:46)  Тк. автор не ответил, отвечу за него. Время выборки = 500 * 1мс = .5с. Самая медленная синусоида которая туда влезает F = 1/.5c = 2Гц. Это первая гармоника Фурье. А Ваши 50Гц будут 25й гармоникой. Самое первое упоминание об БПФ на 500 точек было в этой книге, я тогда оттуда программу и взял. И все работало. (http://www.knigonosha.net/tehnika/other_tehn/31-primenenie-teorii-chisel-v-cifrovoj-obrabotke.html) Спасибо за ссылку  а на счет диапазона я понял. Времени выборки 1 мс соотвествует частота 1кГц, диапазон частот представленных в спектре сигнала 1000/500*k, где k = 1...250, так как спектр симметричен относительно N/2, в данном случае 250, поэтому и получается 1000/500*250=500 Гц, последняя частота для 500 точек отсчетов. Цитата(andyp @ Oct 10 2011, 21:50)  при добавлении отсчетов по краям смещения спектра не происходит, немного повышается разрешение (ну те ширина колодца DFT была Fs/500, а стала Fs/512) и Ваша фиксированная частота как-бы "смещается", попадая в другие колодцы. я могу быть и не прав, но моделирование в матлабе мне показало что результат ДПФ одинаков для сигнала добавленного нулями либо только в конец массива, либо симметрично с каждой стороны. Цитата(ViKo @ Oct 11 2011, 11:56)  Это называется не "разрешение", а диапазон. А разрешение будет 2 Hz. То есть, вычислится спектр для частот 2, 4, 6... 500 Hz. да спасибо, разобрался. я почему то подумал что мне пытаются сказать что 1мс и 500 отсчетов достаточно для диапазона входных сигналов 2..500 Гц. Видимо уже мозг заклинило
|
|
|
|
|
Oct 11 2011, 12:06
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Sergey Makarov @ Oct 11 2011, 15:44)  я могу быть и не прав, но моделирование в матлабе мне показало что результат ДПФ одинаков для сигнала добавленного нулями либо только в конец массива, либо симметрично с каждой стороны. амплитуда ДФТ будет одинаковой. фаза - изменится. Задержка во временной области соответствует умножению ДФТ на комплексную экспоненту в догонку к предыдущему - сдвиг фазы будет зависеть от частоты и величины задержки (те фактически изменится наклон фазовой характеристики)
|
|
|
|
|
Oct 18 2011, 10:48
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Oct 18 2011, 15:00)  Обычное ДПФ при желании можно слегка ускорить, выкинув из вычислений дополняемые нули, но не сильно. Это называется pruned FFT. Что-то про ДПФ не понял. Зачем его замедлять, а потом ускорять? Для БПФ это понятно. Дробный ДПФ/БПФ - это вычисление спектра частот 1.5, 2.5, 3.5 и т.д., в том числе и с любыми вещественными долями. Вообще, вся "ортогональщина" гармоник Фурье это только в идеале. И даже на бесконечности никаких улучшений. В реале чаще всего гармоники не кратные и не совсем ортогональные друг другу. У меня стоит задача. Взять 16 или 32 сэмпла с одним синусом внутри, но на фоне большого шума. По сути, если в спектре есть самый высокий пик, то это предположительно мой синус. И нужно узнать из этих 16 сэмплов поточнее частоту синуса (до 1/8 бина для начала хватит). Но штука в том, что если частота синуса некратна бину (изначально я её не знаю и не могу предугадать), то в обычном БПФ/ДПФ пик на спектре может отклоняться от реального значительно (возможно до 0.7 или до 0.5 от реала). Однако, дробный ДПФ (возможно и дополненный нулями БПФ и перенормированный) может показывать пики спектра ближе к реальным.
Сообщение отредактировал GetSmart - Oct 18 2011, 10:49
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 18 2011, 10:49
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 18 2011, 12:22)  Знаю точно, что дробный ДПФ работает не хуже целого по части нахождения пиков гармоник. Испытывал на медленном алгоритме. Но вдруг есть побыстрее. Согласен. Похоже выше 7й гармоники дополнение нулями работает удовлетворительно. А ниже нужны особые методы. У меня еще и шумы, так что менее 2000 точек мне неинтересно, а больше долго. А для 30 точек без шума может метод барона Прони подойдет? Ничего другого по вопросу в литературе не встречал. Еще мне кажется для частот в начале спектра Фурье и в конце спектра Фурье предел Крамера-Рао недостижим с запасом. И для Вашего случая особенно. А у Вас получилось близко?
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 18 2011, 10:58
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(SPACUM @ Oct 18 2011, 15:49)  А для 30 точек без шума может метод барона Прони подойдет? Цитата Барон де Прони(Гаспар Рише) был другом Наполеона и одним из основоположников метрической системы мер. Имя барона Гаспара де Прони входит в список 72 имён на Эйфелевой башне. Он действительно разработал свой метод спектрального анализа при котором вычислялись истинные амплитуды и частоты и не было никакой спектральной утечки. Соответствующая программа на ФОРТРАНе приведена в книге С.Л. Марпл-мл. "Цифровой спектральный анализ и его приложения" (гл. 11). Сигнал приближался затухающими синусоидами. Этот метод применяется не везде из-за большого объема расчетов. Однако результат восхитительный. Никогда о нём не слышал. Будем почитать. Цитата(SPACUM @ Oct 18 2011, 15:49)  И для Вашего случая особенно. А у Вас получилось близко? Скорее нет. Хотя в 32 точках всего 16 гармоник и я затрудняюсь правильно ответить.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 18 2011, 11:01
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 18 2011, 14:58)  Никогда о нём не слышал. Будем почитать. http://www.padabum.com/d.php?id=3411стр. 365.
Сообщение отредактировал SPACUM - Oct 18 2011, 11:05
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 18 2011, 11:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(_Anatoliy @ Oct 18 2011, 16:49)  А интерполировать по трём бинам не пробовали?Я когда-то игрался с этим,получались неплохие результаты но дальше модели не пошло. Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность. Да и результат точнее не будет, скорее наоборот. Т.к., если это делать по БПФ, то сразу вылезут грабли БПФ-а - несоответствие (а точнее занижение) амплитуды дробных частот. Что сразу может сделать пик на спектре принадлежащим шуму, а не моему сигналу. То есть, по трём точкам, значит одна из них - это пик на спектре БПФ. Но пик недостоверный. Если брать несколько пиков, то опять неясно какой в реале выше, т.к. они все недостоверные.
Сообщение отредактировал GetSmart - Oct 18 2011, 12:06
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 18 2011, 14:48
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Oct 18 2011, 15:00)  Если надо определять коэффициенты с "дробными частотами" (между бинами), то дополняйте сигнал нулями и берите обычное ДПФ. Правильно ли я понимаю, что если мне надо найти все дробные бины с разрешением 1/8, то я должен к основному блоку данных (32 точки) добавить ещё 7 раз по 32 точки нулей и сделать БПФ по 256 точкам? Или там другой алгоритм добавления? Сейчас пока моделирую, проверяю достоверность амплитуд пиков этого метода. Хоть результат спектра далёк от идеала, но в моём случае, когда априорно известно, что сигнал - простой синус, может быть этот метод и сработает. Хотя БПФ по в 8 раз большему блоку сам по себе накладен и возможно будет медленнее БПФ @ 32N + X раз ДПФ.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 18 2011, 14:59
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 18 2011, 15:21)  Какой-то он избыточный. Ну на 30 точек получаем 10 амплитуд-частот-фаз и восстановленный сигнал проходит через все точки с любой точностью. Избыточность меньше, чем у БПФ(сигнал представлен меньшим числом гармоник). Если нужно 4 частоты - возьмите 12 точек. Вот с шумами дело темное. Тут Крамер-Рао не работает. Закон такой: Если сигнал состоит точно из N частот, то для их определения достаточно 3 * N точек выборки не обязательно через равные промежутки времени. А математика тут противная и требует повышенной точности вычислений и, наверное, усреднения по нескольким выборкам. При моем числе точек и для микропроцессора даже не пытался. Поставленная Вами задача - нужная и интересная и я ей тоже занимаюсь(в свободное от работы время и медленно). Пока действительно слишком долго считает.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 18 2011, 15:41
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Oct 18 2011, 18:48)  Правильно ли я понимаю, что если мне надо найти все дробные бины с разрешением 1/8, то я должен к основному блоку данных (32 точки) добавить ещё 7 раз по 32 точки нулей и сделать БПФ по 256 точкам? Совершенно верно. Перед дополнением нулей сигнал можно умножить на весовое окно. Если шума очень много — то прямоугольное (оно оптимально для детектирования сигнала), если поменьше — то Ханна или другое аналогичное (они улучшают аккуратность оценки частоты при интерполяции по 3 точкам). Далее интерполирете частоту по трём максимальным точкам в спектре. Спектр перед этим лучше перевести в логарифмический масштаб амплитуд. Если нужна более высокая точность — обратитесь к параметрическим методам. Задача нахождения частоты синусоиды в шуме кем только не решалась, вот даже вот в соседнем топике...
|
|
|
|
|
Oct 18 2011, 16:34
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Oct 18 2011, 20:41)  Задача нахождения частоты синусоиды в шуме кем только не решалась, вот даже вот в соседнем топике... У меня задача не совсем такая. Мне её сначала нужно "выявить" на фоне большого шума. Просто по БПФ её часто не видно. Это главная часть задачи. И точек мало. Я уже посмотрел на результаты 8-кратного дополнения нулей. Вобщем неплохо. Хотя странно, что амплитуды немного (или заметно) неточны. Часто даже в большую сторону. И это без шума вообще. Но мне это некритично. Цитата(Alexey Lukin @ Oct 18 2011, 20:41)  Спектр перед этим лучше перевести в логарифмический масштаб амплитуд. Зачем? Upd. Вобщем, проверил. БПФ от дополненного нулями блока сэмплов даёт результат лучше обычного БПФ для определения сразу же максимума на спектре и более точной (чем БПФ) частоты этого максимума. И это при больших шумах. Только подозреваю, что смысла в очень большом дополнении нулями нет. Этот же результат можно высчитать другим методом (тремя точками?). А во сколько раз дополнять нулями оптимально, надо бы разобраться. 2, 4 или 8.
Сообщение отредактировал GetSmart - Oct 18 2011, 18:06
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 18 2011, 18:41
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 18 2011, 20:34)  У меня задача не совсем такая. Мне её сначала нужно "выявить" на фоне большого шума. Просто по БПФ её часто не видно. Это главная часть задачи. И точек мало. Я уже посмотрел на результаты 8-кратного дополнения нулей. Вобщем неплохо. Хотя странно, что амплитуды немного (или заметно) неточны. Часто даже в большую сторону. И это без шума вообще. Но мне это некритично.
Зачем? 1.При SNR = 1 видно хорошо, значит Ваш сигнал меньше? 2.БПФ - практически идеальный обнаружитель синусоидального сигнала и если его не видно, значит число точек мало и ничего не поможет. 3.Рекомендуемые здесь методы основаны на том, что пик однозначно виден и ближайшие бины не скачут. 4.Вершина пика при окне Ханна мало похожа на параболу, а логарифмирование слегка приближает форму пика к ней. Я бы выбрал окно с более гладкой вершиной Наттала, Гаусса, Флаттоп и без логарифмирования. 5.А фильтр перед АЦП нельзя сделать лучше? Насколько входная частота меняется?
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 18 2011, 19:02
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Oct 18 2011, 20:34)  Только подозреваю, что смысла в очень большом дополнении нулями нет. Этот же результат можно высчитать другим методом (тремя точками?). А во сколько раз дополнять нулями оптимально, надо бы разобраться. 2, 4 или 8. Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией. Цитата(SPACUM @ Oct 18 2011, 22:41)  4.Вершина пика при окне Ханна мало похожа на параболу, а логарифмирование слегка приближает форму пика к ней. Я бы выбрал окно с более гладкой вершиной Наттала, Гаусса, Флаттоп и без логарифмирования. Вот уж как раз flat-top окно на параболу совсем непохоже. Да и способность детектировать сигнал в шуме у этих окон слабая — они слишком узкие во временной области. Цитата(GetSmart @ Oct 18 2011, 20:34)  Зачем? Так точнее получаются оценки частоты с помощью параболической интерполяции. Если не брать логарифма, то оценки будут смещены в сторону ближайшего бина ДПФ.
|
|
|
|
|
Oct 18 2011, 19:24
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(SPACUM @ Oct 18 2011, 23:41)  ... 1. Re[i] := cos(p * i) + (Random-0.5)*3.0; 2. Это не так. Точнее не всегда так. Возьмите 32 точки, частоту например в 10.5 раз выше 1/Т. БПФ будет показывать недостоверную частоту и амплитуду максимума (хоть с шумом, хоть без). Далее сравните много раз картинки чистого БПФ и дополненного нулями в 8 раз. Даже по картикам виден лучший результат. 5. Зачём? Нет наложения спектров. ---------- Маленький вопрос не совсем по теме. ДПФ/БПФ увеличивает С/Ш в 2 раза или в 1.41 при увеличении периода (длины [кол-ва точек] синуса) в 2 раза на фоне белого шума? Цитата(Alexey Lukin @ Oct 19 2011, 00:02)  Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией. Это хорошо. Если бы мне нужна была одна точка и я знал где её искать, интерполировал бы только её и сэкономил время. Но чтобы найти все возможные видимо проще будет делать большой БПФ. Upd. Как раз, в продолжении этого алгоритма мне понадобится знать только 4 точки из всего спектра. Их-то и можно будет интерполировать после короткого БПФ. Причём с любой дробной частью частоты.
Сообщение отредактировал GetSmart - Oct 18 2011, 20:39
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 18 2011, 20:12
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Oct 18 2011, 23:24)  ДПФ/БПФ увеличивает С/Ш в 2 раза или в 1.41 при увеличении периода (длины [кол-ва точек] синуса) в 2 раза на фоне белого шума? С/Ш в каждом бине ДПФ улучшается на 3 дБ, т.к. мощность шума распределяется на 2 бина, а мощность синуса не изменяется.
|
|
|
|
|
Oct 19 2011, 06:06
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 18 2011, 23:24)  5. Зачём? Нет наложения спектров.
---------- В смысле шума на входе. БПФ не идеальный фильтр, а шума очень много. Хотя если частота может меняться в несколько раз, смысла нет.
Сообщение отредактировал SPACUM - Oct 19 2011, 06:29
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 19 2011, 13:03
|

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

|
QUOTE (Alexey Lukin @ Oct 18 2011, 23:02)  Дополнение сигнала нулями эквивалентно sinc-интерполяции спектра. Раза в 2–4 эта интерполяция может выглядеть неочевидно, а потом уже можно похожих результатов добиться полиномиальной интерполяцией. Вот уж как раз flat-top окно на параболу совсем непохоже. Да и способность детектировать сигнал в шуме у этих окон слабая — они слишком узкие во временной области. Так точнее получаются оценки частоты с помощью параболической интерполяции. Если не брать логарифма, то оценки будут смещены в сторону ближайшего бина ДПФ. Форма пика зависит от окна. Вообще-то при квадратичной интерполяции пика оценка получается смещенной, причем величина смещения зависит и от формы спектрального окна и от количества добавленых нулей. С увеличением кол-ва добавленых нулей систематическое смещение уменьшается. Доказано, что при наличие гарантировано одного пика оптимальная форма окна - прямоугольная (тогда форма спектра действительно синк). При наличие нескольких удалённых пиков предлагают обычно окно гауса с логарифмированием, для которого парабола реализуется даже чисто теоретически, правда с значительными потерями в энергетике. В общем, не все окна одинаково полезны... При низком snr смещение не играет, случайная ошибка по Крамеру_Рао забивает полюбому смещение (тогда берут столько нулей сколько данных, фактор 2), при высоком Snr нужно подавить смещение - нулей берут в 4- 8 -16 раз больше...чем больше тем лучше... и пробуют разные окна Здесь всё описано, исследовано экспериментально Критерии дизайна 1....Критерии дизайна 2Критерии Дизайна 3там ещё 2 других документов с деталями исследования: как зависит от окна, от кол-ва нулей, как выходит на критерий Рао, как влияет паразитная модуляция.... Там на все вопросы отвечено, что касается квадратичной интерполяции спектра QUOTE (GetSmart @ Oct 18 2011, 15:57)  Над этим я думал. Но штука в том, что шума много допускается. Без шума мне точность вытягивать не надо. А с шумом (грубо 0 дб С/Ш) мне нужна предельная точность. Шум сам по себе не есть ограничение для метода. Шум подавляется в любой степени увеличением числа отсчетов и метод выходит на критерий Крамера-Рао. Не в любой, конечно... В значительной. Число отсчетов ограничено стабильностью основной частоты, т.е. тем насколько синусоида сама идеальна. Для сильных шумов метод QIFFT исключителен, в том смысле что ВСЕ параметрические методы (из того же Марпла) уже не работают У метода квадратичной интерполяции FFT (QIFFT) есть значительные возможности адаптации под задачу. Существуют методы интерполяции спектра для ленивых, не требующие добавления нулей, я когда-то размещал их на форуме - Qinn и MacLeod, реализация в Матлабе, файл tst3. Они дают соизмеримую точность (выходят на Крамера_Рао при малом SNR), но в них нет такой гибкости в отношение смещения. Там http://electronix.ru/forum/index.php?showt...43698&st=15
|
|
|
|
|
Oct 19 2011, 15:48
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(fontp @ Oct 19 2011, 18:03)  Шум сам по себе не есть ограничение для метода. Шум подавляется в любой степени увеличением числа отсчетов и метод выходит на критерий Крамера-Рао. Не в любой, конечно... В значительной. Число отсчетов ограничено стабильностью основной частоты, т.е. тем насколько синусоида сама идеальна. Для сильных шумов метод QIFFT исключителен, в том смысле что ВСЕ параметрические методы (из того же Марпла) уже не работают В очередной раз встречаю какие-то непонятки о кол-ве отсчётов. Нет, шум не подавляется увеличением числа отсчётов. Даже если синус супер-пупер стабильный. Т.к. кол-во отсчётов ограничено длительностью (ограниченностью) самого сигнала во времени. И из того, что есть, хотелось бы получить максимум шумоустойчивости. Для безшумного сигнала высокая точность не нужна. Наоборот, допустимо её ухудшить, применив не самые точные измерения (например оценку частоты), главное чтобы этот же алгоритм давал лучшие результаты при максимуме шумов, по крайней мере среднестатистическую вероятность правильных результатов. На выходе алгоритма будет от одного до 6 битовый результат. И нужно чтобы опознание было с бОльшей вероятностью правильное. Всего-то. А вот с интерполяцией FFT хотелось бы найти где-нить теоретическое обоснование того, что в основных бинах FFT содержится так же информация о дробных частотах, по которым их можно интерполировать. Не какой-то набор статистики результатов. Я пока хочу использовать этот метод, но опасаюсь, что может оказаться, что интерполированные значения не всегда достоверны. И например скачут от начальной фазы этой дробной частоты. С другой стороны, синк-интерполяция означает, что эти промежуточные значения "размазаны" по всему спектру FFT. А не по 2-4 соседним точкам. Upd. Хотя... Увеличить кол-во отсчётов я могу. Длительность сигнала при этом будет прежней. А вот частоту оцифровки завысить без проблем. В конце спектра при этом будет "пустота". То есть там даже шума не будет, т.к. он круто отфильтрован в аналоге. Но такое увеличение отсчётов "наоборот" даст ли что-то полезное? Вообще, давно задумывался об этом. Но пока не разобрался. Не могу увеличивать период оцифровки, т.к. полезный сигнал ограничен, а за ним идёт не просто шум, а уже другой сигнал, и, если увеличивать период (а-ля квазидополнение нулевым сигналом), то ИМХО результат будет хуже чем с настоящим дополнением нулями короткого блока сэмплов, т.к. в сэмплах будет уже реальная синусоидальная помеха. Upd2. Хорошая вещь, эта интерполяция спектра. При 8-кратном дополнении нулей БПФ по 32*8 точкам выдаёт ошибку в определении амплитуды одной единственной некратной синусоиды без шума максимум в 3% при любой стартовой фазе синусоиды и любой некратной частоте (хотя проверял от 5 до 13 гармоники). Upd3. Проверил с шумом. В сигнале (7.57 гармоника) Re[i] := cos(p * i + pp) + (Random-0.5)*3.0; при простом БПФ вероятность ошибочно найденного пика 15%, при 8 кратном дополнении нулями ошибка только 4%. pp это случайная начальная фаза. Из простого БПФ с N=32, пик находится по простому максимуму, без доп. алгоритмов. В сигнале Re[i] := cos(p * i + pp) + (Random-0.5)*4.0; ошибки 36% vs 23% В сигнале Re[i] := cos(p * i + pp) + (Random-0.5)*5.0; ошибки 52% vs 46% Ну хоть для чего-то этот алгоритм (дополнения нулями) сгодился  То есть при больших шумах, до какого-то порога даёт лучшие вероятности, да ещё и с одновременным определением некратной частоты. Upd4. Маленький минус всё-таки нашёлся. При не очень больших шумах. В сигнале (7.00 гармоника) Re[i] := cos(p * i + pp) + (Random-0.5)*2.5; БПФ работает немного лучше. В обоих случаях ошибок менее 1%. Но в БПФ их меньше в 2..3 раза. Ещё гораздо больший минус. В сигнале (7.00 гармоника) Re[i] := cos(p * i + pp) + (Random-0.5)*3.5; ошибки 8% vs 15%. Но на 7.2 гармонике уже вероятности примерно равны около 14%. И что меня совсем удивило, так это стабильная вероятность ошибки интерполированного пика при любых дробных/недробных частотах. А это свойство для того, где я хочу применить алгоритм просто ценнейшее, потому как нет разделения на удачные и неудачные частоты. Они все равноценны.
Сообщение отредактировал GetSmart - Oct 20 2011, 00:09
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 20 2011, 07:20
|

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

|
QUOTE (GetSmart @ Oct 19 2011, 19:48)  В очередной раз встречаю какие-то непонятки о кол-ве отсчётов. Нет, шум не подавляется увеличением числа отсчётов. Даже если синус супер-пупер стабильный. Т.к. кол-во отсчётов ограничено длительностью (ограниченностью) самого сигнала во времени. И из того, что есть, хотелось бы получить максимум шумоустойчивости. Для безшумного сигнала высокая точность не нужна. Наоборот, допустимо её ухудшить, применив не самые точные измерения (например оценку частоты), главное чтобы этот же алгоритм давал лучшие результаты при максимуме шумов, по крайней мере среднестатистическую вероятность правильных результатов. На выходе алгоритма будет от одного до 6 битовый результат. И нужно чтобы опознание было с бОльшей вероятностью правильное. Всего-то. Для борьбы с шумами используется только один способ в обработке сигналов. Это накопление, более хитрое или менее хитрое - но это всегда накопление чего-то нужного нам против шума, который накопляется плохо. Я там хотел сказать, что если возможно используйте больше отсчетов за большее время. А если невозможно - увы, оценку улучшить невозможно, критерий Крамера-Рао даёт предельную оценку. Доказано, что это предельная точность оценки по максимуму правдоподобия Понятно, что передискретизация сигнала ничего не даёт нового . Дискретизировать нужно в диапазоне поиска частоты по Найквисту. QUOTE (GetSmart @ Oct 19 2011, 19:48)  А вот с интерполяцией FFT хотелось бы найти где-нить теоретическое обоснование того, что в основных бинах FFT содержится так же информация о дробных частотах, по которым их можно интерполировать. Не какой-то набор статистики результатов. Я пока хочу использовать этот метод, но опасаюсь, что может оказаться, что интерполированные значения не всегда достоверны. И например скачут от начальной фазы этой дробной частоты. С другой стороны, синк-интерполяция означает, что эти промежуточные значения "размазаны" по всему спектру FFT. А не по 2-4 соседним точкам. Не может ничего такого оказаться ни с дробной частотой ни с фазой. Метод известен давно, проверен и обоснован теоретически в работе Райфа и Бурстина. Другое дело, что он держится на априорной информации что синусоида (причем комплексная) одна или в крайнем случае их много, но они расположены далеко друг от друга. 1. Если мы положили, что она одна оптимально использовать прямоугольное окно, чтобы не терять энергетику и выйти на Критерий Крамера-Рао с максимально достижимой точностью. Однако если в сигнале присутствует другая синусоида, даже далеко расположеная - то оценка "скакнёт". Метод не адекватен к этой ситуации, поскольку у синка большие хвосты, и нужно использовать окна- 2. Синусоид несколько и они расположены далеко друг от друга. Нужно использовать окна, чтобы изолировать их хвосты. Тогда возможно произвести оценку этих частот с небольшими потерями энергетики. Но может оказаться, что и эта модель не адекватна и синусоид не просто >=2, а они расположены рядом - 3. Тогда ничего уже не поможет и всё будет скакать  Тогда предельно достижимая точность уже не определяется критерием Крамера-Рао для одной синусоиды, а определяется "естественным" разрешением 1/T, что обычно значительно хуже. Вернее, если уж быть точным, то критерий Крамера-Рао (максимального правдоподобия) для 2-х близко расположеных синусоид отличается от критерия для одной синусоиды и приближается к 1/T
|
|
|
|
|
Oct 20 2011, 13:03
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Alexey Lukin @ Oct 19 2011, 01:12)  С/Ш в каждом бине ДПФ улучшается на 3 дБ, т.к. мощность шума распределяется на 2 бина, а мощность синуса не изменяется. Сейчас проверил. Расширил длину сигнала в 4 раза. По идее, при уровне шума в 2 раза большем вероятности ошибочных опознаний должны быть аналогичные. Но пока у меня выходит улучшение вероятности в 1.8. При 16 кратной длине улучшение в 3.3 раза. То бишь стабильно в 1.8 раз на учетверение длины. Почему-то не в 2. Вообще, я почему спросил. В голове крутились два варианта усреднения. Вычислять короткие БПФ, оставлять от них только амплитуду, которая будет зашумлённая. Складывая амплитуду двух независимых БПФ получится классическое усреднение зашумлённого сигнала с зависимостью С/Ш корень из кол-ва слагаемых. Но длинный БПФ/ДПФ должен работать "круче" этого, т.к. имеет не только амплитуду, но и фазу.
Сообщение отредактировал GetSmart - Oct 20 2011, 17:03
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 21 2011, 07:25
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 20 2011, 17:03)  Почему-то не в 2. Посмотрите на частотную зависимость погрешности. На многих методах на первом и последнем десятке частот Фурье погрешность выше, чем в середине диапазона. Может это влияет.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 21 2011, 08:15
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(GetSmart @ Oct 20 2011, 17:03)  Сейчас проверил. Расширил длину сигнала в 4 раза. По идее, при уровне шума в 2 раза большем вероятности ошибочных опознаний должны быть аналогичные. Но пока у меня выходит улучшение вероятности в 1.8. При 16 кратной длине улучшение в 3.3 раза. То бишь стабильно в 1.8 раз на учетверение длины. Почему-то не в 2. Уж не знаю, почему у вас так — это только вы сами можете разобраться. Мой-то факт на любом спектроанализаторе видно, его не оспоришь. Цитата(GetSmart @ Oct 20 2011, 17:03)  Вообще, я почему спросил. В голове крутились два варианта усреднения. Вычислять короткие БПФ, оставлять от них только амплитуду, которая будет зашумлённая. Складывая амплитуду двух независимых БПФ получится классическое усреднение зашумлённого сигнала с зависимостью С/Ш корень из кол-ва слагаемых. Но длинный БПФ/ДПФ должен работать "круче" этого, т.к. имеет не только амплитуду, но и фазу. И в том, и в другом случае уменьшение спектральной плотности шума получается одинаковое — корень из увеличения длины. Но при использовании более длинного ДПФ у вас будет лучше спектральное разрешение.
|
|
|
|
|
Oct 21 2011, 12:45
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(SPACUM @ Oct 21 2011, 12:25)  Посмотрите на частотную зависимость погрешности. На многих методах на первом и последнем десятке частот Фурье погрешность выше, чем в середине диапазона. Может это влияет. Экспериментировал примерно на середине диапазона. Там зависимости от частоты вроде как нет. Цитата(Alexey Lukin @ Oct 21 2011, 13:15)  И в том, и в другом случае уменьшение спектральной плотности шума получается одинаковое — корень из увеличения длины. Но при использовании более длинного ДПФ у вас будет лучше спектральное разрешение. Что полезного в разрешении, когда априорно известно, что синусоида одна? На мой взгляд, это значит, что при удвоении длины БПФ, бин с сигналом раздвоится и от него отделится другой бин с шумом. То есть за счёт этого произойдёт уменьшение шума в корень из 2. Но тогда комбинация этих двух предложений в цитате с союзом "но" как бы "притянута за уши"
Сообщение отредактировал GetSmart - Oct 21 2011, 12:34
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 21 2011, 13:11
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
CRLB можно вычислить по этой формуле: RMS(df) / Fs = .551 / ((RMS(сигнал) / RMS(шум)) * sqrt(N * (N^2 - 1))). А Ваши результаты близко?
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 21 2011, 13:53
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(SPACUM @ Oct 21 2011, 18:11)  CRLB можно вычислить по этой формуле: RMS(df) / Fs = .551 / ((RMS(сигнал) / RMS(шум)) * sqrt(N * (N^2 - 1))). А Ваши результаты близко? А не подскажете RMS(сигнал) / RMS(шум) из представленной мной ранее формулы, в которой рандом умножен на 6 ? Кроме того, я полагаю, N (число выборок) я должен брать до 8-кратного увеличения нулями? Ну и RMS(df) прямо я не могу оценить. У меня ошибкой считается отклонение пика ДПФ более чем на на 3/8 гармоники. То бишь на 1/2 гармоники. Хотя, могу в проге сделать правильный подсчёт этого значения.
Сообщение отредактировал GetSmart - Oct 21 2011, 13:57
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 21 2011, 15:11
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(GetSmart @ Oct 21 2011, 17:53)  А не подскажете RMS(сигнал) / RMS(шум) из представленной мной ранее формулы, в которой рандом умножен на 6 ? Кроме того, я полагаю, N (число выборок) я должен брать до 8-кратного увеличения нулями? Ну и RMS(df) прямо я не могу оценить. У меня ошибкой считается отклонение пика ДПФ более чем на на 3/8 гармоники. То бишь на 1/2 гармоники. Хотя, могу в проге сделать правильный подсчёт этого значения. Это корень из основополагающей формулы. RMS - это понятно, N - число использованных результатов АЦП, нули - это метод и здесь не причем. По моему опыту в начале и конце спектра все намного хуже. Сама формула для нормального распределения шума, у Вас оно равномерное, для точности я бы просто посчитал RMS. Формула взята из:(http://www.google.ru/url?sa=t&source=web&cd=2&sqi=2&ved=0CCQQFjAB&url=http%3A%2F%2Fwww.ws.binghamton.edu%2Ffowler%2Ffowler%2520personal%2520page%2FEE522_files%2FEECE%2520522%2520Notes_08%2520Ch_3%2520CRLB%2520Examples%2520in%2520Book.pdf&rct=j&q=CRLB%20frequency%20estimation&ei=lP6KTpenFtC1hAfRy4TcAw&usg=AFQjCNGznlK-qkbdyIdnHjDpC8hcoPmi0Q&cad=rjt).
Сообщение отредактировал SPACUM - Oct 21 2011, 15:55
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|