реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> АРУ, нужен алгоритм
uriy
сообщение Nov 14 2007, 18:26
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Нужен алогоритм АРУ или может даже исходник у кого-нибудь есть. Также не помешает почитать про аналоговые АРУ. Ничего толкового в нете найти не удалось. Буду рад если ткнете пальцем в книгу.
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 15 2007, 12:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



http://rapidshare.com/files/45943139/%%202...Nezami.rar.html
Go to the top of the page
 
+Quote Post
dtsar
сообщение Nov 15 2007, 15:26
Сообщение #3





Группа: Новичок
Сообщений: 11
Регистрация: 21-10-07
Пользователь №: 31 558



В прошлом году делал АРУ. есть несколько алгоритмов. если еще нужно, могу поискать, даже исходники выслать. только на С.
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 15 2007, 18:38
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



dtsar
Да конечно, если не сложно поищите пожалуйста. А то что на С, это приветствуется.
Go to the top of the page
 
+Quote Post
Yura_K
сообщение Nov 15 2007, 19:40
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



Цитата(dtsar @ Nov 15 2007, 20:26) *
В прошлом году делал АРУ. есть несколько алгоритмов. если еще нужно, могу поискать, даже исходники выслать. только на С.

Уважаемый dtsar, если Вас не затруднит, вышлите исходники на yuramail@k66.ru. Заранее спасибо.


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 15 2007, 20:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Братцы, а что такое "алгоритм АРУ"? 07.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 15 2007, 20:53
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Stanislav @ Nov 16 2007, 01:39) *
Братцы, а что такое "алгоритм АРУ"? 07.gif

Видимо это алгоритм по которому нужно крутить ручку "громкость".
Код
while(1)
{ if (volume<MOI_LUBIMIY_UROVEN_GROMKOSTI) volume++;
  else
     if (volume>MOI_SOSED_UZHE_STUCHIT_PO_BATAREE) volume--;
     else lovim_kaif();
}
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 16 2007, 05:10
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Братцы, а что такое "алгоритм АРУ"?

По крайне мере в моем понимании есть несколько видов АРУ.
- с прямым регулированием;
- с обратным регулированем;
- АРУ с садержкой;
- АРУ без задержки;

rezident
в вашем случае когда сосед не стучит по батарее, выполняется вот это
if (volume<MOI_LUBIMIY_UROVEN_GROMKOSTI) volume++;
т.е. громкость будет возрастать и стремится к бесконечности. Это же не есть гуд, когда по батарее никто не стучит. Значит надо предусмотреть минимальный уровень громкости, который еще не надо усиливать.
У АРУ есть еще один неприятный момент: если мы негромко говорим в микрофон, а затем повышаем голос, то на выходе АРУ будет всплеск, т.к. коэффициент усиления АРУ еще не успел адаптироваться. И в противном случае когда с громкого голоса понижаем его, будет провал, т.к. коэффициент усиления еще был мал. Чтобы уменьшить длительность этих всплесков нужно уменьшать интервал усреднения энергии сигнала. Но если уменьшить интервал до одного сэмпла модуляция исчезнет напрочь, АРУ просто сгладит входной сигнал.
Именно от этих всплексок я не могу избавится, АРУ пока валяю в Simulink.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 16 2007, 13:34
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(urasinov @ Nov 16 2007, 08:10) *
По крайне мере в моем понимании есть несколько видов АРУ.
- с прямым регулированием;
- с обратным регулированем;
- АРУ с садержкой;
- АРУ без задержки;
Понятно. С натяжкой, принять можно. Правда, вместо слова "алгоритм"
лучше использовать выражение "способ реализации".
Не мешало бы выложить сюда условия Вашей задачи. Тогда можно было бы посоветовать что-то конкретное.

Цитата(urasinov @ Nov 16 2007, 08:10) *
У АРУ есть еще один неприятный момент: если мы негромко говорим в микрофон, а затем повышаем голос, то на выходе АРУ будет всплеск, т.к. коэффициент усиления АРУ еще не успел адаптироваться. И в противном случае когда с громкого голоса понижаем его, будет провал, т.к. коэффициент усиления еще был мал. Чтобы уменьшить длительность этих всплесков нужно уменьшать интервал усреднения энергии сигнала. Но если уменьшить интервал до одного сэмпла модуляция исчезнет напрочь, АРУ просто сгладит входной сигнал.
Именно от этих всплексок я не могу избавится, АРУ пока валяю в Simulink.
В ряде случаев для сжатия динамического диапазона речевого сигнала допустимо использование (динамического) амплитудного ограничения.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 16 2007, 13:55
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Да вы правы возможно амплитудного ограничителя будет достаточно. Не вижу необходимости усиливать слабый сигнал, требуется подавлять сильный.
Так вот.
Дано:
Электретный микрофон, с номинальным выходным напряжением 12 мВ, кодек со встроенным операционником и процессор.
Коэффициент усиления ОУ 22 дебила (или в 13 раз если память не подводит). Максимальное напряжение с микрофона может достигать 60 мВ. Когда напряжение с микрофона возрастает до 20-30 мВ и выше его требуется поддерживать на этом же уровне.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 16 2007, 13:59
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(urasinov @ Nov 16 2007, 10:10) *
в вашем случае когда сосед не стучит по батарее, выполняется вот это
if (volume<MOI_LUBIMIY_UROVEN_GROMKOSTI) volume++;
т.е. громкость будет возрастать и стремится к бесконечности. Это же не есть гуд, когда по батарее никто не стучит. Значит надо предусмотреть минимальный уровень громкости, который еще не надо усиливать.

Гы, не-а smile.gif Это типичный алгоритм подростка-меломана. Врубает громкость на полную (его любимую). Когда соседи начинают бренчать по батарее уменьшает громкость до приемлимой. Затем через непродолжительное время забывает про соседей и опять начинает увеличивать громкость. А вообще, конечно в приведенном алгоритме работа от конкретных значений MOI_LUBIMIY_UROVEN_GROMKOSTI и MOI_SOSED_UZHE_STUCHIT_PO_BATAREE зависит. Если они перекрываются (и реакция соседа тоже постоянно присутствует), то уровень между ними изменяется. Если же соседа нет дома, то уровень достигает значения MOI_LUBIMIY_UROVEN_GROMKOSTI и на этом изменение его прекращается.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 16 2007, 20:25
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(urasinov @ Nov 16 2007, 16:55) *
Да вы правы возможно амплитудного ограничителя будет достаточно. Не вижу необходимости усиливать слабый сигнал, требуется подавлять сильный.
К этому вопросу нужно подходить осторожно.
Например, если после оцифровки предполагается "сжимать" речь средне- низкоскоростным вокодером, амплитудный ограничитель и даже достаточно быстродействующая АРУ способны его "развалить" (появятся крайне неприятные призвуки, или даже неустойчивость анализатора). Поэтому, не мешало бы выяснить, что Вы собираетесь делать с сигналом после оцифровки.

Цитата(urasinov @ Nov 16 2007, 16:55) *
...Электретный микрофон, с номинальным выходным напряжением 12 мВ, кодек со встроенным операционником и процессор.
Коэффициент усиления ОУ 22 дебила (или в 13 раз если память не подводит). Максимальное напряжение с микрофона может достигать 60 мВ. Когда напряжение с микрофона возрастает до 20-30 мВ и выше его требуется поддерживать на этом же уровне.
Я бы всё-таки попытался уменьшить усиление ОУ или, на худой конец, уровень сигнала с микрофона в 2-3 раза (последнее можно сделать, уменьшив номинал резистора нагрузки соответственно). "Быстрые" АРУ и ограничители существенно ухудшают качество исходного сигнала, а динамического диапазона современных 16-битных кодеков более чем достаточно для поддержания приемлемого отношения С/Ш даже при низких уровнях сигнала с электретного микрофона без АРУ.
Какой именно кодек Вы юзаете, тоже интересно было бы знать.
В крайнем случае, можно сделать пороговую АРУ, где к-т усиления начинает плавно уменьшаться, начиная с какого-то определённого уровня входного сигнала. Но искажений при этом не избежать, и я этот способ всё-таки не рекомендую Вам брать на вооружение...

ЗЫ. При работе с аудиокодеками я всегда использовал внешний усилитель микрофонного сигнала, а на встроенном усилителе выставлял Ку ~= 2 для нормального уровня (а не 1, чтобы компенсировать избыточную чувствительность некоторых экземпляров микрофонов программно).


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Alechin
сообщение Nov 17 2007, 10:05
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



не забывайте еще про такие параметры как время срабатывания (единицы мсек - что довольно жесткое ограничение) и время отпускания (до десятков секунд). Я видел в некоторых требованиях к АРУ даже параметры на вид графика функции "отпускания".
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 19 2007, 05:16
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
что Вы собираетесь делать с сигналом после оцифровки.
Именно то что вы написали, дальше сигнал поступает на вокодер.
Кодек AD73322 16-битный, отношение S/N 78 db итого 12 эффективных разрядов.
У этого кодека имеется ОУ на входе ноги которого выведены наружу. Тут резисторами выставлен коэффициент усиления 6 db. Кроме этого в кодеке имеется PGA (ОУ с программируемым коэффициентом усиления) 0...38db, на нем выставлено 18 db. Такой большой коэффициент усиления, потомучто на выходе кодека требуется амплитуда 0,5 В.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 21 2007, 01:00
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(urasinov @ Nov 19 2007, 08:16) *
Именно то что вы написали, дальше сигнал поступает на вокодер.
Тогда о всяческих АРУ и ограничителях лучше забыть.
Какой вокодер применять думаете, кстати?

Цитата(urasinov @ Nov 19 2007, 08:16) *
...Кодек AD73322 16-битный, отношение S/N 78 db итого 12 эффективных разрядов.
Ближе к 13, по-моему. smile.gif
Вообще-то, этот кодек - отстой. Если есть возможность, стоит подумать о его замене на более приличный.
Кстати, оцифровку на нём нужно делать с передискретизацией и последующим прореживанием: цифровой ФНЧ там тоже паршивый.

Цитата(urasinov @ Nov 19 2007, 08:16) *
...У этого кодека имеется ОУ на входе ноги которого выведены наружу. Тут резисторами выставлен коэффициент усиления 6 db. Кроме этого в кодеке имеется PGA (ОУ с программируемым коэффициентом усиления) 0...38db, на нем выставлено 18 db.
Ну, так уменьшите просто - и все дела. smile.gif

Цитата(urasinov @ Nov 19 2007, 08:16) *
...Такой большой коэффициент усиления, потомучто на выходе кодека требуется амплитуда 0,5 В.
А это ещё как? 07.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 21 2007, 05:07
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Какой вокодер применять думаете, кстати?
Это мне не известно, проект ведем вдвоем. Я в большей части занимаюсь железом.
Цитата
Вообще-то, этот кодек - отстой. Если есть возможность, стоит подумать о его замене на более приличный.
Тоже думал об этом, даже заводил тему на форуме, из предложенных наиболее удачным показался TLV320AIC23B, и стоит он в дв раза дешевле.
Цитата
Кстати, оцифровку на нём нужно делать с передискретизацией и последующим прореживанием
Так и делаем.
Коэффициенты усиления уменьшить не могу, т.к. при номинальном входном сигнале 10 мВ, на выходе платы должно быть 0,5В. А получить такую амплитуду очень просто, кодек имеет встроенные ОУ как на входе, так и на выходе. Плата уже имеется и работает. Места ставить на нее дополнительные операционики нет, ее размер 20х30 мм.
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 23 2007, 05:41
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



нашел pdf Automatic Gain Control (AGC) Algorithm User’s Guide
от некой компании SPIRIT CORP (www.spiritDSP.com/CST).
Здесь описана библиотека для работы с АРУ, но нет исходника. На указанном сайте AGC найти не удалось, есть другие вещи, которые вроде как должны прийти на почтовый ящик при заказе. Уже сутки прошли так ничего и нет на ящике. Также говорится о неком CST Frameworks может кто знает где его можно скачать бесплатно. Я нашел только платные ссылки.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 30 2007, 21:21
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(urasinov @ Nov 21 2007, 08:07) *
Коэффициенты усиления уменьшить не могу, т.к. при номинальном входном сигнале 10 мВ, на выходе платы должно быть 0,5В.
А получить такую амплитуду очень просто, кодек имеет встроенные ОУ как на входе, так и на выходе. Плата уже имеется и работает. Места ставить на нее дополнительные операционики нет, ее размер 20х30 мм.
Не понял.
Какое отношение имеет усиление входного тракта АЦП к "выходному напряжению платы"? 07.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 1 2007, 07:09
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Под входом, имеется ввиду вход кодека (вход АЦП), под выходом - выход кодека (выход ЦАП).
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Dec 1 2007, 09:39
Сообщение #20


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(urasinov @ Nov 23 2007, 08:41) *
нашел pdf Automatic Gain Control (AGC) Algorithm User’s Guide
от некой компании SPIRIT CORP (www.spiritDSP.com/CST).
Здесь описана библиотека для работы с АРУ, но нет исходника. Также говорится о неком CST Frameworks может кто знает где его можно скачать бесплатно. Я нашел только платные ссылки.

Как вы, наверное, поняли, суть CST (client-side telephony) в том, что есть камень C54CST с зашитыми в ROM функциями, типичными для применений телефонии. Плюс к этому можно докупить расширенные библиотеки (продвинутые кодеки и т.п.). Таким образом искать у SPIRIT'а исходники -- имхо бессмысленно.
А вот Framework вроде раньше качался (по-моему SDK назывался), а сейчас действительно не видно. Как-то давно я ходил на их семинар по CST -- понравилось, довольно красиво они все сделали в этой технологии.
Попробую поискать у себя, может быть найду -- но версия будет старая, уж сколько лет прошло smile.gif
И исходников алгоритмов там, естественно, нет, и годится он для программирования только камней C54CST.

[+]:
Да, забавно, на странице
http://www.spiritdsp.com/products/components/cst/cst_newsletter.shtml
ссылки битые... А вообще качать надо бы оттуда.


--------------------
شامل
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Dec 1 2007, 09:58
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(urasinov @ Dec 1 2007, 10:09) *
Под входом, имеется ввиду вход кодека (вход АЦП), под выходом - выход кодека (выход ЦАП).
И что, нельзя уменьшить усиление входного тракта и увеличить выходного? 07.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 1 2007, 13:28
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
... что есть камень C54CST с зашитыми в ROM функциями
Этого я не заметил, буду знать.
Цитата
А вот Framework вроде раньше качался
Да нашел какой-то на сайте focus.ti.com, только почему-то не поддерживается докачка, весит 60 мегабайт. Несколько раз пытался закачать так и не удалось закачать полностью.
Цитата
И что, нельзя уменьшить усиление входного тракта и увеличить выходного?
Попробовать можно, но жалко терять эффективные биты.
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Dec 1 2007, 19:43
Сообщение #23


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(urasinov @ Dec 1 2007, 16:28) *
Да нашел какой-то на сайте focus.ti.com, только почему-то не поддерживается докачка, весит 60 мегабайт.

Вы, наверное, нашли собственно Reference Framework? Это составная часть концепции ExpressDSP (этих RF 3 штуки: RF1, RF3, RF5), но к вашей теме, к сожалению, имеет малое отношение. Это просто остов ЦОС-программы, написанной в соответствии с этой концепцией. Если вас интересует, я нашел у себя на диске файл ЦСТ2СДК_V2_27_инсталл.ехе (как ни странно это тоже самое, на что ссылается сейчас SPIRIT, мало что изменилось за столько веков smile.gif). Выложил на ФТП: уплоад \ ДСП \ ЦСТ \
(что-то сервачок работает не ахти, если бито, обращайтесь smile.gif)


--------------------
شامل
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Dec 1 2007, 22:53
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(urasinov @ Dec 1 2007, 16:28) *
...Попробовать можно, но жалко терять эффективные биты.
Что значит "терять"?
Речевой сигнал, в случае слитного произношения, может иметь пик-фактор более 3 у женщин и более 5 у мужчин. Поэтому, Вы должны смириться с тем, что:
- либо будет клиппироваться (ограничиваться) входной сигнал;
- либо будет клиппироваться (ограничиваться) выходной сигнал;
- либо средний уровень выходного сигнала кодека будет значительно меньше максимального.
Четвёртого не дано. Никакая АРУ не в силах изменить положение вещей.
Для вокодера (особенно низкоскоростного) первый случай является неприемлемым.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
zilog
сообщение Dec 3 2007, 11:47
Сообщение #25





Группа: Участник
Сообщений: 8
Регистрация: 8-05-07
Пользователь №: 27 597



"Идеального" АРУ увы, не бывает. Везде где можно отказаться от него - следует отказаться, особенно если после него идет какая-нибудь более-менее сложная цифровая обработка, например подавление шума, аккустического эха, или вокодер.
Отказаться можно в случае, если параметры аккустической системы (в нее входит и источник звука) примерно постоянны, чего в жизни бывает редко, но бывает smile.gif
По моему опыту, алгоритм АРУ весьма зависит от требований последующего алгоритма обработки, например, как заметил Stanislav, вокодеры плохо "дружат" с клиппированными сигналами,
Тупо повышать усиление при малом сигнале тоже не годится - АРУ будет "вытягивать" шум в паузах речи. И после того, как человек заговорит, сигнал будет слишком сильный. Для решения этой проблемы в АРУ используется детектор речи, и регулировка производится только при его активном сигнале. В телефонах некоторую проблему представляет также "дыхание в трубку" smile.gif

АРУ, который "прошит" в CST - достаточно сложный алгоритм, который учитывает эти факторы.

Не могли бы вы поподробнее описать задачу?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01554 секунд с 7
ELECTRONIX ©2004-2016