![]() | От автора ... "От много време търсих подобна програма, която поне малко да присъздаде реалистично ефекта на аналогов показващ прибиор - индикатор на ниво. От наблюденията на много подобни стигнах до убеждение, че не се познават основните показатели на подобни прибори. За това се наложи да създам собствен, който до пълна прицизност да отговаря на всички практически показатели..." Борис Рибов - разработчик на софтуер в изследователската област. Хардуерни концепции в областта на електрониката и електронните аналогови системи. |
ВНИМАНИЕ!
Документацията на Английски език е по-пълна и покрива новите функции в новата версия на измервателя на ниво!
Малко факти и инсталация!
Това е PLUG-IN за Winamp писан от мен (BoardMan), и предназначен за визуализиране на нивото на фонограмата просвирвана от програмата WINAMP. За да инсталирате този плъгин е достатъчно да го разархивирате в директория PLUGINS, която съществува по подразбиране и се намира в папката на WINAMP. Обикновено пътят на тази папка е:
C:\Program files\Winamp\Plugins
Именно там трябва да се разархивира файла vis_vu.dll. След това е напълно достатъчно да активирате визуализацията от менюто на WINAMP, по следният начин: От основното меню на WINAMP избирате VISUALIZATION (или натиснете Ctrl+K) -> Select Plug-in… -> … В прозореца VISUALIZATION PLUG-INS ще се появи "BJR Labs - Stereo Analog VU Meter v1.0". Изберете го. От падащият списък в долната част на прозореца изберете режима на работа. Малката версия на индикатора много добре се вписва над основния прозорец на WINAMP. За повече информация може да натиснете CONFIGURE от същия диалогов прозорец.
Детайла версия на индикатора:
Съкратена интегрирана версия за основния прозорец на WINAMP:

Системни изисквания:
Системата на която бе разработен и тестван този плъгин беше със следните параметри:
След разработката поведението на плъгина се тества на различни хардуерни концепции и се установи, че минималните изисквания на системата за оптимална работа са:
Поведението на този плъгин беше тествано на различни конфигурации, като не се установи влошаване на работата, като някои от тестваните системни конфигурации включваха:
Наслука и се наслаждавайте…
Няколко думи и за самия плъгин:
Писан е на Visual C++ v6.0. Целта му е да покаже напълно възможностите които предлага цифровата технология за синтезирането на аналогови процеси какъвто е например аналоговия индикатор на ниво (стрелкови). При създаването му са съобразени всички механични характеристики на една такава система. Съвсем на кратко това са:
Синтезиран
е цифрово висококачествен и професионален изправител на сигнал за ефективна стойност,
който следи гръмкостта на сигнала. Един такъв изправител връща корена от средно-квадратичната
моментна стойност във времето. За тази цел е необходим буфер за сигнала. Трябва
да се съобразят размера на буфера и поведението му за да не се получи закъснение
на показанието във времето. Размера на буфера се изчислява като той варира върху
долната гранична честота на индикатора. С оглед на професионалното поведение на
последният, тя е избрана на 15Hz. На практика такъв изправител много трудно
се реализира с дискретни елементи. Всички дотук изложени характеристики са синтезирани
по цифров начин чрез сложни DSP (Digital Signal Processing) алгоритми.
Не на последно място трябва да се отбележи реалното показание на индикатора и
реалистичната логаритмична скала. В едно такова професионално решение е наложително
скалата да е линейна (в проценти), което налага логаритмично преобразуване на
показанията. Именно поради тази причина се е наложило отчитането да се извършва
в dB, а не в проценти. Въпреки това в тази реализация скалата e дублирана
и показанието може спокойно да се отчита и в двете системи.
За да се синтезира едно реалистично поведение на стрелковата система бе необходимо
да се въведе "успокояване" на стрелката. Това както и параметрите: време за установяване
и време за обратен ход се синтезираха цифрово посредством цифров филтър.
В първите версии на индикатора бе използуван не-рекурсивен цифров филтър с крайна
импулсна характеристика (КИХ). Неговите недостатъци пред рекурсивния с безкрайна
импулсна характеристика за много, но единственото му преимущество бе в това, че
реакцията на такъв филтър много лесно може да се предвиди във времето. Въпреки
това в текущата версия се използува рекурсивен филтър с БИХ, който се синтезира
доста трудно и с много математически изчисления.
Целта беше да се симулира зареждането и разреждането на кондензатор в една интегрираща
RC-верига със съответните времеконстанти на заряд и разряд - по експоненциален
закон. Самата скала е конструирана векторно с помощта на CorelDraw, като
по този начин скалата и другите обекти в нея са изпълнени с максимална точност.
Ротацията на стрелката бе замислена да се реализира с помощта на ротационна матрица,
но се оказа значително по-лесно да се осъществи с помощта на SIN и COS
функции, като за целта бе нужно да се съобразят началното отместване и максималното
изместване на стрелката. И всичко това по логаритмичен закон!
А сега и нещо за размишление!: Както забелязвате скалата има два сектора -
зелен с показания до 0dB или 100% и червен с показания до +1dB,
който се равнява на ниво 120% от максимално-допустимото за една фонограма в цифров
вид. Как е възможно това при положение че се разполага само с 16 звукови бита
на канал, които отговарят на 100% от нивото.! За да следя и по-високи нива биха
ми били необходими поне още 3 бита или общо 19, а в професионално отношение се
използуват поне 20 бита! А аз наистина разполагам само с 16 и въпреки това успявам
да следя реалистично претоварването по ниво над 100%. Е, обяснение има и то математическо,
но си го запазвам за мен, а пък вие мислете…
В заключение ще кажа, че дори и на мен (автора) ми хареса поведението на индикатора.
Даже бих казал, че от него няма какво повече да се желае. А и не само по мое мнение,
самия той наистина заслужава определения като ADVANCED и PROFESSIONAL.
Ако наистина имате съмнения по този въпрос, може спокойно да си намерите професионален
магнитофон, да навържете изхода на вашата музикална платка към магнитофона и да
сравните показанията и поведението на последният. Имайте в предвид, че магнетофон
от средна класа няма да ви свърши работа поради факта че в него изправителя за
нивото на сигнала не е за ефективна стойност - а за средна. Много лесно се намира
средната стойност (един диод и един кондензатор - реализират детектор с интегрираща
верига), но не стои така въпроса в професионалните решения, където за последното
нещо се използува блок с 4 аналогови процесора !
ОСОБЕННО ПОЛЕЗНО ПРИЛОЖЕНИЕ:
Настоящият плъгин е особенно подходящ за следене и регулиране на еквалайзера на Winamp. Бутона PREAMP от последният регулира общото базово ниво на коригиране на сигнала. Ако то не се подбере правилно ще се получат много неприятни ефекти изразени в:
За ибягване на всички тези недостатъци използувайте контрол чрез настоящият плъгин, като регулирате нивото така, че стрелката да трепти около -3dB до -1dB, но в никакъв случай да не превишава 0dB и да отива в червеният сектор!
Основни изисквания към показващите прибори от този тип:
Измервателят на ниво е един от основните възли в много апаратури, предназначен за контрол на нивото на фонограмата. Този блок помага на оператора без слухов контрол да се избере оптималното ниво на фонограмата така че да се оползотвори максимално ограничения динамичен обхват на средата. За целта е необходимо:
За изпълнение на първото изискване, ИН трябва да регистрира върховите нива и да реагира сравнително бързо на максималната стойност. Времето на интеграция трябва да бъде 5-10mS, тъй като ухото е чувствително към краткотрайни изкривявания, а времето на връщзне - значитено по-дълго - 1-2 S. Тези изисквания се изпълняват от ИН за върхова стойност, които не са предмет на текъщата статия и няма да бъдат разгледани тук.
От друга страна за да се изпълни втората група изисквания е необходимо:
Втората
група изисквания най-пълно се удовлетворяват от УН, които реагират на ефективна
стойност и притежават необходимите дунамични и времеви характеристики. Такива
ИН се конструират сравнитено трудно, поради което по-често се срещат т.нар. VU-метри
(Volume Unit Meter - измервател на единици гръмкост), предложени от NBC, CBS и
Bell Labs в САЩ през 1953г., при които 1VU=1dB. Недостатък на VU
метрите е, че те отразяват средната стойност на сигнала, а определяща за гръмкостта
е ефективната, но при синъсоидален сигнал грешката е по-малка от 1 dB. Съществени
различия се появяват при индикиране на несинусоиди и импулсни сигнали. Например
показанието на един импулс с продължителност 10mS е с 10dB по-ниско от това на
по-продължителен тон със същата сила. Обикновенните (стрелковите) VU-метри при
импулси с продължителност 10mS показват около -15 до -20dB. Тези индикационни
съотношения при импулси с продължителност 10-15ms са важни, тъй като съставят
една значителна част от музикалните и говорните програми.
Характерна особеност на ИН с, че за разширяване на обхвата на измерване (от -40
-20dB до +3 +9dB) и за получаване на линейна скала в проценти в схемата се включва
логаритмичен функционален преобразувател. В практиката особенно в по-евтините
решения понякога изправителя и логаритмичния преобразувател се обединяват, като
за необходимото логаритмично преобразуване на входното напрежение се използува
нелинейният участък на волт-амперната характеристика на изправителният диод.
Най-важните динамични времеви характеристики на ИН са време на интеграция - tи,
време на връщане (обратен ход) - tвр., както и време за сработване - tср. и отскока
- делта.
Времето за интеграция е най-малката продължителност на правоъгълен импулс с номинално
ниво, запълнен със синусоидален сигнал с честота 1-5kHz (Burst), при която показанието
достига до 90% (-1dB) от номиналното ниво.
Времето за връщане е е продължителността на обратното движение на показващият
прибор след изключване на синусоидалния сигнал с номинално ниво, т. е. показание
от 100% до 10% или -20dB.
Времето за сработване е периодът от време от момента на подаване на синусоидалния
сигнал с номинално ниво , необходимо за установяване на показанието на 90% от
номиналното. Времето на сработване отразява инертността на подвижната система
на показващия механичен прибор, която зависи от балистичните му свойства.
Отскокът при установяване на показанието не е желателен и както времето за установяване
е характерен само за механичните показващи прибори. Той се получава при недостатъчно
добро демпфиране. То от своя страна може да се подобри чрез подходящо оразмеряване
на подвижната система (магнит, въздушна междина, маса), както и чрез установяването
на нискоомен източник, но непременно без влияние върху к.п.д. и останалите динамични
свойства.
Ако показващият прибор е безинерционен, както е в нашият случай важат следните зависимости:
tи= (4-7)Тзар
tвр=2,3Траз.
Ако за показващ прибор се използува механична магнитоелектрическа стрелкова система, поради закъснението с която тя следи напрежението върху изглаждащият кондензатор на изправителя е необходимо времеконстантата на зареждане да бъде по-малка:
tи=(8-10)Тзар
Създаването
на изправител на ефективна стойност на сигнала (RMS) се затруднява от факта, че
тя не може да се получи директно от обикновените изправителни схеми. Необходими
са допълнителни вериги с квадратична характеристика, което е един не винаги оправдан
разход. За разлика от пиковата и средната стойност, ефективната е независима от
относителното фазово отношение между отделните компоненти на комплексния сигнал,
което я прави най-подходяща за оценка на гръмкостта (силата) на музикалната програма.
Ефективната стойност при синусоидален сигнал се намира на -3dB под пиковата и
на +0.9dB над средната, а за типичен музикален сигнал - на -5 -11dB под пиковата
и на +1dB над средната. Средната стойност при синусоидален сигнал е с 3.9dB по-ниска
от пиковата а при обикновената музикална програма -6 до 12dB по-малка.
Ако ИН се използува за индикация на гръмкостта на музикалната програма, той трябва
да има изправител за ефектовна стойност (или средна в краен случай). Освен това
да реагира сравнително бавно (tи=200-300mS, tвр=200-500mS), което позволява използуването
на инерционни (стрелкови) системи.
Може да ми пишете на следния E-Mail: lz1bjr@qsl.net