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

 
 
 
Reply to this topicStart new topic
> Есть ли простой способ взять БПФ с нелинейным шагом по бинам?, (с целью повышение разрешения по частоте в НЧ диапазоне)
tmtlib
сообщение Oct 26 2011, 04:35
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531



Если брать ДПФ, то всё просто - меняю частоту опорной синусоиды с необходимым шагом и перемножаю на сигнал. Работает медленно.
Чисто гипотетический пример: для низких частот шаг 1Гц, средних - 50Гц, для высоких - 100Гц.

Можно немного ускорить и взять БПФ с разрешением 1Гц вместо ДПФ, а лишние данные выкинуть. Но для высоких частот выкидывать по 99 бинов как-то расточительно. Да и тоже не особо быстро работает, точек-то много.

По сути я в поисках подобного подхода:

Есть исходные данные, пусть это 16384 отсчётов. Далее идёт нечто вроде БПФ, но для низких частот оно использует все 16384, потом где-то доходит до 8192, 4096 на средних и только для высоких, к примеру только 512,64. Соответственно в НЧ диапазоне алгоритм пыхтит, так как перемножений много, а на высоких - летает.

В принципе я представляю себе следующую картину:
пусть мы преобразование фурье в 16384 отсчёта представим в виде схемы с перемножением бабочек. Затем на спектре выделим ненужные бины и по ходу перемножения бабочек в обратную сторону занулим "деревья" перемножений, которые не будут видны в финальном спектре.

Может кто что знает, как такое называется?



Go to the top of the page
 
+Quote Post
GetSmart
сообщение Oct 26 2011, 04:59
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Какого рода сигналы будут анализироваться?
Если простые звуковые сигналы, то в больших блоках ВЧ сигналы могут быть т.с. "необъективными".


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
tmtlib
сообщение Oct 26 2011, 05:19
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531



Для высокочастотной области мне достаточно фурье по 256 точек. А вот для низких хотелось бы получить 16384. Т.е. мне хотелось бы взять такое преобразование, которое давало бы для ВЧ высокое временное разрешение и низкое частотное, а для НЧ - низкое временное разрешение и высокое частотное. Спектр при этом должен обновляться не весь сразу: быстро в ВЧ области и медленно в НЧ. Например, 1000-ный отсчёт спектра 100 раз в секунду, 1-ый - 1 раз в 100 секунд. Если спектр развернуть по времени, должен получиться равнобедренный треугольник с основанием вверху. Треугольник заполнен амплитудами. По-моему такое много где может применяться, видел где-то советовали "Q TRANSFORM", но по-моему не совсем то.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Oct 26 2011, 05:41
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Тогда берите блоки сэмплов разной длины для разных частот (ВЧ/СЧ/НЧ). Потому как брать один длинный блок (хоть 16384) и искать в нём ВЧ, дело неблагодарное, если искать там звуки речи, музыки и многие другие.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
petrov
сообщение Oct 26 2011, 09:07
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Нету быстрого преобразования с не равноотстоящими частотами.
Посмотрите каскадное соединение QMF банков фильтров, например в книге Multirate Systems and Filter Banks - Vaidyanathan.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Oct 26 2011, 09:29
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(tmtlib @ Oct 26 2011, 08:35) *
Может кто что знает, как такое называется?


Еще как вариант можно посмотреть Warped FFT
Go to the top of the page
 
+Quote Post
ivan219
сообщение Oct 26 2011, 11:38
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



Герцель по сравнению с ДПФ в 2 раза выгоднее.
И расчёт можно вести по одному периоду с достаточно большим разрешением на НЧ. Но разрешение по частоте будет экспоненциальное с ростом частоты разрешение падает.

Сообщение отредактировал ivan219 - Oct 26 2011, 11:40
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Oct 26 2011, 12:47
Сообщение #8


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

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



Разбейте сигнал на частотные полосы с помощью кроссовера, а затем к каждой полосе примените БПФ нужного размера. Для экономии вычислений полосовые сигналы с кроссовера можно прореживать.

Всё зависит от вашей задачи. Если нужно критическое сэмплирование, то вместо кроссовера используйте вейвлет-преобразование, а вместо БПФ — МДКТ.
Go to the top of the page
 
+Quote Post

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

 


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


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