Файл: Л. Н. Гумилев атындаы еуразия лтты университеті апаратты технологиялар факультеті Кафедра.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.03.2024
Просмотров: 17
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Модельді сақтау үшін модель редакторы терезесінің file мәзірінде Save немесе save as пәрмені қолданылады. Модель ASD кеңеюі бар файлда сақталады .mdl (және бұл жағдайда strn.mdl).
Акт-осциллографты модельдеу процесін аяқтағаннан кейін сіз модельдеу тат нәтижесі көрінетін терезені жүргізесіз..
Зертханалық жұмыс 8
Жұмыстың мақсаты:Сөйлеу сигналдарын декодтау алгоритмін зерттеу
Есеп мазмұны
1. Файлдар *.жасалған модельдердің mdl.
2. М-жіктеу функциясының файлы (түсініктемелермен).
3. Бастапқы және синтезделген сөйлеу сигналдарының "осциллограммалары".
4.Қорытынды.
Тапсырма 1. Төменде келтірілген материалды зерттеп, мәтінде келтірілген мысалдар мен жаттығуларды қайталаңыз.
Қысқаша теориялық ақпарат
LPC сөйлеу кодегін құрудың қарапайым нұсқасында болжау қалдығы сигналы (кодер шығысы) ретінде қолданылады, дешифратордың синтез сүзгісін қоздыратын сигнал. Алайда, бұл жағдайда сөйлеу сигналының қысылу коэффициенті аз.
Оны арттыру үшін болжамның қалған бөлігі модельденеді және байланыс арнасы арқылы модель параметрлерін жібереді. Қарапайым жағдайда, бұл параметрлер күшейту коэффициенті (болжау сигналының деңгейі), тон/Шу белгісі, сөйлеу сигналының дауысты сегменттері жағдайында негізгі тон кезеңі болып табылады. Дауысты дыбыстарға қатысты жағдай үшін көрсетілген жағдайда қозу сигналының моделінің құрамын қарастырыңыз (сурет. 8.1).
Мұнда ГИ – импульс генераторы, Пост. – тұрақты шаманы қалыптастырушы, к-тұрақты беру коэффициенті бар буын К (синтезделген сигнал деңгейін реттеу үшін), Х-көбейткіш сигнал сегментінің қуаты туралы ақпараттан "түрлендіру функциясы" блогы қалыптастыратын сигнал және өзгеретін тұрақты шама. Бұл жағдайда" түрлендіру функциясы " блогы қоздыру сигналының күшейту мәнін қалыптастыру үшін квадрат түбір функциясын жүзеге асырады. Тұрақты шаманы қалыптастырушы генератор сигналынан тұрақты компонентті алып тастау үшін қажет, бұл рекурсивті сүзгі болып табылатын синтез сүзгісінің қалыпты жұмысын қамтамасыз етеді.
Блоктардың параметрлерін анықтау: gi, Пост. Келесі мысалды қарастырыңыз. Үлгі жиілігі f = 8000 Гц болсын, қозу импульстарының 30/8000 жүру кезеңі. Содан кейін Pulse Width генераторының параметрі келесідей анықталады [(1/8000) /(30/8000)]100 = 100/30. Импульстардың бірлік амплитудасындағы тұрақты компонент gi ретінде анықталады (1/8000) /(30/8000) = 1/30.
Модельді іске асыруды жеңілдету үшін сөзді айту кезінде негізгі тон жиілігі аз өзгеретінін ескереміз, сондықтан импульс генераторының параметрлерін тұрақты деп санаймыз. Жоғарыда айтылғандарды ескере отырып, қоздыру сигналын қалыптастыру моделінің блок-схемасы келесідей (сурет. 8.2).
Мұнда квадрат түбірлік экстракция блогының кірісіне Левинсон-Дурбин блогының қосымша шығысынан болжамды қалдық қуат сигналы беріледі. Шығу блокты қосымша реттеу арқылы қалыптасады. Буферлік Блок декодердің синтездеу сүзгісіне түсетін деректер ағындарын синхрондау үшін қажет: әрбір шағылысу векторы "өз" мәніне сәйкес келуі керек
синтездеу сүзгісінің қоздыру сигналының сегменті. Буфердегі сегменттердің қабаттасу шамасы нөлге тең, ал сегменттің санау саны N1 = N – M, мұндағы N – кодер буферінде қолданылатын сегменттегі санақ саны, ал M – кадр буферіндегі сегменттердің қабаттасу шамасы.
Вокалданған және вокалданбаған дыбыстар үшін синтездеу сүзгісінің қозу сигналын қалыптастыру
Жоғарыда айтылғандай, бұл жағдайда сигналды кодтау сатысында тон/Шу белгісін анықтау керек, яғни дыбыстарды дауысты және дауыссыз дыбыстарға жіктеу керек. Біз мұндай жіктеу әдістерінің бірі талданатын сигнал сегментінің болжамды қалдығының автокорреляциялық функциясының r(τ) бағасын пайдалану болып табылады. Дауысты дыбыстар жағдайында бұл периодты болып табылады және оның вокалдық сымдардың діріл кезеңіне (сөйлеу сигналының негізгі тонусының кезеңіне) еселенген кідірістердегі мәндері нөлдік кідірістегі функция мәнімен салыстырылады.
Егер дыбыс вокализацияланбаған болса, онда нөлдік кідірістегі функцияның мәні нөлдік емес кідірістердегі функцияның мәндерінен әлдеқайда көп. Демек, дыбыстарды нөлдік және нөлдік емес кідірістердегі == r(τ)/R(0) функция мәндеріне қатысты жіктеуге боладык == r(τ)/R(0) нөлдік және нөлдік емес кідірістердегі функция мәндері.Егер R шамасы белгілі бір шекті мәннен үлкен болса, онда дыбыс есептеледі
Мұнда буфер параметрлері кодер үлгісіндегідей орнатылады. Автокорреляциялық функцияны есептеу блогының параметрлері кодер моделіндегі ұқсас блоктан біршама ерекшеленеді. Корреляциялық функция сигнал сегментінің ұзақтығының бүкіл интервалында есептеледі және мәнге қатысты қалыпқа келтіріледі
нөлдік кідіріс кезінде. 8.4 суретте блок параметрлерін орнату терезесінің суреті берілген. Әйтпесе, дыбыс вокализацияланбаған болып саналады. Корреляциялық функцияны анықтау үшін модель жүзеге асыратын корреляциялық функцияның есептегішінің кірісіне болжам қалдығы сигналы берілуі керек,
8.3 суретте көрсетілген.к == r(τ)/R(0) нөлдік және нөлдік емес кідірістердегі функция мәндеріх = = r(τ)/R (0) нөлдік және нөлдік емес кідірістердегі функция мәндері.
Блоктың жұмыс нәтижелері MATLAB жұмыс кеңістігіне шығарылады және жұмыс алгоритмі жоғарыда көрсетілген материалға сәйкес келетін clsf жіктеу функциясымен өңделеді. Функция коды келесідей:
function class=clsf(correl,r)
[m,n,q]=size(correl);
correl_less=zeros(m,q);
class=zeros(1,q);
for d=1:q
corel_less(:,d)=correll(:,1,d);
end
max_cor 1=max(corel_less(16:150,:));
medmax=medfilt1(max_cor 1,3);
for d1=1:q
if mad max(1,d1)>r
class(1,d1)=1;
end
end
Функцияның кіріс параметрлері корреляция функциясының мәндерінің corel массиві және R классификациясының шекті мәні (0 < r < 1) болып табылады.Алдымен массивтің мөлшері үш өлшемнен екі өлшемге дейін азаяды. Содан кейін әр қалдық сегменті үшін max функциясын қолданыңыз
болжамдар нөлдік емес кідіріс мәндері үшін нормаланған автокорреляция функциясының максималды мәні анықталады. Әрі қарай, медианалық сүзгінің көмегімен функцияның ауытқуы азаяды. Функцияның жұмысы массивтің қалыптасуымен аяқталады
жіктеу нәтижелері бойынша. Егер сигнал сегменті дауысты дыбысқа сәйкес келсе, онда сәйкес массив элементі бірлікке тең болады. Әйтпесе, ол нөлге тең. Алынған жіктеу нәтижелерінің массиві сөйлеу декодерінде синтездеу сүзгісінің қозу сигналын қалыптастыру үшін қолданылады (сурет. 8.5).
Бұрын қарастырылған импульстік қоздыру сигналының форматорымен салыстырғанда, мұнда генераторшум қолданылады, ол жинақтау блогында импульстік сигналмен біріктіріледі. Біріктіру алдында импульстік сигнал мен ақ Шу қосқыштар рөлін атқаратын көбейту блоктары (Product1, 2), арқылы өтеді. Коммутаторларды басқару y массивімен жүзеге асырылады, ол модельге Signal from Workspace (Signal Processing Blockset, Signal Processing Sources бөлімі) көмегімен енгізіледі. Блок параметрлерін орнату тілқатысу терезесі 8.6.суретте көрсетілген.
Коммутаторлардың фазаға қарсы жұмыс істеуі үшін тұрақты шаманы (бірлік) енгізу және азайту блоктарының жиынтығы қолданылады. Деректерді Буферлеу қондырғылары коммутаторларды импульстік генератор мен Шу генераторының деректер ағындарымен синхрондау үшін қолданылады. Блок параметрлерін орнату тілқатысу терезесі 8.7суретте көрсетілген.
Синтез сүзгісінің қоздыру сигналын қалыптастырушының жалпы блок-схемасы 8.8.суретте көрсетілген.
Болжамды қалдық сигнал күші туралы ақпаратты блокты тиісті режимге орнату арқылы Levinson-Durbin блогынан алуға болады.
2-тапсырма
1. Синтез сүзгісінің қозуын болжау қалдығы сигналы, сондай-ақ импульстік қозу сигналының қалыптасу моделі жүзеге асыратын кодек LPC моделін қолдана отырып, синтез сүзгісінің импульстік қозу сигналы бар кодек моделін жасаңыз.
2. Оқу жұмыс кеңістігі берілген дыбыстық файл.
3. Синтездеу сүзгісінің қозуын болжау қалдығы сигналы жүзеге асыратын кодек LPC моделін қолдана отырып, MATLAB функциялары арқылы сөйлеу сигналының дауысты сегменті үшін болжау қалдығы сигналындағы негізгі тон жиілігін анықтаңыз.
4. Құрылған модельдің импульстік генератор блогында бұрын анықталған негізгі тон жиілігіне сәйкес келетін импульстардың жүру кезеңін орнатыңыз. Импульстік тізбектің тұрақты компонентінің мәнін есептеңіз және алынған мәнді Constant блогына орнатыңыз.
5. Берілген дыбыстық файл үшін жасалған модельді іске қосыңыз.
6. Бастапқы және синтезделген сөйлеу сигналдарының "осциллограммаларын" құрыңыз, модельді бірдей сигнал деңгейлерімен реттеңіз.
7. Импульстардың жүру кезеңін өзгерту (сонымен бірге тұрақты компонент пен Pulse Width параметрінің мәнін өзгерту), синтезделген сигнал пішінінің өзгеруін қадағалаңыз және тиісті дыбыстық файлды тыңдаңыз.
8. Бастапқы және синтезделген сөйлеу сигналдарының айырмашылықтары туралы тұжырымдар жасаңыз.
9. Біріктірілген кодек моделін жасаңыз (импульстар – Шу) синтездеу сүзгісінің қозу сигналы.
10. Жасалған модель үшін 5-, 6-, 8-тармақтарды қайталаңыз. Синтезделген сигналдың минималды бұрмалануын қамтамасыз ететін R жіктеу шегінің оңтайлы мәнін таңдаңыз.
Қосымша. Синтездеу сүзгісінің қоздыру сигналын қалыптастырушыны модельдеу үшін қолданылатын блоктар туралы анықтамалық мәліметтер
Модельді іске асыру үшін Simulink пакетінің келесі блоктарын пайдалану қажет. Импульстік генератор - импульстік генератор. Блок SIMULINK негізгі пакетінің Sources кітапханасында орналасқан. Оның параметрлерін орнатқан кезде импульстардың кезеңі мен ұзақтығы іріктеу кезеңінің еселігі болуы керек екенін ескеру қажет.
Constant - Sources кітапханасында орналасқан, тұрақты мәнді қалыптастыруға қызмет етеді.
Math Function-Math operations кітапханасында.
Product-Math operations кітапханасында. Блок кіріс сигналдарының көбеюін немесе бөлінуін қамтамасыз етеді. Параметрлерді орнату кезінде блок кіріс санын анықтап, элементтердің көбейту операциясын орнатуы керек.
Gain-Math operations кітапханасында. Көбейту коэффициентін орнатқан кезде блок берілген беру коэффициентімен байланыс ретінде жұмыс істейді.
Sum-Math operations кітапханасында. Блок кіріс сигналдарын қосуды немесе азайтуды қамтамасыз етеді.