Jump to content

    

Ruslan1

Свой
  • Content Count

    2418
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Ruslan1

  • Rank
    Гуру
  • Birthday 01/09/1973

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Кишинев

Recent Profile Visitors

9288 profile views
  1. Уважаемый Самурай, все получилось! Спасибо огромное!! С помощью Вашей подсказки и Википедии получилось сделать универсальный вариант, с любыми нумераторами-деноминаторами 2-й степени (в стартовом коде было a0=b0=1). Оставлю тут , может пригодится кому-нибудь: % second-order bilinear transform % input: % Ha(s) = ( b0*s^2 + b1*s + b2 ) / (a0*s^2 + a1*s + a2) % % output: (digital biquad filter, a0 = 1) % Hd(z) = (b0 + b1*z^-1 + b2*z^-2) / (a0 + a1*z^-1 + a2* z^-2) % % reference: % #1 (General second-order biquad transformation): https://en.wikipedia.org/wiki/Bilinear_transform % #2 (correction for case w0 != w1): https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=148759 clear all %% input data b_in = [23 31.1 799.4]; a_in = [19 7.109 25.27]; fs = 1000; %% read data from input arrays b0 = b_in(1); b1 = b_in(2); b2 = b_in(3); a0 = a_in(1); a1 = a_in(2); a2 = a_in(3); %% calculation w0 = sqrt(b2); w1= sqrt(a2) T = 1/fs; K0 = w0/tan(w0*T/2); K1 = w1/tan(w1*T/2); %not normalled coefficients bn0 = b0*K0^2 + b1*K0+b2; bn1 = 2*b2-2*b0*K0^2; bn2 = b0*K0^2 - b1*K0 + b2; an0 = a0*K1^2 + a1*K1 + a2; an1 = 2*a2 - 2*a0*K1^2; an2 = a0*K1^2 - a1*K1 + a2; % correction for denominator k = (K1/K0)^2; %k=1 % Normally the constant term in the denominator must be normalized to 1 bd0 = k* bn0 / an0; bd1 = k* bn1 / an0; bd2 = k* bn2 / an0; ad0 = an0 / an0; ad1 = an1 / an0; ad2 = an2 / an0; %% output data bd = [bd0 bd1 bd2] ad = [ad0 ad1 ad2] %% test [bd_matlab,ad_matlab] = bilinear(b_in,a_in,fs); ad ad_matlab bd bd_matlab fvtool (bd_matlab,ad_matlab); fvtool (bd,ad)
  2. Вопрос про усиление: у меня по этим формулам получается та же форма АЧХ, но только с ослаблением сигнала, от 0 dB и вниз, а если через Матлабовскую функцию- то все как у оригинала H(s), где-то на +30dB. Какую константу я забыл? Имею очень похожую формулу: H(S) = s^2 + 31.1 s + 799.4 --------------------- s^2 + 7.109 s + 25.27 если делаю в Матлабе: b = 1 31.1 799.4 a = 1 7.109 25.27 fs = 1000 [bd,ad] = bilinear(b,a,fs) то имею коэффициенты фильтра И по ним fvtool строит именно то, что у аналогового прототипа (та же форма и то же усиление). Но вот если иду через вышеприведенные формулы (чтобы совсем не трогать код, "вытащил" из моих констант эти кси и омега): % s^2 + 31.1 s + 799.4 % --------------------- % s^2 + 7.109 s + 25.27 clear all M_PI = pi om1 = sqrt(25.27); om0= sqrt(799.4) ksi0 = 31.1 / (2*om0); ksi1 = 7.109 / (2*om1); fs = 1000; % sample rate = 1000 SPS Tsam=1/fs; tau0=.5/tan(Tsam*om0/2.); tau1=.5/tan(Tsam*om1/2.); d=1.+(4.*tau1*(tau1+ksi1)); b0=(1.+(4.*tau0*(tau0+ksi0)))/d; b1=2.*(1.-4.*tau0*tau0)/d; b2=(1.+(4.*tau0*(tau0-ksi0)))/d; a1=2.*(1.-4.*tau1*tau1)/d; a2=(1.+(4.*tau1*(tau1-ksi1)))/d; a0=1; то имею коэффициенты: вижу [bd], уменьшенный примерно в 31 раз если сравнить с результатом функции матлаба.
  3. Спасибо, посмотрю все упомянутое. Когда начинаю читать описание редакторов, то очень часто на первое место выносят такие приемущества, которые я не использовал и пока не собираюсь. Но зато не описывают вещи, которые там должны быть. Такое ощущение, что за красивостью и данью моде многое базово нужное теряется или прячется очень глубоко (и в описании и в системе меню). Еще и от привычек зависит- если какую-то функцию часто использую, а в другом редакторе ее нет- то непонятно как им вообще пользуются, но ведь пользуются же. Эклипс когда-то ставил, но снес. Наверное не дорос еще. Визуал Студия - встречал в интернете отзывы что тяжелая и медленная, но может и врут. Слик Едит - про этот не задумывался, надо поставить.
  4. Доброго времени суток всем! Что-то я не нашел темы про редакторы? Если уже было- дайте линк, пожалуйста. История вопроса: По дороге много чего использовал, в том числе и встроенные в IDE (IAR, MPLAB, Keil), но как-то не зацепило. Раньше сидел-работал в Multi-Edit. Но когда с DOS на Виндоус перешел, стало неудобно запускать, и чем дальше винды развивались, тем глючнее было. Перешел на MED Editor, собственно на нем и сижу. Работает хорошо. Но не развивается уже давно (последний релиз был в 2007 году). Хочу найти редактор, который умеет - работать с проектом, открывать все те окна, которые я вчера закрыл (желательно и курсор в ту же позицию поставить как было до закрытия данного файла) - подсветку синтакисиса Си, хорошо если можно определять или доопределять, что и как светить. - сворачивать/разворачивать функции-циклы (как, например, редактор в Матлабе) Вышеперечисленное вроде все (многие) могут. Но вот следующую опцию я не нашел: - переходить по функциям и возвращаться обратно: Перешел внутрь, и далее опять внутрь, потом так же по "дереву" могу вернуться. Как эта опция работает в MED: 1) на функции f(x) на "f" поставил курсор- вызвал контекстное меню правой кнопкой мыши- выбрал пункт "Jump to section", и попал на данную фекцию (в любом файле проекта, если надо- то откроет этот файл в новом окне). 2) Поработал с этим файлом- так же через меню вернулся обратно, если файл был открыт из-за перехода- то он закроется автоматически, если я его менял- то спросит о сохранении перед закрытием. И вот я не вижу редакторов, которые так могут прыгать по дереву вызовов вверх-вниз. Попробовал Notepad++ - там есть похожий плагин (но только для 32-битной версии) - так этот плагин обратно не умеет прыгать в место из которого вызвали Может Visual Studio? там это есть? А еще на что посмотреть?
  5. А как Вы к конденсаторам питание и GND протянули, VIA не видны. Из-за этого этих переходных может быть подвинуть придется кое-где. А так- разводка как разводка, очень даже красивая. Посмотрите, может где-то выгодно поменять местами сигналы, у SDRAM это можно (но не все, там еще команды бегают). С дисплеем- может быть выгодно поменять взаимное расположение, чтоб жгут не перекручивать. Или применить зеркальный коннектор (если у Вас плоский шлейф, то нижнее расположение контактов на верхнее, например), и засчет этого поменять подход сигналов к разъему. Хотя если речь идет о нескольких линиях и все красиво зазводится (как на Вашей картинке) - то не вижу смысла тратить на это время и силы. Работать будет :)
  6. Ну, у меня таких страстей не было, сборщик вполне адекватен, как и применяемая им техника. Как я понял, именно эти модули нужно было монтировать не согласно общепринятым IPC, а согласно рекомендациям У-блокс, которые то ли лежат отдельно от всего, то ли вообще доступны по запросу. Домыслов много, факт один: чуствительны и легко выходят из строя при нарушениях в условиях пайки. Требуют специального внимания при монтаже, общим правилам не подчиняются. Правильно смонтированные модули работают надежно.
  7. К слову. Про Ю-блокс и пайку. Имели большую головную боль с Ю-блоксовкой Лизой У200. Оказались очень чуствительна к термопрофилю (перегрев?). Глюк проявлялся на всех собранных платах через некоторое время эксплуатации (от нескольких часов до года непрерывной работы) в виде "модем перестает отвечать". Также были проблемы и при ручной пайке: из выпаянных и вновь запаянных модулей примерно 50% не работали сразу (внутреннее КЗ по питанию), еще часть отказала позже (перестали отвечать). Было сделано много вылизываний на плате (например, обеспечение порядка подачи напряжений согласно мануалу), но в результате все равно встречались сбои. Первичное общение с производителем ничего не дало. Позже уже фирма-сборщик доставала производителя, и вроде бы что-то поменяли по результатам общения в процессе пайки. После каких-то изменений в пайке (другой термопрофиль? другая паста?) все вновь собранные платы (те же платы из тех же деталей у того же сборщика) работают безукоризненно.
  8. Воооооооот.... :) Огромное спасибо за напоминание про существование в мире еще и индуктивностей! добавил индуктивность- пошло значительно веселее, подавление на 10 кГц лучше на 10-15 дБ при адекватных значениях L (2-3 мГн) (Красный- исходный RC фильтр, Черный и Зеленый- "RCLCR" для разных шунтов, 100 Ом и 250 Ом.) Есть над чем подумать.
  9. Спасибо, обязательно размещу эту информацию в спецификации сенсора. Хотя лично мне еще не попадались измерители тока с шунтом, подключенным не к GND измерителя, а к плюсу питания. Предположим, что у меня токовая петля сама по себе и она отвязана от всего. Как это поможет решить проблему с фильтрацией имеющихся токовых шумов на выходе данной петли? Подозреваю, все это нужно, чтобы предложить мне решение на базе низковольного операционника вместо используемой сейчас высоковольной XTR ?
  10. Хм. Не понимаю на базе чего Вы сделали такие выводы и что такое "частный случай"? С каких пор сенсор 4-20мА, с внешним питанием по отдельному проводу(не через петлю) и с общим проводом для питания и для токовой петли, вдруг стал "частным случаем"? Судя по количеству выпускаемых для этого "частного случая" микросхем токовых драйверов, этот путь использую не только я.
  11. развязанное от чего? какой героизм? Какой перенос? :) Или я просто не понимаю что Вы имеете в виду, или Вы пытаетесть ответить на вопрос, который я не задавал.
  12. Чем XTR так избыточна? Вы имеете в виду, заменить схемой на операционнике? Нужно примерно такое как перечислено ниже: 1. напряжение питания : 12-40 V, униполярное. 2. преобразование напряжения 0.48-2.4V в ток 4-20 мА с хорошей линейностью. Точность определяется единственным (точным) резистором, продстройка не требуется. 3. защита от перегрузки (ну скажем 30 мА) 4. цена не более USD 1.5 (как сейчас). Ну ладно, согласен на 3 доллара. 5. малое занимаемое место на плате (не более 1 см2 без учета выходного транзистора).
  13. Здравствуйте! Использую XTR111. Все хорошо, кроме одного: у нее сильно растет уровень шума на частотах 10 кГц и выше, согласно Спецификации XTR111 : Это особенность внутренней работы чипа, убрать причину нельзя, можно только бороться с последствиями. Это немного обсуждалось на суппорте TI. Делаю сенсор с токовым выходом, в идеале хочется задавить шум до нужного уровня шума сенсора, для этого нужно дополнительно давить где-то на 40 дБ на 10 кГц, но в то же время не испортить основной диапазон частот, то есть давить не более 3 дБ на 300 Гц. Нужен НЧ фильтр. Но источником является источник тока, и фильтр сводится к первому порядку, где R это нагрузочный резистор токовой петли. Но фильтр первого порядка не дает нужную мне крутизну АЧХ. Что-то можно придумать? Собственно условия: - источник: XTR111, ток 4-20 мА - потребитель: резистор 100-250 Ом - Хочется поставить фильтр, чтобы давил не более -3 дБ @ 300 Hz и не менее -40 дБ @ 10кГц. - падение напряжения для DC на этом фильтре: не более 2 В (то есть последовательное сопротивление по DC не более 100 Ом) Может, есть какие-то финты при фильтрации токовых сигналов? Или тут медицина бессильна и проще всего эту XTR111 заменить на что-то другое без таких шумов?
  14. Не, разные архитектуры недостаточно. Надо развить идею. Нужны еще разные языки программирования, и разработчики должны быть антиподами по рождению и образованию. И обязательно разных полов и возрастов (один разработчик- китаец, вундеркинд 12 лет, другой- пенсионерка из Аргентины). :) Это я к тому, что повышение надежности подобным образом (разные архитектуры, разработчики и т.д.) - антинаучно. Гораздо эффективнее - отдавать материалы на проверку другим людям за деньги (принцип "четырех глаз"). Причем выплачивать им еще и дополнительные плюшки за выявленные ошибки, недоплатив эти премиальные деньги основной команде разработчиков. Капитализм и нездоровая конкуренция- наше все.
  15. haker_fox , у Вас какой-то перекос в задании. Какая связь между "ценой 100 рублей" и "системы повышенной надежности"? Каша какая-то. Если речь идет о повышенной надежности, то стоимость деталей на никаком месте в таком проекте и в влиянии на конечную стоимость изделия. На подобном месте и важность архитектуры. Нужно понимать и поддерживать одинаковое качество всей цепочки разработки-производства, а не зацикливаться на роли архитектуры МК в надежности изделия.