Автор Тема: Цифровая АРУ 0...1  (Прочитано 52681 раз)

0 Пользователей и 5 Гостей просматривают эту тему.

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20748
Re: Цифровая АРУ 0...1
« Ответ #75 : Ноябрь 03, 2020, 09:44:39 pm »
 44443
Ничего невозможного нет

Оффлайн Relayer

  • Hero Member
  • *****
  • Сообщений: 1006
  • UR5FFR
Re: Цифровая АРУ 0...1
« Ответ #76 : Ноябрь 04, 2020, 12:24:21 am »
Попробовал компрессор по приему
Так компрессор компрессору рознь. Поиграйтесь параметрами. В адау например там их есть несколько
В любой схеме есть как минимум одна ненужная деталь :)

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #77 : Ноябрь 04, 2020, 05:51:55 pm »
Потратил целый день на всякие алгоритмы, но не нашел лучше варианта Андрея. Кстати беру свои слова назад, алгоритм Андрея работает мягко. Да, есть провалы перед всплеском, но это не слышно, только видно. Напомню, алгоритм Андрея делает ару на фрейм, причем, первую 1 мсек нарастание идет плавно (это основная фишка алгоритма). И можно было бы бросить дальше  что -то придумывать , но башка рукам покоя не дает.

Вот мой алгоритм  (потом фишки расскажу)
uint16_t countBack = 10;

void agcDo(float32_t *buffer) {

    float32_t agcMetrTemp = 0;

    if (tim > 0)tim--; //уменьшение задержки


    for (uint16_t i = 0; i < FRAME_SIZE; i++) {
        float32_t a;
        a = (buffer[i] < 0.0f) ? -buffer[i] : buffer[i];// adc V

        nowAgc = 1.0f / a; //coeff --> 1, nowAgc=чем меньше - тем сильнее загибаем pOutLms, 1 макс усиление.
        if (a > agcMetrTemp) agcMetrTemp = a; //s-meter макс V

        if (nowAgc < agcLevel) {
            tim = 40;//задержка отпускания
            agcLevel = nowAgc;
        } else {

            if (nowAgc > agcLevel) {
                float32_t s = (1.0f / agcLevel);//скорость нарастания
                if (tim == 0) {//активное нарастание
                    agcLevel += s;/// 0.01f;//скорость нарастания
                } else {
                    if (!countBack) {//спокойное нарастание через шаг
                        agcLevel += 0.001f;
                        countBack = 5;// шаг , делаем плавное нарастание через 5 замеров
                        //если делать каждый шаг - растет имд
                    } else countBack--;
                }
            }
        }
        buffer[i] *= agcLevel;
    }
    agcMetr = agcMetrTemp; //s-meter

}
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #78 : Ноябрь 04, 2020, 05:59:50 pm »
Вот так это выглядит.
Сперва плавный подъем потом основной. Зачем это надо? При долгом прослушивании музыки и эфира через всю системы (музыка в 3 кГц  cr123)  обнаружил, что иногда в тихих местах начинает срабатывать основной возврат (откат ару) и это прям сильно все портит. Тоже самое в эфире, когда человек говорит и иногда ару приспичевает сработать и это дает "ПШИК" . Я вспонил, что боролся с этим в Монстре и вспомнил как  rrr7777 мелкий дрифт ару туда-сюда, без задействования основной задержки. Просто постепенно +1 уе или -1 уе даю пока не придет что то серьезное - тогда полный запуск   

PS на снимке во время возврата есть всплеск и опять назад - это так комп чудит совместно с видоуз. В нормальной жизни его нет.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #79 : Ноябрь 04, 2020, 06:03:24 pm »
Причем в генераторных условиях все достаточно обыденно, но в реалях это работает и дает мягкую подтяжку ,  стробирование  сигнала в то время как основная задержка еще держит. Так же это все не плохо работает на шумовой дорожке - нет "ПШШШ" неожиданных.
Да да, я знаю, у меня ничего не получится )))

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20748
Re: Цифровая АРУ 0...1
« Ответ #80 : Ноябрь 04, 2020, 06:13:43 pm »
А где же работа компрессора, который должен был сразу резко поднять усиление, и АРУ, которая цепляется за шум, и имеет время отрабатывания несколько секунд?
Или это что-то другое?  cr123
Ничего невозможного нет

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #81 : Ноябрь 04, 2020, 06:22:04 pm »
Вот запись 80м
Ару мое, фильтра мои.
СДР в Туле.

https://drive.google.com/file/d/1CJ-NMpZv79WvvCWnEGPIBw1HtxoT6Qc-/view?usp=sharing
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #82 : Ноябрь 04, 2020, 06:23:52 pm »
А где же работа компрессора, который должен был сразу резко поднять усиление, и АРУ, которая цепляется за шум, и имеет время отрабатывания несколько секунд?
Или это что-то другое?  cr123

Шутите  lllol

Я понял , что имел ввиду Андрей. Громкие станции должны звучать громче. Мы страниц 10 исписали когда я Монстра на прием запустил.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #83 : Ноябрь 06, 2020, 08:17:47 am »
После вчерашнего разговора с Игорем , нашёл серьёзный косяк в работе ару. Раньше я  только догадывался , что где то косяк , а после разговора как лампочка зажглась  id99
Когда в рамках одного фрейма идёт коррекция, то это выглядит вот "так" ! Нужен другой подход. Этот алгоритм обязательно будет стучать. И чем ниже частота тем сильнее это будет появляться. Зато теперь понятно почему когда я музыку слушал и там били низы зачастую проскакивал стук.
На фото оригинал и обработанный алгоритмом ару.
« Последнее редактирование: Ноябрь 06, 2020, 08:32:09 am от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #84 : Ноябрь 06, 2020, 08:26:03 am »
Буду пробовать так (абсолютные значения замеров):
Нужно обрабатывать СКАТ , а не искать только пики.

« Последнее редактирование: Ноябрь 06, 2020, 08:30:59 am от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20748
Re: Цифровая АРУ 0...1
« Ответ #85 : Ноябрь 06, 2020, 01:02:27 pm »
После вчерашнего разговора с Игорем , нашёл серьёзный косяк в работе ару.

Честно говоря, вообще не понимаю, в чём там могут быть проблемы.  dontt44
Ставим АЦП, приведённый на вход максимальный сигнал должен быть -10 дБ от его перегрузки, т. е., её перегруз исключён по определению, разве что, на то время, пока сильносигнальная АРУ не отработает, а это единицы миллисекунд.
По умолчанию, выходной сигнал ЦАП вычисляется как 3162*вход АЦП (+70 дБ). Как только входной сигнал на АЦП превышает -80 дБ от максимума (как раз, сумма 70 и 10), коэффициент усиления пропорционально роняем, удерживая уровень на выходе ЦАП на пиках равным, на этом этапе можно и интегрирование сделать, допустив перегрузку ЦАП на коротких импульсах, он же, кстати, будет и лимитером работать по нулевому уровню.
Никто не запрещает работать в номинале на уровне -6 дБ от максимума ЦАП, получится лимитер +6 дБ, или те же 3 дБ, как у меня в последних версиях монстра.
Можно две петли сделать, как у меня - быструю и медленную - с одной все хотелки получить проблематично.  1yep
Естественно, после лимитера должен быть ФНЧ, в противном случае, расширение спектра на пиках будет слушаться ацтойно.
И никаких проблем нет, от слова вообще - полное повторение моего аналогового алгоритма АРУ, в котором никаких глюков нет и в помине, и адекватной реальной замены которому с полной объективной выкладкой получившихся результатов, а не только фантазиями, которых я и сам мастер нагнать 500 вариантов, пока что никто не придумал... pl33 lllol lol22

« Последнее редактирование: Ноябрь 06, 2020, 01:09:10 pm от Игорь 2 »
Ничего невозможного нет

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #86 : Ноябрь 06, 2020, 01:49:21 pm »
Нарвался на пульсации блока питания компьютера  cr123
ару стремится даже их отработать.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #87 : Ноябрь 06, 2020, 02:42:11 pm »
Еще просидел. Теперь я знаю как компрессор делается, но к ару это мало отношение имеет. Бился, бился - все равно компрессор выходит и всё  dontt44

ОПЯТЬ ВСЕ УДАЛИЛ .

Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #88 : Ноябрь 06, 2020, 04:16:58 pm »
По выше нарисованному чертежу новой ару сделал алгоритм.
Как то работате.

На рисунке стыковка шума (максимальное усиление) и два тона (с максимальной амплитудой мин усиление)
 
« Последнее редактирование: Ноябрь 06, 2020, 04:29:58 pm от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20748
Re: Цифровая АРУ 0...1
« Ответ #89 : Ноябрь 06, 2020, 04:26:45 pm »
Да Вы ступеньки покажите с однотоновым перепадом 60 дБ, т. е., идёт 10 мкВ, потом 10 мВ, потом - назад, переходная характеристика интересна... cr123
Ничего невозможного нет