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

Самурай

Участник
  • Постов

    731
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Сообщения, опубликованные Самурай


  1. В 24.02.2024 в 14:37, srf55 сказал:

    Появилась задача сделать антиалайзинговый фильтр (ФНЧ).

    Этот ФНЧ будет стоять перед входом в SAR АЦП (частота дискретизации 250 кГц) AD7682.

    Рабочая полоса входного сигнала: 0..100 кГц.

    Сам фильтр решил делать с такими параметрами (Поправьте, пожалуйста, если не прав. Возможно вообще можно сделать всё проще или сложнее  🙂 )

    • Pass Band Frequency (частота полосы пропускания) = 125 кГц (взял такую, чтобы неоднородность АЧХ в рабочей полосе была минимальной, отодвинул частоту среза от рабочей полосы)
    • Stop Band Frequency (частота полосы заграждения) = 250 кГц
    • Stop Band Attenuation (ослабление в полосе заграждения) = 40 dB

    Антиалайзинговый фильтр у Вас немного странный... Нормальный должен давить все, что выше 125кГц, и не начинать давить, как у Вас, а заканчивать! Т.е. эти самые 40дБ должны быть если и не на 125кГц, то хотя бы на 150кГц... Ну это если по честному нужно не менее 40дБ подавления всего не нужного в Вашей полосе 0...100кГц. 

    Дальше, неоднородность АЧХ это конечно хорошо, но у фильтра есть еще и неоднородность групповой задержки... Особенно сильной в полосе 50...100кГц. Я не знаю Вашей задачи, может быть это и не важно, а может и нет...

    Еще чисто для уточнения: АЦП 4-х канальный, Вы используете только 1 канал? Если нет, то частоту дискретизации 250кГц надо делить на количество каналов...

    • Upvote 3
  2. В 04.11.2023 в 09:29, alexPec сказал:

    Т.е. имеем 3 ядра B4096, в каждом из которых одновременно выполняются 16 операций (подозреваю, MAC) за такт, на частоте 287 МГц. Итого получаем 3*16*287 = 13776 М операций/сек.

    Что мешает прочитать документ, на который Вы дали ссылку полностью? Там же чуть выше:

    B4096: 4096 Peak Ops (operations/per clock)

    B4096 (8x16x16): 53540 LUT, 105008 FF,  562 DSP

    Очевидно, что Ваши подозрения не имеют оснований...

     

  3. В 14.09.2023 в 22:00, C2000 сказал:

    Думал может есть способ как то побороть

    Может быть и есть какой способ, но Вы сначала скажите, чем этот "всплеск" Вам мешает? Что у Вас за сигналы? Какая задача? И вообще, если Вас не устраивает просто скользящее среднее, то может подойдет скользящее среднее с децимацией (он же CIC), там буфер не нужен...

  4. В 28.08.2023 в 12:10, repstosw сказал:

    Что в этом случае будет с девиацией частоты и полосой пропускания?  Они тоже увеличатся в 1,2 раза ?

    Ну, про полосу Вы же сами пишете, что она тоже увеличилась?:) За цифровой домен сомнений нет, все частоты должны пропорционально поменяться, включая и полосу (если не трогать настройки). Тогда согласно формуле:

    rtaImage?eid=ka01M000000gG4v&feoid=00N1M

    логично предположить, что и девиация должна быть больше на 20%. Ну это при условии, что все аналоговые и аналого-цифровые блоки трансивера такое повышения частоты вытерпят:)

  5. В 28.08.2023 в 09:03, repstosw сказал:

    Не сходится.

    Ну я же говорю, для 4GFSK полоса будет уже, чем для 4FSK, не в 83/58 раз конечно, но уже. Опять же Carson’s Rule по ссылке выше это для случая, когда в полосу попадает 98...99% мощности, что наверно перебор, т.е. полосу можно и сузить.

     

    В 28.08.2023 в 08:46, repstosw сказал:

    Но  индекс модуляции маловат - всего 0,3.   Оно имеет право быть?

    Нормально.

  6. В 27.08.2023 в 10:15, repstosw сказал:

    1.  Девиацию частоты для 4FSK

    Пять минут гугления и мы находим ответ на родине трансивера.

    В 27.08.2023 в 10:15, repstosw сказал:

    2.  Девиацию частоты для 4GFSK (BT=0.5)

    Тут и вовсе далеко ходить не надо. Даташит, стр.6:

    image.thumb.png.7fb9261b696245c85afdadfc52297f1d.png

     

    Да, цифры с первой ссылкой немного отличаются, но во-первых, слегка разные модуляции, а во-вторых, могут отличаться методики измерения мощности сигнала. Но для начала вполне достаточно и этого, потом подогнать по вкусу.

    • Upvote 1
  7. В 13.08.2023 в 10:37, _4afc_ сказал:

    Жаль его не развести с зазором 0.35\0.35 - можно было бы в резоните на 105мкм сделать холодным в двух слоях.

    Да не будет он холодным, тем более на двух слоях. Это не говоря о том, что на двух слоях его не развести, а если развести, то велком "у меня источник не работает, па-ма-ги-те!". Сами Vishay на дев-борде делают минимум 4 слоя, а на 10А варианте и все 6.

    Еще из нюансов: даташит молчит как раба об лед о любых условиях измерения температуры! Видно сказывается менталитет, либо местный, либо наш родной... Есть только одинокий график температуры от тока (но где и как получен - хз), на котором уже холодом не очень то пахнет - 55С для 5А (но правда для 48В входного). Тепловое сопротивление кристалл-среда выглядит несколько фантастично (12C/W), при этом ни полслова, на чем измеряли, если как все нормальные люди на своих отладочных платах, то это 70мм х 50мм и 6 слоев с кучей переходных.   

    Но вообще, добра этого много (доступ через впн), наверно и у Китая что-то похожее уже есть. И да, все, что касается тепловых характеристик, рекомендую смотреть у нормальных производителей, что бы потом сюрпризов не было...  или повторять один в один дев-борду.

  8. В 11.07.2023 в 12:03, _sda сказал:

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

    image.thumb.png.2256fff0dc9665ac058b28430fad3867.png

  9. В 11.07.2023 в 09:33, _sda сказал:

    Функция imagesc необычно располагает шкалу Y, сверху вниз. Условие 

    If y(1) > y(2), then the image is flipped up-down.

    не срабатывает.

    Это можно изменить?

    Можно, см. ф-ю yticklabels

  10. В 01.06.2023 в 16:09, _pv сказал:

    Никто не мешает, но это будет точно такая же асинхронная порнография как по ссылке fpga4fun, только на входе этого защёлкивателя, из xor на клоковом входе с выходом триггера, для защёлкивания обоих фронтов. Ровно с теми же проблемами чувствительности к звону на входе.

    Два триггера защелкивают SCL, первый по заднему фронту SDA, второй по переднему фронту SDA. Получаем два сигнала признака старта/стопа. Оба эти признака с автосбросом (синхронным), если, конечно по SDA не одни нули слать, что как-бы возможно, но очень маловероятно. Можно и асинхронный сброс придумать, дабы не зависеть от данных. Полностью от асинхронщины наверно не избавиться, но явной порнографии вроде нет:)      

  11. В 01.06.2023 в 12:57, Doka сказал:

    В принципе всё защёлкивание адресов, данных внутри слейва можно сделать по SCL, тоже самое с формированием АСК.

    Но вот в чём засада - так это то как детектировать START & STOP события?

    Кто мешает защелкивать SCL передним/задним фронтом SDA?:)

  12. В 03.05.2023 в 14:22, xvr сказал:

    Сам микроконтролер питается от 3.3В и 0.7В получают внутри с помощью LDO. КПД при этом получается около 20%. В теории импульсный понижающий преобразователь мождет дать больший КПД.

    Бывают ли в принципе импульсные понижающие преобразователи на такие токи?

    TPS628436: КПД под 80% обещают для 10мкА. Что там с другими параметрами не смотрел...

    • Thanks 1
  13. В 25.04.2023 в 14:19, Maverick_ сказал:

    подскажите как оптимально описать такую функцию в потоковом описании (pipeline)

    y[n] = a2 * x[n-2] + a1 * x[n-1] + a0 * x[n] - 2 * y[n-1] - y[n-2]

    где a1, a2, a0 коеф-ти

    Странный какой-то у Вас фильтр... Смотрим передаточную функцию:

     

    \(H(z)=\frac{a0+a1*z^{-1}+a2*z^{-2}}{1+2*z^{-1}+z^{-2}}\)

     

    И видим двойной полюс на единичной окружности на частоте Fs/2. Из чего следует, что:

     

    1. Данный фильтр имеет смысл только в одном случае, а именно когда на этой же частоте расположен и двойной ноль. Во всех остальных случаях фильтр будет неустойчив или на грани устойчивости, это не считая дико-кривой АЧХ:)

     

    2. Числитель передаточной функции имеет всего лишь 2-й порядок, а это значит, что он задает расположение только 2-х нулей на z-плоскости. Но из предыдущего пункта следует, что эти нули должны быть а) двойные и б) лежать на частоте Fs/2. Т.е. совпадать с полюсами фильтра. Т.е. числитель и знаменатель сокращаются и остается... константа:))). Но, позвольте, а где же тогда фильтр???:)

     

    Где-то у Вас ошибка...:)

  14. В 24.04.2023 в 22:16, _sda сказал:

    Мне показалось что filtfilt поможет избавиться от переходного процесса после фильтрации. Похоже я ошибся.

    Да, ошиблись. Переходной процесс от фильтра будет всегда, нет переходного процесса - значит нет фильтра (точнее есть, но с одним коэффициентом:))) ). Очевидно, что в общем случае для произвольного сигнала уменьшить длительность переходного процесса можно только ослабив требования к фильтру, т.е. уменьшив его порядок. Вы не сказали, как сильно надо давить и какая переходная зона, может Вам КИХ 6...10-го порядка за глаза хватит, в том числе и по искажениям:)   

  15. В 24.04.2023 в 17:26, _sda сказал:

    В обычных фильтрах содержание первых выходных отсчётов не может зависеть от общего количества отсчётов. Это как то связано с инверсией во времени?

    Да.

    В 24.04.2023 в 17:26, _sda сказал:

    Если это так, то есть ли вообще какой-нибудь способ отфильтровать конечное количество отсчётов без влияния переходного процесса?

    Нет.

    В 24.04.2023 в 17:26, _sda сказал:

    Я возлагал надежды на filtfilt, но похоже что он здесь не помощник

    Надежды на что? В чем именно не помощник?

  16. В 17.03.2023 в 11:12, _sda сказал:

    figure(1,'MenuBar','None',...
            'Name','Out Data',...
            'NumberTitle','Off',...
            'Position',[1300,140,500,500]);

    Такая запись приводит к ошибке, не понимает цифру 1.

    Help Matlab-а?

    f = figure;

    f.Position(3:4) = [280 210];

     

    figure(f);

    plot(x,y)

  17. В 10.03.2023 в 11:14, OparinVD сказал:
    signal BlockBytesLeft : natural range 0 to g_block_length := g_block_length;

    Как предположение: У Вас сигнал BlockBytesLeft от 0 до 8, следовательно вот тут:

    В 10.03.2023 в 11:14, OparinVD сказал:
    Block_ShReg	<= S_AXIS_TDATA(BlockBytesLeft*8-1 downto 0) & Block_ShReg(Block_ShReg'high downto BlockBytesLeft*8);

    с точки зрения синтезатора возможен и вот такой вариант:

    Block_ShReg    <= S_AXIS_TDATA(8*8-1 downto 0) & Block_ShReg(63 downto 8*8);

    Что разумеется ему не понравилось...

     

     

    Дополнение: Насчет разумеется я возможно и погорячился, нужно смотреть, что на такое говорит стандарт:)

  18. В 09.03.2023 в 23:53, yes сказал:

    то есть название и возможность любой разрядности данных (16,24,32) бита как бы намекает на PCM, то есть импульсная модуляция, как напрямую на классический class D должна идти

    но DAC на картинке, опять же ссылки на то, что это обычный I2S - заставили меня засомневаться....

    Что-то у Вас все перемешалось... Вообще непонятно, что тут может быть непонятного?:) Это обычный усилитель с ЦАП и I2S интерфейсом, то, что он D-класс как-бы вообще фиолетово, ну да, где-то внутри есть либо ШИМ, а скорее всего сигма-дельта модулятор (совмещенный с ЦАП), ну и что? Со стороны пользователя обычный классический I2S интерфейс (либо TDM режим, не принципиально). Подключайте к Вашему процессору напрямую и подавайте обычные PCM отсчеты, не надо ничего пересчитывать ни на каком сигма-дельта калькуляторе...

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