Автор Тема: Реверсивная цифровая АРУ с антипитченгом.  (Прочитано 14371 раз)

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

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Если интерес остался к этой теме, то почему бы не поделится ))
Как сказал Геннадий Завидовский: "Нас должно быть больше!"

Сама АРУ по сути это программа, которая выравнивает амплитуду до нормальных (по человеческим меркам) уровней. И перед тем как начать что-то рассказывать хочу объяснить основу цифрового звука на сегодня.
Сперва стоит АЦП который оцифровывает амплитуду сигнала в рамках от -1 до 1 (условно). Далее через шину i2s эти данные летят в процессор, причем скорость их константа и составляет всем известные значения(44к 48к 96к 192к  и тд) измеряемые в количествах замеров ацп в 1 секунду и чем выше эта цифра - тем более качественный сигнал, но тем больше ресурсов кушается в процессоре.
В процессоре звук обрабатывается блоками кратными 8 (у меня 512*4 байт 1 один блок, а всего их 2 блока ). Прием данных в память процессора от ацп или плис осуществляется в бесконечном цикле специальным железом внутри процессора - DMA  механизм прямого доступа к память без использования процессорного времени. Так вот, дма заполняет память замерами ацп и как только один блок памяти заканчивается, дма дает сигнал процессору "типа блок полный" и сразу начинает заполнять второй блок,  а потом опять первый и так бесконечно и всегда с одной скоростью. Таким образом нет разрывов и пропусков и звук получается стабильный и качественный - это основа i2s шины передачи звука. Когда процессор получает сигнал от дма, что блок полный то сразу начинает с ним работать. Вот здесь и работает АРУ, НОЧЬ, НБ, НР, ШИФТ - это то , что процессор успевает сделать с одним блоком пока ДМА заполняет второй бок памяти замерами ацп. После обработки блока, процессор отдает снова ДМА только теперь для передачи этого блока на ЦАП (для получения уже звука) за это отвечает еще один канал ДМА (у процессора их несколько, очень классная штука, которая ускоряет сильно работу всей системы и вывод видио инфы в том числе). Фактически работает сразу два канала дма с одной скоростью с 4 блоками (2 на прием и 2 на передачу). Вот так работают все современные трансиверы и всякие приборы типа осликов и анализаторов - в реальном времени. За это время, помимо звука нужно еще подготовить видео и еще всякую дополнительную работу с периферией (дпф, тюнеры). Вообщем процессор изрядно занят.  lllol
     
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #1 : Январь 01, 2022, 07:06:03 pm »
Реверсивная АРУ основана на принципе плавного занижения амплитуды сигнала до "броска"  lllol Как такое может быть? Как мы можем узнать что "будет в будущем"?  lllol Да, мы не можем смотреть в будущие , зато в наших силах задержать сигнал на несколько мс , что никак не скажется на восприятие звука. Человек никак не сможет уловить такую задержку. А мы успеем обработать за это время все, что захотим т сразу выбросить в цап результат. Причем, даже если мы ничего не будем делать, то задержка все равно останется, блок просто будет ждать свой очереди для отправки в цап.
Вот (1) входной сигнал "броска" на входе АЦП. Обычная АРУ (оглайн ару) как только дойдет до первой точки начала броска (амплитуда будет выше заданного максимума) на этом синусе сразу начнет пересчет коэфф для нормализации (стандартная реакция), но (!) как только придет следующий замер больше предыдущего, то проц опять пересчитает коэфф. Но проблема в том, что это будет второй замер с той же амплитудой (!)- то есть меандр, который даст кучу гармоник, или "кряк" в наушниках. В этом и есть проблемы всех АРУ включая аналоговые - они крякают. Что делать? Я потратил несколько месяцев на решение этой проблемы и решение весьма простым оказалось  lol22 нужно просто пройтись по блоку в реверсе и плавно снизить амплитуды ацп до приемлемой, перед началом броска. Просто!!!  lol22 Работает - огонь! Может работать на ультразвуке (17 кГц) или НЧ - без разницы. Мы фактически снижаем громкость перед самым броском. По скорости - это 10-ки мкс и на слух никак не слышно. Единственное место в котором эта схема не заработала - это компрессор на передачу. Там ну никак не вяжется намеренное снижение динамики с сохранением качественного сигнала ))) . В ТХ и включенном компрессоре система реверсивной АРУ выключена.
На рис (3) как раз видно что происходит с сигналом после обработки АРУ.       
« Последнее редактирование: Январь 01, 2022, 07:08:33 pm от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #2 : Январь 01, 2022, 07:26:43 pm »
И все бы было очень легко если бы это не было так сложно  adm
Проблема в том , что например 100 шагов (замеров АЦП) назад это уже выходит за рамки текущего блока. И по идеи нужно залазить в блок который отдан ДМА для отправки в ЦАП. Ситуация патовая. ДМА слепо пред значение из блока и отправляет в цап, и так с постоянной скоростью в бесконечном цикле. Я решил попробовать залезть в этот блок. Я почему-то подумал, что ДМА довольно медленная система и возможно я успею что-нибудь исправить в этом блоке. И оказалось, что процессор на столько быстрый, что я легко залазил на 100 замеров в этот блок и успевал изменить там амплитуды до того как ДМА доберется до этих ячеек памяти. Таким образом, если даже АРУ ловит бросок в самом начале блока , то я всеравно лезу в старый блок и меняю там амплитуды как описывал раньше. Потом я сделал количества этих шагов переменным. Например если пик броска уже пройден то нет необходимости ползти по всем 100 замерам АЦП и можно ограничится 50 замерами. Сильно скорость увеличилась работы АРУ. Особенно когда у тебя всего 512 замеров ацп на блок и скорость 96 кбит/сек и задержка между реальным сигналом и сигналом в наушниках всего  5.33мс  - все имеет значение.
« Последнее редактирование: Январь 01, 2022, 07:28:46 pm от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #3 : Январь 01, 2022, 08:08:13 pm »
Анитипитчинг построен на принципе приращения константы ко времени задержки отката усиления  АРУ. В базе или старте или покое перед всплеском (питчиком) задержка отката усиления АРУ стоит минимально возможная. Это кстати в принципе полностью обратная тема. Раньше это время отката я пытался считать пиками сигнала и если из 3 пиков только два были и последний не был пиком то я считал такой всплеск питчиком и не включал задержку. В сегодняшнем варианте, я любой сигнал считаю питчком, но (!) если сигнал долгий (например голос) то время задержки отката усиления ару будет стремительно расти во времени, но не больше максимума (который я ставлю в настройках). Я как бы натягиваю пружину. Если питчик короткий, то он не сможет натянуть пружину сильно и задержка будет минимальной, а если голос то каждый всплеска голоса (синус) будет сильнее ее натягивать пока не достигнет максималки. На практике это звучит так, что ару отрабатывает короткий питчик и тут же возвращает усиление назад  и информация не теряется (я это слышал много раз, особенно в грозу декабрьскую  lllol). И также эта система работает на отпускание. Мы либо натягиваем эту пружину либо отпускаем. Если сигнал прерывистый и  есть паузы (медленный голос) то ару посчитает его питчеком и будет вставлять шум эфира между слов. Не знаю, можно ли это назвать недостатком, всегда можно отключить эту систему или перевести ару в другой режим или загрубить систему антипитченга путем увеличения константы приращения (это, кстати, 4-й параметр регулировки ару). Антипитченг всегда переменный. Нет стабильной задержки она всегда плавает.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #4 : Январь 01, 2022, 08:28:27 pm »
Если кому нужен код на С ...дайте знать, кину сюда.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #5 : Январь 01, 2022, 08:38:12 pm »
А вот собственно тест с эфира. Я набросил провод на дпф и подал тон с разной длительностью и слышно как интеллект ару работает.

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

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

  • Administrator
  • *****
  • Сообщений: 20748
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #6 : Январь 01, 2022, 09:19:56 pm »
В общем-то, превентивное плавное снижение усиления до порога, при котором всплеск не приведёт к перегрузу выхода известен довольно давно, к примеру, на картинке функция Hard Limiting в Adobe Audition, изначально на стыке были два сигнала - -21 дБ до, и -1 дБ - после - ступенька 20 дБ.
Несложно заметить, что редактор плавно снизил уровень усиления ровно до такой степени, чтобы 20-дБ всплеск не привёл к перегрузу.
Ничего невозможного нет

Оффлайн Егм

  • Hero Member
  • *****
  • Сообщений: 908
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #7 : Январь 01, 2022, 09:26:09 pm »
Спасибо ! !  ! Принцип работы понятен .  33wr
 1999 1999 1999 1999

Исходники для истории и расширения кругозора надо сохранить !
« Последнее редактирование: Январь 01, 2022, 09:28:33 pm от Егм »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #8 : Январь 01, 2022, 09:26:22 pm »
Я не подглядывал  cr123 дошел сам методом тыка.
Да да, я знаю, у меня ничего не получится )))

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #9 : Январь 01, 2022, 09:31:31 pm »
Звучит очень хорошо! Особенно нравится, что ефир слышен ниже основного (в данном случае мешающего) сигнала, как пайлапе на одной частоте - получаеш информацию откуда можно, и скучаешь, когда привык к приему, а напр. радио поменяли, например работая по другим принципам АРУ.
« Последнее редактирование: Январь 01, 2022, 09:46:18 pm от veso74 »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #10 : Январь 01, 2022, 09:43:52 pm »

Исходники для истории и расширения кругозора надо сохранить !

Завтра допишу коменты и скину сюда
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #11 : Январь 01, 2022, 09:45:30 pm »
Звучит очень хорошо! Особенно нравится, что ефир слышен ниже основного (в данном случае мешающего) сигнала, как пайлапе на одной частоте - получаеш информацию откуда можно, и скучаешь, когда привык к приему, а напр. радио поменяли, например работая по другим принципам АРУ.
Спасибо. Тон значительно громче чем шум эфира. Вопрос только на сколько быстро ару вернет усиление после помехи импульсной.
Да да, я знаю, у меня ничего не получится )))

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #12 : Январь 01, 2022, 09:49:01 pm »
Да, то же самое происходит с аналоговой АРУ с полевым высокоомным входом (без "умных" цепей) - энергия от пиков (напр. трески ефира) не полностью активирует полное время (есть амплитуда, но время мало => площади енергии нет), опр. от RC-группы. Емулировали хорошо. Ефир прозрачный. Не похоже на АРУ ​​(детекция) по НЧ. Нравится.
« Последнее редактирование: Январь 01, 2022, 09:56:04 pm от veso74 »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #13 : Январь 01, 2022, 09:52:17 pm »
Да, то же самое происходит с аналоговой АРУ с полевым высокоомным входом - энергия от пиков (напр. трески ефира) не полностью активирует полное время, опр. от RC-группы. Емулировали хорошо. Ефир прозрачный. Не похоже на АРУ ​​(детекция) по НЧ.
А, я понял.  Если задержки нет, то сигнал будет испорчен. В цифровой АРУ даже при самых малых задержках , задержка есть и динамика не портится. Модулирование шума сигналом не происходит.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Реверсивная цифровая АРУ с антипитченгом.
« Ответ #14 : Январь 01, 2022, 09:58:47 pm »
Я показывал уже эти записи, но пусть здесь будет тоже

Вот как на станциях новая ару работает. Тональник 59+30дб. Антипитчинг.

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