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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Реализация фильтра
_Anatoliy
сообщение Jun 19 2013, 12:23
Сообщение #16


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(alex_os @ Jun 18 2013, 11:18) *
Нужно использовать результаты предидущих блоков. Как вариант см. код ниже. Используется тот факт что свертка суммы последовательностей есть сумма сверток. Хорошо написано было про это кажется у Рабинера с Голдом.

Проясните,пожалуйста,один вопрос. У Вас в скрипте используется цикл 1:7,для примера это очень подходит. Вопрос касается практической реализации - можно ли этот цикл сделать бесконечным? Не станет ли алгоритм неустойчивым в процессе длительной работы? Я имею ввиду накопление погрешности фиксированной точки при вычислениях. Или нужно применять какие-то меры?
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jun 20 2013, 06:26
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(_Anatoliy @ Jun 19 2013, 16:23) *
Проясните,пожалуйста,один вопрос. У Вас в скрипте используется цикл 1:7,для примера это очень подходит. Вопрос касается практической реализации - можно ли этот цикл сделать бесконечным? Не станет ли алгоритм неустойчивым в процессе длительной работы? Я имею ввиду накопление погрешности фиксированной точки при вычислениях. Или нужно применять какие-то меры?


Цикл может быть сколь угодно длинным. Накопление погрешности не происходит. Рекурсия отсутствует, т.е. выходной
блок данных зависит от входных отсчетов, но не зависит от предидущего выходного блока.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 20 2013, 08:17
Сообщение #18


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(alex_os @ Jun 20 2013, 07:26) *
Цикл может быть сколь угодно длинным. Накопление погрешности не происходит. Рекурсия отсутствует, т.е. выходной
блок данных зависит от входных отсчетов, но не зависит от предидущего выходного блока.

Спасибо!
Только всё равно пока не выходит каменный цветок.
1).Входной поток данных с АЦП равен 1GSPS.Понятно,что FFT на такой скорости я сделать не смогу.Если КИХ-фильтры легко распараллеливаются для снижения тактовой частоты,то как сделать такое распараллеливание для FFT я пока не представляю.
2).Допустим я нашёл метод распараллеливания FFT на два канала,тогда скорость работы каждого канала будет 500МГц. Думаю что для Виртекса это нормальная частота. Считаем дальше : длина ИХ составляет 25000 отсчётов,предполагаю(может ошибаюсь) что при распараллеливании FFT длина ИХ уменьшится вдвое,получаем 12500 отсчётов. Из приведенного Вами скрипта видно что размер FFT равен удвоенной длине ИХ,итого требуемый размер FFT составит 32768. FFT такого размера на частоте 500Мгц будет выполняться 132 мкс плюс IFFT , итого 264 мкс что больше требуемых 100 мкс.
Поправьте,плз,если где ошибся.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jun 20 2013, 08:30
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(_Anatoliy @ Jun 20 2013, 12:17) *
Спасибо!
Только всё равно пока не выходит каменный цветок.
1).Входной поток данных с АЦП равен 1GSPS.Понятно,что FFT на такой скорости я сделать не смогу.Если КИХ-фильтры легко распараллеливаются для снижения тактовой частоты,то как сделать такое распараллеливание для FFT я пока не представляю.


Так нужно сигнал снести в ноль (если еще не снесен) отфильтровать и децимировать раза в 2-3. Центральная частота ЛЧМ примерно известна?


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 20 2013, 08:50
Сообщение #20


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(alex_os @ Jun 20 2013, 09:30) *
Так нужно сигнал снести в ноль (если еще не снесен) отфильтровать и децимировать раза в 2-3. Центральная частота ЛЧМ примерно известна?

Центральную частоту сигнала я могу сам выбирать.Сигнал широкополосный (примерно 350МГц), тактовая 1ГГЦ самое то. Правда есть вариант расщепить в аналоге на Real и Imag и применить двойной АЦП с тактовой 500МГц,но не уверен что в такой широкой полосе удасться получить малый разброс фазовых и амплитудных характеристик.

Вот я ступил sad.gif

Ведь если использовать один АЦП для реального сигнала, а в ПЛИС умножить его на комплексную экспоненту с нужной частотой (снести в ноль) то тогда действительно можно выполнить децимацию в два раза.Тогда вместо 264мкс получим 132мкс,возможно удастся договориться.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 20 2013, 13:46
Сообщение #21


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(_Anatoliy @ Jun 20 2013, 10:50) *
Ведь если использовать один АЦП для реального сигнала, а в ПЛИС умножить его на комплексную экспоненту с нужной частотой (снести в ноль) то тогда действительно можно выполнить децимацию в два раза.Тогда вместо 264мкс получим 132мкс,возможно удастся договориться.

Но распараллеливание FFT всё равно нужно,без него те же 264мкс и получаются.Кто нибудь знает как это делается? wacko.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 20 2013, 13:55
Сообщение #22


Гуру
******

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



Цитата(_Anatoliy @ Jun 20 2013, 17:46) *
Но распараллеливание FFT всё равно нужно,без него те же 264мкс и получаются.Кто нибудь знает как это делается? wacko.gif


Бабочку можно сделать не только по основанию 2, но и 4,8,16... вплоть до однотактовой комбинационной схемы на весь блок.


Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 20 2013, 14:02
Сообщение #23


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(petrov @ Jun 20 2013, 15:55) *
Бабочку можно сделать не только по основанию 2, но и 4,8,16... вплоть до однотактовой комбинационной схемы на весь блок.

Это если самому писать.Я пока пробую с IPcore FFT,для сравнения 32768 точек RADIX2 = 623мкс,RADIX4 = 262мкс,STREAMING = 132мкс.
Т.е. единственный выход - самому писать с нужным основанием? Мне бы так микросекунд за 50 успеть...
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 20 2013, 14:12
Сообщение #24


Гуру
******

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



Ну а что такого написать FFT самому? Куда проще то? Диодами моргать чтоли? Так можно вообще всю задачу заказать кому-нибудь.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 20 2013, 14:16
Сообщение #25


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(petrov @ Jun 20 2013, 16:12) *
Ну а что такого написать FFT самому? Куда проще то? Диодами моргать чтоли? Так можно вообще всю задачу заказать кому-нибудь.

Да я ж не против,просто корки для того и написаны чтобы меньше рутины было.А раз корку применить не удастся - буду сам писать.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jun 20 2013, 14:26
Сообщение #26


Знающий
****

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



Вы помоему круто просчитались. Для вычисления непрерывной апериодической свертки с ядром в 25000 отсчетов и дпф 32768 у вас размер блока данных 32768-25000+1=7769 отсчетов что на 500msps составит ~ 15.5 us. Так что тока параллелить. Но не бпф, а саму свертку разбивать на маленькие куски например по 2к и эти сравнительно короткие свертки вычислять уже параллельно штатной корой. Если у плис ресурса хватит, конечно...

Сообщение отредактировал thermit - Jun 21 2013, 08:28
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 20 2013, 14:34
Сообщение #27


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(thermit @ Jun 20 2013, 16:26) *

Спасибо за замечание,пока не готов ответить,нужно ещё раз всё переосмыслить.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jun 21 2013, 21:06
Сообщение #28


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(_Anatoliy @ Jun 20 2013, 17:34) *

кстати вот тут ребята плотно обсуждали создание FFT
даже что-то поучили...
возможно поможет...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 23 2013, 08:51
Сообщение #29


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Maverick @ Jun 21 2013, 22:06) *

Спасибо,эту тему я видел.Сейчас прорабатываю мысль thermit со штатной коркой,пока результата нет.Если не выйдет - буду смотреть в сторону FFT с Radix-16.

По ходу вопрос возник. При децимации входного сигнала будет ухудшаться чувствительнось согласованного фильтра? Ведь при децимации , например, в 2 раза ИХ станет в 2 раза короче.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 24 2013, 04:50
Сообщение #30


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Сдаётся мне что применение быстрой свёртки для этой задачи - это путь в никуда. Полный фиаско. wacko.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 14:29
Рейтинг@Mail.ru


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