Перейти к содержанию
    

Полосовой фильтр на микроконтроллере

Уважаемые специалисты по DSP, скажите какие ресурсы и какой лучше алгоритм использовать для полосовой фильтрации на частоте 144КГц с полосой в 10КГц 4-го и выше порядка (желательно 8-го порядка)?

Предпологается использовать один из следующих микроконтроллеров:

1) MSP430F5418 25МГЦ аппаратный умножитель 32x32, DMA(предпочтительней)

2)STM32F303 Cortex M4 72МГц

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые специалисты по DSP, скажите какие ресурсы и какой лучше алгоритм использовать для полосовой фильтрации на частоте 144КГц с полосой в 10КГц 4-го и выше порядка (желательно 8-го порядка)?

Предпологается использовать один из следующих микроконтроллеров:

1) MSP430F5418 25МГЦ аппаратный умножитель 32x32, DMA(предпочтительней)

2)STM32F303 Cortex M4 72МГц

 

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

 

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Я предпологала не использовать готовые функции из CMSIS, а написать свой алгоритм с использованием ассемблера, причем заранее спросила про упрощенный или оптимизированный алгоритм под полосовой фильтр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему про частоту дискретизации ни слова?

видимо в качестве Fs подразумевается эта частота

для полосовой фильтрации на частоте 144КГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему про частоту дискретизации ни слова?

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

Для MSP430F5418 есть задумка для однобитного семплирования использовать порт SPI - в него последовательно опрашивать DI и использовать DMA канал для накопления массива двухбайтных слов.

 

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

Изменено пользователем Alla_student

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Для MSP430F5418 есть задумка для однобитного семплирования использовать порт SPI - в него последовательно опрашивать DI и использовать DMA канал для накопления массива двухбайтных слов.

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Прошу прщения, болела, поэтому не отвечала. Спасибо, за комментарий, а то остальные специалисты здесь молчат то ли из за моих глупых вопросов, то ли из за того, что не знают что ответить:(. Вы бы не могли привести более подробное описание реализации фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки или хотя бы ссылки по этим темам?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прщения, болела, поэтому не отвечала. Спасибо, за комментарий, а то остальные специалисты здесь молчат то ли из за моих глупых вопросов, то ли из за того, что не знают что ответить:(. Вы бы не могли привести более подробное описание реализации фильтра Костаса и каскадного ФНЧ с понижением частоты оцифровки или хотя бы ссылки по этим темам?

Уже много лет на МК ничего не пишу - все на ПЛИС делаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уже много лет на МК ничего не пишу - все на ПЛИС делаю.

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Alla_student:

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

 

 

Нельзя. Ибо тупняк. Зачем понижать частоту оцифровки если ее уже можно взять невысокой? Вам нужно преобразовывать несущую в 0?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так делают, чтобы облегчить аналоговый фильтр на входе АЦП.

 

Зачем понижать частоту оцифровки если ее уже можно взять невысокой?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fat Robot:

Так делают, чтобы облегчить аналоговый фильтр на входе АЦП.

 

Когда делают, когда нет. В данном случае офигенных требований к входному фильтру похоже не предвидится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так делают, чтобы облегчить аналоговый фильтр на входе АЦП.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...