|
Полосовой фильтр на микроконтроллере, с наименьшими ресурсами. |
|
|
|
Aug 26 2013, 16:29
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(AlexandrY @ Aug 26 2013, 17:13)  Для STM32 надо взять библиотеку CMSIS DSP и просто измерить быстродействие фильтров.
А у MSP430 гарантированно не хватит быстродействия на такой фильтр. Я предпологала не использовать готовые функции из CMSIS, а написать свой алгоритм с использованием ассемблера, причем заранее спросила про упрощенный или оптимизированный алгоритм под полосовой фильтр.
|
|
|
|
|
Aug 27 2013, 08:37
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(STAR_IK @ Aug 27 2013, 06:54)  А почему про частоту дискретизации ни слова? видимо в качестве Fs подразумевается эта частота Цитата для полосовой фильтрации на частоте 144КГц
|
|
|
|
|
Aug 27 2013, 12:52
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(STAR_IK @ Aug 27 2013, 07:54)  А почему про частоту дискретизации ни слова? Я же привела типы микроконтроллеров - MS430F5418 можно однобитную оцифроку использовать для упрощения или внешний ADC на 1Ms, а в STM32F303 два параллельных по 5Ms можно использовать поочередно, да и 5Ms вполне достаточно. Для MSP430F5418 есть задумка для однобитного семплирования использовать порт SPI - в него последовательно опрашивать DI и использовать DMA канал для накопления массива двухбайтных слов. Но по существу вопроса так никто и не ответил до сих пор  Если не хватает вводных - спрашивайте.
Сообщение отредактировал Alla_student - Aug 27 2013, 12:57
|
|
|
|
|
Aug 29 2013, 14:59
|

Профессионал
    
Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815

|
Цитата(Alla_student @ Aug 27 2013, 16:52)  Я же привела типы микроконтроллеров - MS430F5418 можно однобитную оцифроку использовать для упрощения или внешний ADC на 1Ms, а в STM32F303 два параллельных по 5Ms можно использовать поочередно, да и 5Ms вполне достаточно. Для MSP430F5418 есть задумка для однобитного семплирования использовать порт SPI - в него последовательно опрашивать DI и использовать DMA канал для накопления массива двухбайтных слов. Но по существу вопроса так никто и не ответил до сих пор  Если не хватает вводных - спрашивайте. Как бы доказано, что для таких фильтров самое то схема Костаса на SIN/COS. Всего-то надо сгенерить синус и косинус, помножить на входной поток и дальше 2*ФНЧ над каждой компонентой отдельно. Причем ФНЧ можно сделать каскадный с понижением частоты оцифровки, вплоть до 40... 50 кГц (при полосе 10 кГц больше 40 кГц сэмплинг - излишество).
|
|
|
|
|
Sep 1 2013, 23:32
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(Corner @ Aug 29 2013, 18:59)  Как бы доказано, что для таких фильтров самое то схема Костаса на SIN/COS. Всего-то надо сгенерить синус и косинус, помножить на входной поток и дальше 2*ФНЧ над каждой компонентой отдельно. Причем ФНЧ можно сделать каскадный с понижением частоты оцифровки, вплоть до 40... 50 кГц (при полосе 10 кГц больше 40 кГц сэмплинг - излишество). Прошу прщения, болела, поэтому не отвечала. Спасибо, за комментарий, а то остальные специалисты здесь молчат то ли из за моих глупых вопросов, то ли из за того, что не знают что ответить  . Вы бы не могли привести более подробное описание реализации фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки или хотя бы ссылки по этим темам?
|
|
|
|
|
Sep 2 2013, 22:55
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(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 не съест... Да, прекрасненько, спасибо - я понимаю, но можно привести практическую реализацию фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки?
|
|
|
|
|
Sep 3 2013, 12:01
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Alla_student: Да, прекрасненько, спасибо - я понимаю, но можно привести практическую реализацию фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки? Нельзя. Ибо тупняк. Зачем понижать частоту оцифровки если ее уже можно взять невысокой? Вам нужно преобразовывать несущую в 0?
|
|
|
|
|
Sep 3 2013, 13:51
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Fat Robot: Так делают, чтобы облегчить аналоговый фильтр на входе АЦП. Когда делают, когда нет. В данном случае офигенных требований к входному фильтру похоже не предвидится.
|
|
|
|
|
Sep 4 2013, 07:14
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(Fat Robot @ Sep 3 2013, 16:43)  Так делают, чтобы облегчить аналоговый фильтр на входе АЦП. А вообще девушка с колоссальным инженерным кругозором: и ЦОС, и плохое самочувствие, и проблемы индукционного нагрева, и гнутые корпуса из SolidWorks, и С#, и воспитательная работа среди посетителей форума. Для полноты картины не хватает катышков и присыпок для грудничков. На большее не способны?! - По существу вопроса ответить не можите? - Тогда можете в другой теме в чужом "грязном белье" ковыряться...
|
|
|
|
|
Sep 4 2013, 08:07
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Могу по существу, Алла-студент. Или можу. Не уверен точно, но со временем определюсь. И не уверен, понравится ли Вам мой ответ. Но обещаю приложить максимум усилий, чтобы понравился. Тот бред сивой кобылы, что Вы тут пишете, Алла-студент, продиктован агрессивным невежеством, выраженном в нежелании использовать поисковые системы типа яндекса, гугла и википедии. Не говоря уж об освоении хоть какой-то базовой литературы по теме. Вместо этого Вы, Алла-студент, загаживаете неплохой, по сути, ресурс своим, Вы правильно сказали, "грязным бельем", а потом еще наводите порядки и огрызаетесь. Искренне надеюсь, что мой ответ будет Вам полезен. Цитата(Alla_student @ Sep 4 2013, 10:14)  На большее не способны?! - По существу вопроса ответить не можите? - Тогда можете в другой теме в чужом "грязном белье" ковыряться...
|
|
|
|
|
Dec 17 2013, 04:47
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(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 - Dec 17 2013, 04:47
|
|
|
|
|
Dec 17 2013, 09:59
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата 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 На самом деле нужна еще цель фильтрации. Ну отфильтровали... Что дальше?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|