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

 
 
> fft/ifft для последовательности длиной 768 (=512+256)
PriBoris
сообщение Jul 27 2010, 08:33
Сообщение #1


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

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Какой эффективный алгоритм для длин такого типа (2^n+2^(n-1)) выбрать ?
Вопрос возник при попытке реализации фильтрации с помощью быстрой линейной свёртки. Длина фильтра почти 256 точек, данные поступают в реальном времени блоками по 512.

Сообщение отредактировал PriBoris - Jul 27 2010, 08:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bahurin
сообщение Jul 27 2010, 10:04
Сообщение #2


Местный
***

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



Цитата(PriBoris @ Jul 27 2010, 12:33) *
Какой эффективный алгоритм для длин такого типа (2^n+2^(n-1)) выбрать ?
Длина фильтра почти 256 точек, данные поступают в реальном времени блоками по 512.


если надо поставить фильтр, например ФНЧ, то быстрее всего это БИХ - фильтр рассчитать и использовать. В этом случае выши 256 точек сведутся к БИХ фильтру порядка не больше 10.

Если же очень хочется ких фильтр, то тогда 512 точек сигнала переводите в спектр и потом уже спектр умножаете на частотную характеристику фильтра, и переводите через ifft. Как-то я не нашел в вашем вопросе 738 точек, поскольку:
Цитата(PriBoris @ Jul 27 2010, 12:33) *
данные поступают в реальном времени блоками по 512.



Сообщение отредактировал bahurin - Jul 27 2010, 10:07
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 27 2010, 10:23
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(связист @ Jul 27 2010, 13:43) *
Кажется Вы пытаетесь сказать новое слово в цифровой обработке сигналов...

Попытка не пытка! Тогда уж я еще одно новое слово скажу smile.gif
В чем, собственно, недостаток FFT в практическом смысле? В прежде всего в его циклическом характере. FFT преобразует массив так, как будто он закольцован, хотя на самом деле этого нет.
Вот практический тому пример. Положим, мы преобразуем массив данных, полученных от АЦП. Причем измеренный сигнал имеет некий линейный тренд, выражающийся в том, что уровень сигнала в первой точке массива не совпадает с уровнем в конечной (например, база сигнала постоянно повышается со временем). Такое поведение входного сигнала довольно обычно и называется дрейфом.
Однако FFT-алгоритм нам на зло станет рассматривать этот массив, как свернутый в кольцо, а потому усмотрит в нем чудовичный разрыв непрерывности в том месте, где происходит склейка в кольцо. Из этого "уступа" в частотном образе сигнала появятся большие вклады не только высокочастностных составляющих, но и низкочастотных. И все лишь для того, чтобы этот уступ воспроизвести. Можно, конечно, окнами с ними бороться - это традиционный путь. А вот я "изобрела" совсем простой путь, но исключительно эффективнный. Он состоит в том, что надо дополнить массив (примерно в два раза до следующего размера, кратного степени числа 2), но только не нулями! Вместо нулей следует в этом месте провести НАКЛОННУЮ ПРЯМУЮ ЛИНИЮ, которая одним свои концом исходит из последней точки исходных данных, а другим концом должна дойти до конца рассширенного массива именно на тот уровнь, соотвествующий первой точке исходных данных. Тогда при склейке в кольцо окажется, что переход получился максимально плавным.
Такой метод практически не дает паразитных вкладов в частотный спектр, возникающих из-за перепада уровней на концах массива данных, а потому и не нуждается ни в каких окнах или дополнительных фильтрах.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- PriBoris   fft/ifft для последовательности длиной 768 (=512+256)   Jul 27 2010, 08:33
- - Xenia   Цитата(PriBoris @ Jul 27 2010, 12:33) Воп...   Jul 27 2010, 09:03
|- - PriBoris   ЦитатаБыть может здесь было бы проще дополнить мас...   Jul 27 2010, 09:13
|- - DRUID3   Цитата(PriBoris @ Jul 27 2010, 12:13) Да,...   Jul 27 2010, 09:16
- - связист   Цитата(PriBoris @ Jul 27 2010, 12:33) Как...   Jul 27 2010, 09:10
|- - PriBoris   Цитата(связист)Про эффективные алгоритмы лучше все...   Jul 27 2010, 12:21
|- - DRUID3   Цитата(PriBoris @ Jul 27 2010, 15:21) При...   Jul 27 2010, 12:48
|- - PriBoris   Цитата(DRUID3)Это мегаерундище... Лучше сесть и сп...   Jul 27 2010, 13:02
- - thermit   768 = 3*2^8 последняя стадия по основанию 3, остал...   Jul 27 2010, 09:20
|- - Xenia   Цитата(PriBoris @ Jul 27 2010, 13:13) Да,...   Jul 27 2010, 09:31
|- - связист   Цитата(Xenia @ Jul 27 2010, 13:31) Если в...   Jul 27 2010, 09:43
|- - Xenia   Цитата(связист @ Jul 27 2010, 13:43) Наск...   Jul 27 2010, 09:51
||- - bahurin   Цитата(Xenia @ Jul 27 2010, 14:23) А вот ...   Jul 27 2010, 10:46
|||- - Xenia   Цитата(bahurin @ Jul 27 2010, 14:46) 1. в...   Jul 27 2010, 11:35
|||- - DRUID3   Цитата(Xenia @ Jul 27 2010, 14:35) И что ...   Jul 27 2010, 11:57
|||- - bahurin   Цитата(Xenia @ Jul 27 2010, 15:35) Основа...   Jul 27 2010, 12:20
||- - DRUID3   Цитата(Xenia @ Jul 27 2010, 13:23) Попытк...   Jul 27 2010, 11:03
||- - Xenia   Цитата(DRUID3 @ Jul 27 2010, 15:03) P.P.S...   Jul 27 2010, 12:40
||- - DRUID3   Цитата(Xenia @ Jul 27 2010, 15:40) В прин...   Jul 27 2010, 14:25
||- - PriBoris   Второстепенные вопросы остались. Если кто-то может...   Jul 27 2010, 14:45
|- - PriBoris   Цитата(bahurin @ Jul 27 2010, 14:04) Как-...   Jul 27 2010, 10:39
- - thermit   ЦитатаPriBoris: Обясните пожалуйста, я не понимаю ...   Jul 27 2010, 12:50
- - thermit   ЦитатаDRUID3: Лучше сесть и спокойно разобраться -...   Jul 27 2010, 13:16
- - thermit   Никаких 512-и быть тут не может, т к результат све...   Jul 27 2010, 20:06
|- - PriBoris   Цитата(thermit)Никаких 512-и быть тут не может, т ...   Jul 28 2010, 09:49
|- - DRUID3   Цитата(thermit @ Jul 27 2010, 23:06) Ника...   Jul 28 2010, 11:56
- - thermit   ЦитатаDRUID3: Согласно самому определению свертки ...   Jul 29 2010, 11:52
|- - bahurin   Цитата(thermit @ Jul 29 2010, 15:52) КИХ ...   Jul 30 2010, 05:44
- - ivan219   А какого размера относительно длинны массива должн...   Jul 30 2010, 08:11
- - thermit   Длине импульсной характеристики без 1. Цитатаbahu...   Jul 30 2010, 08:21


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

 


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


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