Фильтр реализовать

Доброго времени суток тебе All!

Задача - реализовать полосовой фильтр, пока только задана полоса пропускания

0,5-20 Гц.

Крутизна "скатов" АЧХ пока не актуальна.

Остальные параметры - как получиться.

Просто я никогда этого не делал - если есть возможность - ткните носом в русскоязычные ресурсы по теме реализации фильтров на ОМК. Потому как без бызы разбираться в англоязычных тяжко.

Желательно на примеры реализации - но только на ассемблере.

Да - реализовывать надо на AtTiny15, входной сигнал вводится через встроенное АЦП. Выходные данные - уровень сигнала попадающего в данную полосу.

Будь счастлив(а) All... С уважением Wladimir.

Reply to
Wladimir Tchernov
Loading thread data ...

Wladimir, ты ещё здесь сидишь?

Суббота Февраль 18 2006 09:42, Wladimir Tchernov wrote to All:

WT> Задача - реализовать полосовой фильтр, пока только задана полоса WT> пропускания 0,5-20 Гц. WT> Крутизна "скатов" АЧХ пока не актуальна. WT> Остальные параметры - как получиться. WT> Просто я никогда этого не делал - если есть возможность - ткните WT> носом в русскоязычные ресурсы по теме реализации фильтров на ОМК. WT> Потому как без бызы разбираться в англоязычных тяжко. WT> Желательно на примеры реализации - но только на ассемблере. WT> Да - реализовывать надо на AtTiny15, входной сигнал вводится через WT> встроенное АЦП. Выходные данные - уровень сигнала попадающего в данную WT> полосу.

Hа входе АЦП в любом случае придётся ставить ФHЧ. Соответственно, полоса уже будет ограничена сверху. А если на его входе предусмотреть разделительный конденсатор - то и снизу полоса будет ограничена. Поскольку крутизна скатов АЧХ несущественна - задача решена ;)

А зачем вообще нужна такая странная штука?

Георгий

Reply to
George Shepelev

Доброго времени суток тебе George!

19 Фев 06 14:42, George Shepelev -> Wladimir Tchernov:

WT>> Задача - реализовать полосовой фильтр, пока только задана полоса WT>> пропускания 0,5-20 Гц. WT>> Крутизна "скатов" АЧХ пока не актуальна. WT>> Остальные параметры - как получиться. WT>> Просто я никогда этого не делал - если есть возможность - ткните WT>> носом в русскоязычные ресурсы по теме реализации фильтров на ОМК. WT>> Потому как без бызы разбираться в англоязычных тяжко. WT>> Желательно на примеры реализации - но только на ассемблере. WT>> Да - реализовывать надо на AtTiny15, входной сигнал вводится WT>> через встроенное АЦП. Выходные данные - уровень сигнала WT>> попадающего в данную полосу.

GS> Hа входе АЦП в любом случае придётся ставить ФHЧ.

Если-б все было так просто - там места только на самое простое RC звено, причем емкость не более 4,7 мкФ.

GS> Соответственно, GS> полоса уже будет ограничена сверху. А если на его входе предусмотреть GS> разделительный конденсатор - то и снизу полоса будет ограничена. GS> Поскольку крутизна скатов АЧХ несущественна - задача решена ;)

GS> А зачем вообще нужна такая странная штука?

Микроволновый доплеровский датчик движения - но надо его в ооооочень малые габариты впихнуть.

Будь счастлив(а) George... С уважением Wladimir.

Reply to
Wladimir Tchernov

Привет! WT> Задача - реализовать полосовой фильтр, пока только задана полоса WT> пропускания 0,5-20 Гц. WT> Да - реализовывать надо на AtTiny15, входной сигнал вводится через WT> встроенное АЦП. Выходные данные - уровень сигнала попадающего в данную WT> полосу. Несколько лет назад, мне надо было запрограммировать ПИД регулятор (MCS51+ассемблер)мои действия:

1) Я нарисовал классическую схему ПИД-регулятора на операционниках. 2) Представил ПИД-регулятор в виде последовательности математических операций (по большей части как оказалось это умножением с накоплением результата). 3) Написал программу ПИД-регулятора на паскале для ПК которая забирала по UART данные для рассчётов у контроллера, результат рассчётов передаёт контроллеру. Для этого первого эксперимента математика была floatpoint. Главная цель проверить правильно ли я понял принцип работы ПИД в плане его программной реализации, и поиск путей оптимизации алгоритма. (На п.1,2,3 ушло 2 недели) 4)реализация FixedPoint арифметики на MCS51. (На п.4 ушло 3 недели, главные тормоза - проверка корректной работы математики) 5)Первый ПИД на FixedPoint. (на п.5 затратил 3 дня) 6)Тотальная Оптимизация Вычислений (как много вычислений оказывается можно пропустить если определёны границы точности и диапазон изменения коэффициентов и постоянных времени) (на п.6 затратил 1 неделю)

Результат - частота работы регулятора 20000Гц, при частоте проца 22МГц., на входе и выходе 12бирные данные, постоянныя времени от 0.0001-3сек, коэффициент усиления 1-255.

Предлагаю (если других, более конкретных ответов не будет) повторить мой путь, а именно:

1) Нарисовать аналоговую схему полосового фильтра 2) .... и так далее :-)

Дерзай! Нет ничего невозможного!

Замути хитовый расколбас

Reply to
Gerasimov Gerasim

Mon Feb 20 2006 12:10, Gerasimov Gerasim wrote to Wladimir Tchernov:

GG> Hесколько лет назад, мне надо было запрограммировать ПИД регулятор GG> (MCS51+ассемблер)мои действия: GG> 1) Я нарисовал классическую схему ПИД-регулятора на операционниках.

[...]

GG> Предлагаю (если других, более конкретных ответов не будет) повторить мой GG> путь, а именно: GG> 1) Hарисовать аналоговую схему полосового фильтра GG> 2) .... и так далее :-) Это концептуально неправильный путь, который ведет к плохим алгоритмам, неэффективным вычислениям и изобретениям велосипедов. Возьмите учебник по обработке сигналов.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (с) Вальтер Скотт

Reply to
Vladimir Vassilevsky

VV> Это концептуально неправильный путь, который ведет к плохим алгоритмам, VV> неэффективным вычислениям и изобретениям велосипедов. VV> Возьмите учебник по обработке сигналов. Ну, на безрыбье и сам раком станешь... это я сейчас знаю о ru.dsp и утянул кучу книжек с сайта "Санитара" Жени :-) А путь не так уж и плох, когда сам дошёл до сути - запоминается лучше учебников.

С уважением, Герасимов.

Reply to
Gerasimov Gerasim

Wladimir, ты ещё здесь сидишь?

Понедельник Февраль 20 2006 10:09, Wladimir Tchernov wrote to George Shepelev:

GS>> Hа входе АЦП в любом случае придётся ставить ФHЧ. WT> Если-б все было так просто - там места только на самое простое RC WT> звено, причем емкость не более 4,7 мкФ.

Где станет электролит на 4,7 мкФ (ФВЧ), там скорее всего найдётся место и под пару SMD резисторов и керамический кондёрчик (ФHЧ). Простое и надёжное решение...

GS>> Соответственно, GS>> полоса уже будет ограничена сверху. А если на его входе GS>> предусмотреть разделительный конденсатор - то и снизу полоса GS>> будет ограничена. Поскольку крутизна скатов АЧХ несущественна - GS>> задача решена ;) GS>> А зачем вообще нужна такая странная штука? WT> Микроволновый доплеровский датчик движения - но надо его в ооооочень WT> малые габариты впихнуть.

Стало быть будут излучатель и приёмник со смесителем. Похоже, это хозяйство и будет определять габариты...

Георгий

Reply to
George Shepelev

Gerasimov, ты ещё здесь сидишь?

Понедельник Февраль 20 2006 13:10, Gerasimov Gerasim wrote to Wladimir Tchernov:

WT>> Задача - реализовать полосовой фильтр, пока только задана полоса WT>> пропускания 0,5-20 Гц. WT>> Да - реализовывать надо на AtTiny15, входной сигнал вводится WT>> через встроенное АЦП. Выходные данные - уровень сигнала WT>> попадающего в данную полосу. GG> Hесколько лет назад, мне надо было запрограммировать ПИД регулятор GG> (MCS51+ассемблер)мои действия: GG> 1) Я нарисовал классическую схему ПИД-регулятора на операционниках. GG> 2) Представил ПИД-регулятор в виде последовательности математических GG> операций (по большей части как оказалось это умножением с накоплением GG> результата).

Ты будешь удивлён, но цифровые фильтры делаются именно на наборе элементов накопления с весовыми коэффициентами. Hе надо идти в обход ;)

Проблема в том, что для реализации ЦФ с указанной полосой может потребоваться слишком много элементов накопления либо слишком высокая их разрядность (не хватит ресурсов контроллера). Поясняю на конкретном примере; вот _простейшая_ реализация ЦФ HЧ:

суммирование весовой коэффициент ┌─────┐ ┌─────┐ вход ──┤ __ │ │ │ │ \ ├────────┤ *K ├─────┬── выход ┌─┤ /_ │ │ │ │ │ └─────┘ └─────┘ │ │ │ │ │ │ элемент задержки │ │ ┌─────┐ │ │ │ tau │ │ └────────<───────┤ ├─────┘ │ │ └─────┘

Поскольку задана полоса рабочих частот до 20 кГц, выборки должны следовать с частотой больше 40 кГц. При этом (анализ во временнОй области) требуется обеспечить время нарастания на "ступеньку" порядка 2 секунд (определяется нижней частотой полосы частот). Желающие могут поискать оптимальную структуру реализации и подумать о требуемой разрядности промежуточных результатов, а также о трудоёмкости операции умножения с такой разрядностью...

Георгий

Reply to
George Shepelev

Wed Feb 22 2006 14:37, George Shepelev wrote to Gerasimov Gerasim:

WT>>> Задача - реализовать полосовой фильтр, пока только задана полоса WT>>> пропускания 0,5-20 Гц. WT>>> Да - реализовывать надо на AtTiny15, входной сигнал вводится WT>>> через встроенное АЦП.

GS> Проблема в том, что для реализации ЦФ с указанной полосой может GS> потребоваться слишком много элементов накопления либо слишком высокая их GS> разрядность (не хватит ресурсов контроллера).

Вечно вам чего-то не хватает, почтенный академик. Проблема не в ЦФ, проблема в головах.

GS> Поскольку задана полоса рабочих частот до 20 кГц, выборки должны GS> следовать GS> с частотой больше 40 кГц. При этом (анализ во временнОй области) GS> требуется обеспечить время нарастания на "ступеньку" порядка 2 секунд GS> (определяется нижней частотой полосы частот). Желающие могут поискать GS> оптимальную структуру реализации и подумать о требуемой разрядности GS> промежуточных результатов, GS> а также о трудоёмкости операции умножения с такой разрядностью...

Браво, академик. Вы превзошли сами себя. А я берусь реализовать указанный фильтр в рамках 16-битной арифметики ATTiny26. Совсем без умножений. Чисто из принципа, за скромные $100.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (с) Вальтер Скотт

Reply to
Vladimir Vassilevsky

Vladimir, ты ещё здесь сидишь?

Четверг Февраль 23 2006 03:28, Vladimir Vassilevsky wrote to George Shepelev:

GS>> Проблема в том, что для реализации ЦФ с указанной полосой может GS>> потребоваться слишком много элементов накопления либо слишком GS>> высокая их разрядность (не хватит ресурсов контроллера). VV> Вечно вам чего-то не хватает, почтенный академик. Проблема не в ЦФ, VV> проблема в головах.

Вам бы всё флеймить...

GS>> Поскольку задана полоса рабочих частот до 20 кГц, выборки должны GS>> следовать GS>> с частотой больше 40 кГц. При этом (анализ во временнОй области) GS>> требуется обеспечить время нарастания на "ступеньку" порядка 2 GS>> секунд (определяется нижней частотой полосы частот). Желающие GS>> могут поискать оптимальную структуру реализации и подумать о GS>> требуемой разрядности промежуточных результатов, а также о GS>> трудоёмкости операции умножения с такой разрядностью... VV> Браво, академик. Вы превзошли сами себя. А я берусь реализовать VV> указанный фильтр в рамках 16-битной арифметики ATTiny26. VV> Совсем без умножений. Чисто из принципа, за скромные $100.

"Языком трепать - не мешки ворочать" (c)

Георгий

Reply to
George Shepelev

Добpого вpемени суток тебе, George!

Помню, Monday January 0-1406 1910, George Shepelev pазговаpивал с Gerasimov Gerasim:

GS> Проблема в том, что для реализации ЦФ с указанной полосой может GS> потребоваться слишком много элементов накопления либо слишком высокая GS> их разрядность (не хватит ресурсов контроллера). Поясняю на конкретном GS> примере; вот _простейшая_ реализация ЦФ HЧ:

GS> суммирование весовой коэффициент GS> ┌─────┐ ┌─────┐ GS> вход ──┤ __ │ │ │ GS> │ \ ├────────┤ *K ├─────┬── выход GS> ┌─┤ /_ │ │ │ │ GS> │ └─────┘ └─────┘ │ GS> │ │ GS> │ │ GS> │ элемент задержки │ GS> │ ┌─────┐ │ GS> │ │ tau │ │ GS> └────────<───────┤ ├─────┘ GS> │ │ GS> └─────┘

GS> Поскольку задана полоса рабочих частот до 20 кГц, выборки должны

Вообще-то до 20 Гц (Геpц)

GS> следовать с частотой больше 40 кГц. При этом (анализ во временнОй GS> области) требуется обеспечить время нарастания на "ступеньку" порядка GS> 2 секунд (определяется нижней частотой полосы частот). Желающие могут GS> поискать оптимальную структуру реализации и подумать о требуемой GS> разрядности промежуточных результатов, а также о трудоёмкости операции GS> умножения с такой разрядностью...

До свиданья, George! С yважением -- Wladimir Tchernov.

... Если ты встретил женщину своей мечты, то можешь

Reply to
Wladimir Tchernov

Добpого вpемени суток тебе, George!

Помню, Monday January 0-1406 1910, George Shepelev pазговаpивал с Wladimir Tchernov:

GS> Wladimir, ты ещё здесь сидишь? Да и со сломанной pyкой :(

GS>>> Hа входе АЦП в любом случае придётся ставить ФHЧ. WT>> Если-б все было так просто - там места только на самое простое RC WT>> звено, причем емкость не более 4,7 мкФ.

GS> Где станет электролит на 4,7 мкФ (ФВЧ), там скорее всего найдётся GS> место и под пару SMD резисторов и керамический кондёрчик (ФHЧ). GS> Простое и надёжное решение...

Для yказанного диапазона нyжно 470 мкФ

GS>>> Соответственно, GS>>> полоса уже будет ограничена сверху. А если на его входе GS>>> предусмотреть разделительный конденсатор - то и снизу полоса GS>>> будет ограничена. Поскольку крутизна скатов АЧХ несущественна - GS>>> задача решена ;) GS>>> А зачем вообще нужна такая странная штука? WT>> Микроволновый доплеровский датчик движения - но надо его в WT>> ооооочень малые габариты впихнуть.

GS> Стало быть будут излучатель и приёмник со смесителем.

Пpичем пеpвое и втоpое pеализовано на одном тpанзистоpе...

GS> Похоже, это GS> хозяйство и будет определять габариты...

Потом УHЧ на опеpационнике (тип не знаю, но знаю цеколевкy) - но SOT23 - потом тиня 15ая на обpаботкy - все в габаpитах спичечного коpобка.

До свиданья, George! С yважением -- Wladimir Tchernov.

... Если ты встретил женщину своей мечты, то можешь

Reply to
Wladimir Tchernov

Добpого вpемени суток тебе, Vladimir!

Помню, Tuesday January 0-1405 1910, Vladimir Vassilevsky pазговаpивал с George Shepelev:

VV> Браво, академик. Вы превзошли сами себя. А я берусь реализовать VV> указанный фильтр в рамках 16-битной арифметики ATTiny26. VV> Совсем без умножений. Чисто из принципа, за скромные $100.

Лyчше pасскожи как пpимеpно. Да - тиня всего-лишь 15ая а веpхняя частота 20 Геpц (а не килогеpц).

Да 100 баксов не дам :) - ибо пpоект на чистом альтpyизме - для само (так сказать) совеpшенствования в области pазpаботки. Пpосто никогда не делал фильтpов и даже не пpедставляю как, а тyт вместо того, что-бы посоветовать начинаете меpяться pазными местами.

До свиданья, Vladimir! С yважением -- Wladimir Tchernov.

... Если ты встретил женщину своей мечты, то можешь

Reply to
Wladimir Tchernov

Нерекурсивный, с "удобными" коэффициентами. А как их подбирать?

Reply to
Kirill Frolov

Sun Feb 26 2006 22:54, Kirill Frolov wrote to Vladimir Vassilevsky:

Подбираете $100 и присылаете мне. Про рекурсивные коэффициенты говорить не обязательно, сами разберемся.

VLV

"Церковь - младшая сестра партии" (с) Войнович

Reply to
Vladimir Vassilevsky

Sun Feb 26 2006 08:58, Wladimir Tchernov wrote to Vladimir Vassilevsky:

VV>> Браво, академик. Вы превзошли сами себя. А я берусь реализовать VV>> указанный фильтр в рамках 16-битной арифметики ATTiny26. VV>> Совсем без умножений. Чисто из принципа, за скромные $100.

WT> Лyчше pасскожи как пpимеpно. Да - тиня всего-лишь 15ая а веpхняя частота WT> 20 Геpц (а не килогеpц). WT> Да 100 баксов не дам :)

Hет ножек - нет варенья :)

WT> - ибо пpоект на чистом альтpyизме -

Альтруистический вариант:

Сделаю, если Академик не будет писать сюда и подпишется на SU.HARDW.OTHER :)

VLV

"Церковь - младшая сестра партии" (с) Войнович

Reply to
Vladimir Vassilevsky

Привет, Kirill! Вы писали to Vladimir Vassilevsky on Sun, 26 Feb 2006 20:54:59 +0000 (UTC):

??>> Браво, академик. Вы превзошли сами себя. А я берусь реализовать ??>> указанный фильтр в рамках 16-битной арифметики ATTiny26. ??>> Совсем без умножений. Чисто из принципа, за скромные $100. KF> Нерекурсивный, с "удобными" коэффициентами. А как их подбирать?

Кроме коэффициентов есть еще частота выборок. Ее в этой задаче, как я понимаю, можно выбирать произвольной, т.е. подогнать под "удобные" коэффициенты.

With best regards, Leha Bishletov. E-mail: snipped-for-privacy@rol.ru

Reply to
Leha Bishletov

Wladimir, ты ещё здесь сидишь?

Воскресенье Февраль 26 2006 09:53, Wladimir Tchernov wrote to George Shepelev:

GS>> Поскольку задана полоса рабочих частот до 20 кГц, выборки должны WT> Вообще-то до 20 Гц (Геpц)

Давне-енько я так не зевал! ;) Спасибо за поправку, задача оказалась сильно проще, чем я думал. Вот к чему может привести постоянная работа с аудиоданными...

Георгий

Reply to
George Shepelev

Wladimir, ты ещё здесь сидишь?

Воскресенье Февраль 26 2006 09:54, Wladimir Tchernov wrote to George Shepelev:

GS>> Wladimir, ты ещё здесь сидишь? WT> Да и со сломанной pyкой :(

:-(

WT>>> Если-б все было так просто - там места только на самое простое WT>>> RC звено, причем емкость не более 4,7 мкФ. GS>> Где станет электролит на 4,7 мкФ (ФВЧ), там скорее всего GS>> найдётся место и под пару SMD резисторов и керамический кондёрчик GS>> (ФHЧ). Простое и надёжное решение... WT> Для yказанного диапазона нyжно 470 мкФ

А если брать резистор с номиналом порядка мегома? ;)

WT>>> Микроволновый доплеровский датчик движения - но надо его в WT>>> ооооочень малые габариты впихнуть. GS>> Стало быть будут излучатель и приёмник со смесителем. WT> Пpичем пеpвое и втоpое pеализовано на одном тpанзистоpе...

Какая-то у тебя ну оч-чень радиолюбительская схемка получается...

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

GS>> Похоже, это хозяйство и будет определять габариты... WT> Потом УHЧ на опеpационнике (тип не знаю, но знаю цеколевкy) - но SOT23

Есть УHЧ - значит сверху полоса уже ограничена, это хорошо и правильно. Кстати, не забыл, что выборки должны идти чаще, чем удвоенная частота среза УHЧ? Иначе "верхние" частоты диапазона могут после оцифровки оказаться внизу полосы частот... Определившись с частотой выборок можешь приступать к разработке цифрового фильтра.

WT> - потом тиня 15ая на обpаботкy - все в габаpитах спичечного коpобка.

Что-ж, погляди книжки по цифровым фильтрам, там масса вариантов реализации, выбери подходящий, ресурсов должно хватить. Разумно вначале смоделировать обработку на персоналке, а не пытаться сразу шить однокристаллку. Гораздо проще отлаживать прошивку, когда уверен, что сам цифровой фильтр рассчитан правильно ;)

Георгий

Reply to
George Shepelev

Хорошо, рекурсивный с удобными коэффициентами.

B За 100 уёв я и сам умею mkfilter в скрипт завернуть и прямым перебором подобра удобные.

Reply to
Kirill Frolov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.