|
Вычисление спектра выборки, когда выборка больше, чем требуемое разрешение |
|
|
|
Oct 20 2008, 14:36
|
Частый гость
 
Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234

|
Допустим нужно нам получить спектр сигнала и допустим нужно сделать для этого именно N-точечное БПФ. Однако у нас есть выборка сигнала длинной kN, где k - целое число > 1. Тут имеется три варианта: 1) Взять любые подряд идущие N-точек из выборки и посчитать на них БПФ, но так мы теряем полезный сигнал, который можно было бы использовать. 2) Сделать k раз БПФ и результат усреднить. Вроде бы хорошо, но долго. 3) Каким-то образом усреднить выборку до N-точек и сосчитать один раз БПФ.
Собственно по 3-му пункту мне достался какой-то код, который не до конца понятно что делает. В чем я успел разобраться так это в том, что он умножает всю выборку на окно Кайзера длинной kN, затем ещё на какое-то окно, а затем хитрым образом складывает отсчеты сигнала. А именно так, если s - это исходная выборка умноженная на окна, а a - выборка, которая подается на БПФ, то: a_0 = s_0 + s_N + s_{2*N} + ... + s_{(k-1)*N} a_1 = s_1 + s_{N+1} + s_{2*N+} + ... + s_{(k-1)*N+1} ... a_{N-1} = s_{N-1} + s_{2*N-1} + ... + s_{k*N - 1}
Собственно, кто-нить пояснит что здесь за математика такая? Как это работает и что здесь делается.
|
|
|
|
|
 |
Ответов
|
Aug 22 2009, 06:00
|

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

|
Цитата(DMax @ Oct 20 2008, 18:36)  Допустим нужно нам получить спектр сигнала и допустим нужно сделать для этого именно N-точечное БПФ. Однако у нас есть выборка сигнала длинной kN, где k - целое число > 1. Тут имеется три варианта: 1) Взять любые подряд идущие N-точек из выборки и посчитать на них БПФ, но так мы теряем полезный сигнал, который можно было бы использовать. 2) Сделать k раз БПФ и результат усреднить. Вроде бы хорошо, но долго. 3) Каким-то образом усреднить выборку до N-точек и сосчитать один раз БПФ.
Собственно, кто-нить пояснит что здесь за математика такая? Как это работает и что здесь делается. Это называется полифазное БПФ (polyphase FFT). Читай что не ясно спрашивай.
|
|
|
|
|
Aug 22 2009, 08:53
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(bahurin @ Aug 22 2009, 10:00)  Алгоритм обладает недостатками: 1. Чувствительность к выбору сглаживающего окна. Неправильный выбор окна приводит к потерям гармоник сигнала. Это необходимо учитывать при использовании полифазного БПФ. Это не недостаток, если разработчик выбрал такой фильтр что АЧХ соседних поднесущих не перекрываются и соответственно есть гармоники которые ни в один из фильтров не попадают то это недостаток разработчика а не быстрого алгоритма. Цитата(bahurin @ Aug 22 2009, 10:00)  Алгоритм обладает недостатками: 2. Полифазное БПФ - преобразование с потерями, и для него отсутствует обратное преобразование. При правильном выборе фильтра есть обратное преобразование, и сигнал проходя через прямое-обратное преобразование не претерпевает никаких изменений кроме задержки, это называется perfect reconstruction.
|
|
|
|
|
Aug 22 2009, 09:45
|

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

|
Цитата(petrov @ Aug 22 2009, 12:53)  Это не недостаток, если разработчик выбрал такой фильтр что АЧХ соседних поднесущих не перекрываются и соответственно есть гармоники которые ни в один из фильтров не попадают то это недостаток разработчика а не быстрого алгоритма. Все таки это недостаток, так как алгоритм перестает быть универсальным и заставляет пользователя предварительно исследовать окна на предмет потерь гармоник сигнала. Кроме того из приведенных примеров явно следует, что уменьшается амплитуда гармоники при различных сглаживающих окнах. Цитата(petrov @ Aug 22 2009, 12:53)  При правильном выборе фильтра есть обратное преобразование, и сигнал проходя через прямое-обратное преобразование не претерпевает никаких изменений кроме задержки, это называется perfect reconstruction. Может быть в частных случаях это и возможно, но в общем случае это не реально, как бы вы не выбирали окно. Если было 4096 точек и вы смогли бы представить сигнал безошибочно всего 1024 точками спектра, то почему бы вам не взять 1024 точки спектра используя тот же алгоритм не представить этот спектр скажем 128 точками и т.д. все это было бы можно свернуть в одно число!!! Поэтому при использовании полифазного БПФ можно говорить лишь о приближенном представлении. Разумеется в некоторых частных случаях можно произвести и безошибочное восстановление, я не отрицаю, можно придумать много таких примеров, но я говорю об общем случае, когда нет никакой априорной информации о сигнале, кроме того что известно, что частота дискретизации выбрана по теореме отсчетов. Цитата(Xenia @ Aug 22 2009, 13:19)  Есть предложение получить суммы (или среднее) для каждой пачки из k последовательных значений (таких сумм получится ровно N), а затем получить их БФП, однократно применяя процедуру FFT. По идее должен получиться усредненный спектр. ТАК НЕЛЬЗЯ: возьмем сигнал 1 1 -1 -1 -1 -1 1 1 поделим на два сумма первых четырех отсчетов равна сумме вторых четырех и равна 0! Если исходный сигнал есть стационарный процесс с нулевым средним то такое усреднение во времени ни к чему хорошему точно не приведет!
Сообщение отредактировал bahurin - Aug 22 2009, 09:56
|
|
|
|
|
Aug 22 2009, 10:20
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(bahurin @ Aug 22 2009, 13:45)  Все таки это недостаток, так как алгоритм перестает быть универсальным и заставляет пользователя предварительно исследовать окна на предмет потерь гармоник сигнала. Кроме того из приведенных примеров явно следует, что уменьшается амплитуда гармоники при различных сглаживающих окнах. От быстрого алгоритма можно абстрагироваться. Делаем преобразование в лоб, N синхронных гетеродинов сносят каждый свою частоту на нулевую, затем N FIR фильтров, затем прореживание в N раз, и чья вина что фильтры слишком узкие и пробелы в частотной области есть, быстрая реализация этого алгоритма здесь совершенно не при чём. Цитата(bahurin @ Aug 22 2009, 13:45)  Может быть в частных случаях это и возможно, но в общем случае это не реально, как бы вы не выбирали окно. Если было 4096 точек и вы смогли бы представить сигнал безошибочно всего 1024 точками спектра, то почему бы вам не взять 1024 точки спектра используя тот же алгоритм не представить этот спектр скажем 128 точками и т.д. все это было бы можно свернуть в одно число!!! Поэтому при использовании полифазного БПФ можно говорить лишь о приближенном представлении. Разумеется в некоторых частных случаях можно произвести и безошибочное восстановление, я не отрицаю, можно придумать много таких примеров, но я говорю об общем случае, когда нет никакой априорной информации о сигнале, кроме того что известно, что частота дискретизации выбрана по теореме отсчетов. Perfect reconstruction банки фильтров для любых сигналов работают и не надо никакой априорной информации. Гипотетический Perfect reconstruction банк фильтров имеет 1024 FIR фильтра на 1024*4=4096 коэффициентов каждый, на выходе каждого фильтра сигнал прорежен в 1024 раза, входной блок в 4096 отсчётов на выходе будет представлен 4-мя блоками по 1024 отсчёта по которым может идеально точно восстановлен.
|
|
|
|
Сообщений в этой теме
DMax Вычисление спектра выборки Oct 20 2008, 14:36 petrov Читайте про банки фильтров. а_0...a_{N-1} - это вы... Oct 21 2008, 20:03 ivan219 А можно по подробнее??? Nov 23 2008, 21:02 ivan219 Up Aug 21 2009, 19:06 _ea_ Над s выполняется БПФ размера kn, находится только... Aug 22 2009, 01:53    bahurin ЦитатаPerfect reconstruction банки фильтров для лю... Aug 23 2009, 09:59     petrov Цитата(bahurin @ Aug 23 2009, 13:59) Поли... Aug 23 2009, 10:15   Xenia Цитата(bahurin @ Aug 22 2009, 12:45) ТАК ... Aug 22 2009, 12:34 _ea_ Цитата(bahurin @ Aug 22 2009, 13:00) Это ... Aug 23 2009, 14:24  bahurin Цитата(_ea_ @ Aug 23 2009, 18:24) Не совс... Aug 23 2009, 16:30 Xenia Есть предложение получить суммы (или среднее) для ... Aug 22 2009, 09:19 ivan219 А причём тут частота Найквиста? Нужно к примеру то... Aug 23 2009, 09:59 bahurin Цитата(ivan219 @ Aug 23 2009, 13:59) А пр... Aug 23 2009, 10:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|