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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Анализатор спектра ультразвукового диапазона, Анализатор спектра до 100кГц
DRUID3
сообщение Mar 24 2010, 18:30
Сообщение #31


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(TigerSHARC @ Mar 24 2010, 20:12) *
Да, кстати про зеркальный канал. В реальных девайсах вообще стоит RC-цепь первого порядка...

Ну это Вы загнули... Может в "китайщине" какой...

Цитата(TigerSHARC @ Mar 24 2010, 20:12) *
кстати про децибелы. 40 - это опять по книгам. Это если хотите, чтобы максимально возможная погрешность от наложения спектра составила 0,01%. А так нужно выбрать в зависимости от требуемой точности (но это опять же теория)

40 dB это 100 раз, следовательно 1%, а не 0,01%... Вообще DR=85dB и подавление зеркалки <100 dB - смешно. Но для учебного проекта сойдет и так biggrin.gif ...

Цитата(TigerSHARC @ Mar 24 2010, 20:12) *
to DRUID3 А что значит +1024 (просто интересно, чтоб знать)

ну все +1 если чо "зачОтное" прочтут... если "очень зачОтное" то +1000... Ну а у нас же форум такой... блоки должны быть кратны степени 2-ки потому +1024 )))...

Nukers я позавчера кажется обещал Вам ответить, но не сдержал обещания - был занят, но то что я тогда напЕйсал - сохранил. Отсылаю сейчас...

Цитата(Nukers @ Mar 15 2010, 15:09) *
Уважаемый DRUID3. Есть к вам вопрос.

Досточтимый Nukers, йа отвечать Вам...

Цитата(Nukers @ Mar 15 2010, 15:09) *
Уолт Кестер в Главе 5, стр. 22 Быстрое Преобразование Фурье http://www.analog.com.ru/Public/5.pdf пишет, что максимальное время выполнения БПФ при реализации в реальном масштабе времени рассчитывается как:

Tmax=N/fs

Ну начнем с того, что смысл этих расчетов показать за сколько максимум должно успевать отрабатывать FFT что-бы не началась потеря блоков.

Если честно - Вам не о чем волноваться, процессор который выбран для проекта рассчитан на заведомо большие скорости. Но...
Пусть у Вас Fs = 250 kHz. Хм... Кстати, для удобства - а не подогнать ли нам тактовую под кратность блоку длинной степень 2-ки? Чуть затруднит физическую реализацию - но облегчит восприятие. Тогда 1024 * 25 = 256 000 sps. Очевидно, что нужно успевать отработать одно БПФ за 1/25 s = 0.04 s. 40ms = 40 000 us;

Цитата(Nukers @ Mar 15 2010, 15:09) *
(Для ADSP-21375 при 266МГц и 1024 точках это занимает ~27мкс)

Теоретически - без учета расходов на пересылку памяти (а они там мизерные) - успеваем...

Цитата(Nukers @ Mar 15 2010, 15:09) *
Таким образом при N=1024 и fs=250кГц получаем Tmax=4096мкс.

Где-то вкралась оБшиПка...

Цитата(Nukers @ Mar 15 2010, 15:09) *
Я понял так:

1) Включили прибор
2) Подождали неск. тактов пока закончатся переходные процессы (в осн. для аналоговой части).

И как Вы собираетесь это делать? NOP-ами? А зачем? Переходные процессы в аналоговой части, а параллельно ей загрузка и инициализация в цифровой... Ну мигнет пару раз экранчик выдавая билеберду. Но от своего ПК Вы же не требуете загрузки за микросекунды?

Цитата(Nukers @ Mar 15 2010, 15:09) *
3) Копим первые 1024 отсчета с fs=250кГц - это и занимает 4096мкс. (В это время подпрограмма выполнения БПФ просто не вызывается=процессор простаивает).

Вообщем и целом - верно...

Цитата(Nukers @ Mar 15 2010, 15:09) *
4) Обрабатываем 1024 полученных отсчета по алгоритму БПФ. (Для ADSP-21375 при 266МГц и 1024 точках это занимает ~27мкс).
5) На пункт 3.
...и.т.д.


Цитата(Nukers @ Mar 15 2010, 15:09) *
Скажите, я не ошибся? Верно ли, что пока копятся первых 1024 отсчета у меня есть 4096мкс, чтобы выполнить БПФ на 1024 точки, а так же на сопутствующие операции?

слегонца... smile.gif

P.S.: я так понял - от моего чудесного квазискользящего чудо-буфера Вы отказались. Ну и правильно... В конце-концов это же учебный проект и тут главное показать, что Вы осознаете что делаете...

P.P.S.: Кстати, йа кажеЦЦо понял зачем Вы упоминали FIR... Это же диплом - и нужно будет привести расчет чего-нибудь на пару страниц крупным шрифтом. А у Вас в Т.з. ДД 85 dB. Нужно будет "доказать", что требование выполняется. Так?


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Nukers
сообщение Mar 25 2010, 06:40
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



Цитата
Ну начнем с того, что смысл этих расчетов показать за сколько максимум должно успевать отрабатывать FFT что-бы не началась потеря блоков.
Если честно - Вам не о чем волноваться, процессор который выбран для проекта рассчитан на заведомо большие скорости. Но...
Пусть у Вас Fs = 250 kHz. Хм... Кстати, для удобства - а не подогнать ли нам тактовую под кратность блоку длинной степень 2-ки? Чуть затруднит физическую реализацию - но облегчит восприятие. Тогда 1024 * 25 = 256 000 sps.;

1024*25=25600 (может так 1024*250=256kSPS ?)

Цитата
Очевидно, что нужно успевать отработать одно БПФ за 1/25 s = 0.04 s. 40ms = 40 000 us

(Может 1/250 s? Тогда 4ms=4000us).
Понятно. Если применять ваш чудо-квазискользящий буфер, то нужно обработать только один отсчет (то бишь значение одного временного бина, вроде так, ткните пальцем сильнее, если ошибся) за 4000us, сдвинуть указатель адреса, принять новый отсчет и.т.д

Но все же хочу обрабатывать блоками по 1024 отсчета (это в моем случае, в общем N отсчетов), т.к. производительности процессора с запасом.
Тут памяти нужно 2N ячеек, N ячеек для обрабатываемых в данный момент N отсчетов и N ячеек для копящихся следующих отсчетов (С вашим чудо-буфером только N ячеек, что круто несомненно).
Тем самым, пока заполняются следующие N ячеек памяти (это примерно 4096us), обрабатываю данные из N текущих ячеек памяти (за время: Допустим фильтрация(~100us)+БПФ(пусть 60us)+Умножение на функцию окна(~100us)=260us). Следовательно у меня есть оооочень широкий диапазон варьирования времени, даже можно увеличить количество точек, но это пока не рассматривал.

Цитата
слегонца... smile.gif

Ну да слегонца. Но если, скажем я выполню БПФ за 4000us (в моем случае), то потери блоков не будет и все должно быть тип-топ. (Процессор-то тянет).

Цитата
P.S.: я так понял - от моего чудесного квазискользящего чудо-буфера Вы отказались. Ну и правильно... В конце-концов это же учебный проект и тут главное показать, что Вы осознаете что делаете...

На данной стадии это проще для понимания. Делаем БПФ над предыдущими 1024-мя отсчетами, пока копятся следующие 1024.
Идея вашего буфера мне понятна, но у меня нет такой большой скорости данных, чтобы сейчас этим заниматься (времени мало) smile.gif

Цитата
P.P.S.: Кстати, йа кажеЦЦо понял зачем Вы упоминали FIR... Это же диплом - и нужно будет привести расчет чего-нибудь на пару страниц крупным шрифтом. А у Вас в Т.з. ДД 85 dB. Нужно будет "доказать", что требование выполняется. Так?

Ага, господам из комиссии это будет проще для понимания.

Сообщение отредактировал Nukers - Mar 25 2010, 06:50
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 25 2010, 07:33
Сообщение #33


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Nukers @ Mar 25 2010, 08:40) *
1024*25=25600 (может так 1024*250=256kSPS ?)

да-да-да... Писал полусонным, потому и не отослал... я вот вообще о чем - 1024 точки(512 точек спектра, если экранчик 640x480 - самое то) и 25 кадров в секунду - быстрее человек не воспринимает... каждые 10 FFT поточечно суммируем... Т.е. Вам удобнее конечно будет подогнать частоту под это произведение...

Цитата(Nukers @ Mar 25 2010, 08:40) *
(Может 1/250 s? Тогда 4ms=4000us).

Сори!!! smile3046.gif ... разумеется Вы правы...

Цитата(Nukers @ Mar 25 2010, 08:40) *
Понятно. Если применять ваш чудо-квазискользящий буфер, то нужно обработать только один отсчет (то бишь значение одного временного бина, вроде так, ткните пальцем сильнее, если ошибся) за 4000us, сдвинуть указатель адреса, принять новый отсчет и.т.д

Нет... если Вы хотите FFT именно на 1024 точки то с "моим" буфером нужно бы было делать одно FFT с приходом новых 256 отсчетов... но разумеется на все 1024 точки... Не так уж и накладно...

Цитата(Nukers @ Mar 25 2010, 08:40) *
Но все же хочу обрабатывать блоками по 1024 отсчета (это в моем случае, в общем N отсчетов), т.к. производительности процессора с запасом.
Тут памяти нужно 2N ячеек, N ячеек для обрабатываемых в данный момент N отсчетов и N ячеек для копящихся следующих отсчетов (С вашим чудо-буфером только N ячеек, что круто несомненно).

С моим чудо-буфером нужно будет 2*N+1 памяти, Вашим способом тоже, не забывайте - нужно будет суммировать 10 FFT идущих подряд... И все это еще умножить на 2 если алгоритм FFT без бит-реверса - сейчас влом заглядывать, но индусы из AD его любят...

Цитата(Nukers @ Mar 25 2010, 08:40) *
Тем самым, пока заполняются следующие N ячеек памяти (это примерно 4096us), обрабатываю данные из N текущих ячеек памяти (за время: Допустим фильтрация(~100us)+БПФ(пусть 60us)+Умножение на функцию окна(~100us)=260us).

Умножение на функцию окна гораздо легковеснее чем FFT и тем более FIR. FIR с ИХ в 1024 точки убивает весь выиграш по производительности от FFT. Лучше выравнивать коэффициенты после FFT. Затраты будут сравнимы с наложением окна на блок...

Цитата(Nukers @ Mar 25 2010, 08:40) *
Следовательно у меня есть оооочень широкий диапазон варьирования времени, даже можно увеличить количество точек, но это пока не рассматривал.

Ну да слегонца. Но если, скажем я выполню БПФ за 4000us (в моем случае), то потери блоков не будет и все должно быть тип-топ. (Процессор-то тянет).

Ага, господам из комиссии это будет проще для понимания.

думаю да, все верно...

Цитата(Nukers @ Mar 25 2010, 08:40) *
На данной стадии это проще для понимания. Делаем БПФ над предыдущими 1024-мя отсчетами, пока копятся следующие 1024.
Идея вашего буфера мне понятна, но у меня нет такой большой скорости данных, чтобы сейчас этим заниматься (времени мало) smile.gif

да, я не против, тем более Вам это только для визуального отображения...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Nukers
сообщение Mar 25 2010, 07:55
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



Цитата
Умножение на функцию окна гораздо легковеснее чем FFT и тем более FIR. FIR с ИХ в 1024 точки убивает весь выиграш по производительности от FFT. Лучше выравнивать коэффициенты после FFT. Затраты будут сравнимы с наложением окна на блок...

Выравнивание бинов после FFT сможет обеспечить требуемый ДД (85dB)?

Похоже это еще один алгоритм - почище БПФ будет :D

Сообщение отредактировал Nukers - Mar 25 2010, 07:56
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 - 16:59
Рейтинг@Mail.ru


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