Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Полосовой фильтр на микроконтроллере
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Alla_student
Уважаемые специалисты по DSP, скажите какие ресурсы и какой лучше алгоритм использовать для полосовой фильтрации на частоте 144КГц с полосой в 10КГц 4-го и выше порядка (желательно 8-го порядка)?
Предпологается использовать один из следующих микроконтроллеров:
1) MSP430F5418 25МГЦ аппаратный умножитель 32x32, DMA(предпочтительней)
2)STM32F303 Cortex M4 72МГц

Желательно описать подробно алгоритм, так как я пока до сих пор не разобралась во всех азах сигнальной обработки. - Книги читала/читаю
AlexandrY
Цитата(Alla_student @ Aug 26 2013, 13:18) *
Уважаемые специалисты по DSP, скажите какие ресурсы и какой лучше алгоритм использовать для полосовой фильтрации на частоте 144КГц с полосой в 10КГц 4-го и выше порядка (желательно 8-го порядка)?
Предпологается использовать один из следующих микроконтроллеров:
1) MSP430F5418 25МГЦ аппаратный умножитель 32x32, DMA(предпочтительней)
2)STM32F303 Cortex M4 72МГц

Желательно описать подробно алгоритм, так как я пока до сих пор не разобралась во всех азах сигнальной обработки. - Книги читала/читаю



Для STM32 надо взять библиотеку CMSIS DSP и просто измерить быстродействие фильтров.

А у MSP430 гарантированно не хватит быстродействия на такой фильтр.
Alla_student
Цитата(AlexandrY @ Aug 26 2013, 17:13) *
Для STM32 надо взять библиотеку CMSIS DSP и просто измерить быстродействие фильтров.

А у MSP430 гарантированно не хватит быстродействия на такой фильтр.

Я предпологала не использовать готовые функции из CMSIS, а написать свой алгоритм с использованием ассемблера, причем заранее спросила про упрощенный или оптимизированный алгоритм под полосовой фильтр.
STAR_IK
А почему про частоту дискретизации ни слова?
Serg76
Цитата(STAR_IK @ Aug 27 2013, 06:54) *
А почему про частоту дискретизации ни слова?

видимо в качестве Fs подразумевается эта частота
Цитата
для полосовой фильтрации на частоте 144КГц
Alla_student
Цитата(STAR_IK @ Aug 27 2013, 07:54) *
А почему про частоту дискретизации ни слова?

Я же привела типы микроконтроллеров - MS430F5418 можно однобитную оцифроку использовать для упрощения или внешний ADC на 1Ms, а в STM32F303 два параллельных по 5Ms можно использовать поочередно, да и 5Ms вполне достаточно.
Для MSP430F5418 есть задумка для однобитного семплирования использовать порт SPI - в него последовательно опрашивать DI и использовать DMA канал для накопления массива двухбайтных слов.

Но по существу вопроса так никто и не ответил до сих пор sad.gif Если не хватает вводных - спрашивайте.
Corner
Цитата(Alla_student @ Aug 27 2013, 16:52) *
Я же привела типы микроконтроллеров - MS430F5418 можно однобитную оцифроку использовать для упрощения или внешний ADC на 1Ms, а в STM32F303 два параллельных по 5Ms можно использовать поочередно, да и 5Ms вполне достаточно.
Для MSP430F5418 есть задумка для однобитного семплирования использовать порт SPI - в него последовательно опрашивать DI и использовать DMA канал для накопления массива двухбайтных слов.

Но по существу вопроса так никто и не ответил до сих пор sad.gif Если не хватает вводных - спрашивайте.


Как бы доказано, что для таких фильтров самое то схема Костаса на SIN/COS. Всего-то надо сгенерить синус и косинус, помножить на входной поток и дальше 2*ФНЧ над каждой компонентой отдельно. Причем ФНЧ можно сделать каскадный с понижением частоты оцифровки, вплоть до 40... 50 кГц (при полосе 10 кГц больше 40 кГц сэмплинг - излишество).
Alla_student
Цитата(Corner @ Aug 29 2013, 18:59) *
Как бы доказано, что для таких фильтров самое то схема Костаса на SIN/COS. Всего-то надо сгенерить синус и косинус, помножить на входной поток и дальше 2*ФНЧ над каждой компонентой отдельно. Причем ФНЧ можно сделать каскадный с понижением частоты оцифровки, вплоть до 40... 50 кГц (при полосе 10 кГц больше 40 кГц сэмплинг - излишество).

Прошу прщения, болела, поэтому не отвечала. Спасибо, за комментарий, а то остальные специалисты здесь молчат то ли из за моих глупых вопросов, то ли из за того, что не знают что ответитьsad.gif. Вы бы не могли привести более подробное описание реализации фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки или хотя бы ссылки по этим темам?
Corner
Цитата(Alla_student @ Sep 2 2013, 03:32) *
Прошу прщения, болела, поэтому не отвечала. Спасибо, за комментарий, а то остальные специалисты здесь молчат то ли из за моих глупых вопросов, то ли из за того, что не знают что ответитьsad.gif. Вы бы не могли привести более подробное описание реализации фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки или хотя бы ссылки по этим темам?

Уже много лет на МК ничего не пишу - все на ПЛИС делаю.
thermit
Думаю, msp. У него есть встроенный 12-бит ацп. Выбираем чд исходя из условия (2*144-10)/m> чд >(2*144+10)/(m+1) m - целое. Например 45 кгц. Полосовой рекурсивный фильтр 8-го порядка с 2-ой точностью даже половины ресурса msp не съест...
Alla_student
Цитата(Corner @ Sep 2 2013, 18:03) *
Уже много лет на МК ничего не пишу - все на ПЛИС делаю.

Без проблем, приведите пожалуйста пример на Verilog или VHDL? если вам не сложно!

Цитата(thermit @ Sep 2 2013, 18:21) *
Думаю, msp. У него есть встроенный 12-бит ацп. Выбираем чд исходя из условия (2*144-10)/m> чд >(2*144+10)/(m+1) m - целое. Например 45 кгц. Полосовой рекурсивный фильтр 8-го порядка с 2-ой точностью даже половины ресурса msp не съест...

Да, прекрасненько, спасибо - я понимаю, но можно привести практическую реализацию фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки?
thermit
Цитата
Alla_student:
Да, прекрасненько, спасибо - я понимаю, но можно привести практическую реализацию фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки?



Нельзя. Ибо тупняк. Зачем понижать частоту оцифровки если ее уже можно взять невысокой? Вам нужно преобразовывать несущую в 0?
Fat Robot
Так делают, чтобы облегчить аналоговый фильтр на входе АЦП.

Цитата(thermit @ Sep 3 2013, 15:01) *
Зачем понижать частоту оцифровки если ее уже можно взять невысокой?


А вообще девушка с колоссальным инженерным кругозором: и ЦОС, и плохое самочувствие, и проблемы индукционного нагрева, и гнутые корпуса из SolidWorks, и С#, и воспитательная работа среди посетителей форума. Для полноты картины не хватает катышков и присыпок для грудничков.
thermit
Цитата
Fat Robot:
Так делают, чтобы облегчить аналоговый фильтр на входе АЦП.


Когда делают, когда нет. В данном случае офигенных требований к входному фильтру похоже не предвидится.
Alla_student
Цитата(Fat Robot @ Sep 3 2013, 16:43) *
Так делают, чтобы облегчить аналоговый фильтр на входе АЦП.
А вообще девушка с колоссальным инженерным кругозором: и ЦОС, и плохое самочувствие, и проблемы индукционного нагрева, и гнутые корпуса из SolidWorks, и С#, и воспитательная работа среди посетителей форума. Для полноты картины не хватает катышков и присыпок для грудничков.

На большее не способны?! - По существу вопроса ответить не можите? - Тогда можете в другой теме в чужом "грязном белье" ковыряться...
Fat Robot
Могу по существу, Алла-студент. Или можу. Не уверен точно, но со временем определюсь. И не уверен, понравится ли Вам мой ответ. Но обещаю приложить максимум усилий, чтобы понравился.

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

Вместо этого Вы, Алла-студент, загаживаете неплохой, по сути, ресурс своим, Вы правильно сказали, "грязным бельем", а потом еще наводите порядки и огрызаетесь.

Искренне надеюсь, что мой ответ будет Вам полезен.

Цитата(Alla_student @ Sep 4 2013, 10:14) *
На большее не способны?! - По существу вопроса ответить не можите? - Тогда можете в другой теме в чужом "грязном белье" ковыряться...

Corner
Цитата(Alla_student @ Sep 3 2013, 02:55) *
Без проблем, приведите пожалуйста пример на Verilog или VHDL? если вам не сложно!
Да, прекрасненько, спасибо - я понимаю, но можно привести практическую реализацию фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки?

Принципиально не даю примеров. Могу только подсказывать что поискать.
Alla_student
Цитата(thermit @ Sep 2 2013, 18:21) *
Думаю, msp. У него есть встроенный 12-бит ацп. Выбираем чд исходя из условия (2*144-10)/m> чд >(2*144+10)/(m+1) m - целое. Например 45 кгц. Полосовой рекурсивный фильтр 8-го порядка с 2-ой точностью даже половины ресурса msp не съест...

И все таки, уважаемый thermit, не могли бы вы дать ссылки на подобную реализацию фильтра? В чем у этого фильтра получается экономия вычислительных ресурсов микроконтроллера?
thermit
Цитата
Alla_student:
И все таки, уважаемый thermit, не могли бы вы дать ссылки на подобную реализацию фильтра?


Едва ли вы такую реализацию найдете.

Цитата
В чем у этого фильтра получается экономия вычислительных ресурсов микроконтроллера?


У вас есть сигнал с полосой 139 - 149 кгц. Если его оцифровывать в лоб нужна частота дискретизации не менее 2*149 кгц.
На этой частоте дискретизации будет работать фильтр 4-го порядка например. 2 биквадратные секции по 5 macc = 10 macc/отсчет итого 2*149000*10 = 2.9 mips минимум.
Поскольку сигнал полосовой можно оцифровать его на частоте, существенно ниже 2*149 кгц. Например - 45кгц.
Получаем 45000*10 = 0.45 mips. Вот и экономия.

ps
На самом деле нужна еще цель фильтрации. Ну отфильтровали... Что дальше?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.