Лабораторна робота №1 Тема: Моделювання роботи препроцесора для попередньої обробки мовних сигналів. Мета: Опрацювати та випробувати в середовищі MATLAB 6.0 програму, яка реалізує етапи попередньої обробки мовних зразків. Виконання роботи: Варіант 6
Код програми: clear all; vybirka = 1 ; signal = audioread('example.wav') ; subplot(3,3,1); plot(signal);title('example.wav'); d = length(signal) ; i = 1 ; while i < d - 408 vybirka = vybirka + 1 ; y = signal(i : i + 408) ; S(1) = 0.0 ; for n = 2 : 409 S(n) = y(n) - y(n - 1) ; end; for n = 1 : 409 D(n) = (0.54 - 0.46 * cos(2 * pi * (n - 1) / 408)) * S(n) ; end; B = abs(fft(D ,512)) ; C = B(1:256); %{ Hz = [0; 74.24; 156.4; 247.2; 347.6; 458.7; 531.6; 717.5; 867.9 ; 1034; 1213; 1422;1647; 1895; 2171; 2475; 2812; 3184; 3596; 4052; 4556; 5113; 5730;6412; 7166; 8000]; %} Hz = [458.7; 561.6; 717.5]; for n = 1 : 3 V(n) = round (Hz(n) * 256 / 8000) ; V(1) = 1; end; Sum = 0 ; R(1 : 24) = 0; for j = 1 : 1 N = V(j + 2) - V(j); N1 = V(j + 1) - V(j); D1 = 1 / N1; for k = 1 : N1 Sum = Sum - S(k + V(j)) * D1 * k; end; N2 = V(j + 2) - V(j + 1); D2 = 1 / N2; for k = 1 : N2 Sum = Sum - S(k + V(j + 1)) * (1 - D2 * k) ; end; R(j) = Sum / N ; Result (vybirka,j) = R(j); end; i = i + 160; end; subplot(3,3,2); plot(y);title(' 409 values '); subplot(3,3,3); plot(S);title(' applying filters'); subplot(3,3,4); plot(D);title(' Hemming'); subplot(3,3,5); plot(B);title(' 512 fft '); subplot(3,3,6); plot(C);title(' 256 elements '); subplot(3,3,7); plot(Result(vybirka,1:3)); title(' 24-element vector'); Результат роботи програми: Висновок: в ході виконання лабораторної роботи №1 я навчилась моделювати мовні сигнали в середовищі MATLAB 6.0 для подальшого їх використання, а саме обробки та дослідження. |