В этом примере показано, как сжимать речевой сигнал с использованием дискретного косинусного преобразования (DCT).
Загрузите файл, содержащий слово, «сильное», произнесенное женщиной и мужчиной. Сигналы выбраны на уровне 8 кГц.
load('strong.mat') % To hear, type soundsc(her,fs), pause(1), soundsc(him,fs)
Используйте дискретное косинусное преобразование для сжатия внутреннего речевого сигнала. Разложение сигнала на базисные векторы DCT. В разложении столько же членов, сколько выборок в сигнале. Коэффициенты расширения в векторе X измерить, сколько энергии хранится в каждом из компонентов. Отсортируйте коэффициенты от наибольшего к наименьшему.
x = her';
X = dct(x);
[XX,ind] = sort(abs(X),'descend');Найдите, сколько DCT коэффициентов представляют 99,9% энергии в сигнале. Выражайте число в процентах от общего числа.
need = 1; while norm(X(ind(1:need)))/norm(X)<0.999 need = need+1; end xpc = need/length(X)*100;
Установите в нуль коэффициенты, которые содержат оставшиеся 0,1% энергии. Восстановите сигнал из сжатого представления. Постройте график исходного сигнала, его реконструкции и разницы между ними.
X(ind(need+1:end)) = 0; xx = idct(X); plot([x;xx;x-xx]') legend('Original',[int2str(xpc) '% of coeffs.'],'Difference', ... 'Location','best')

% To hear, type soundsc(x,fs), pause(1), soundsc(xx,fs)Повторите анализ для мужского голоса. Найдите, сколько коэффициентов DCT представляют 99,9% энергии и выразите число в процентах от общего числа.
y = him'; Y = dct(y); [YY,ind] = sort(abs(Y),'descend'); need = 1; while norm(Y(ind(1:need)))/norm(Y)<0.999 need = need+1; end ypc = need/length(Y)*100;
Установите остальные коэффициенты в нуль и восстановите сигнал из сжатой версии. Постройте график исходного сигнала, его реконструкции и разницы между ними.
Y(ind(need+1:end)) = 0; yy = idct(Y); plot([y;yy;y-yy]') legend('Original',[int2str(ypc) '% of coeffs.'],'Difference', ... 'Location','best')

% To hear, type soundsc(y,fs), pause(1), soundsc(yy,fs)В обоих случаях для разумного восстановления речевого сигнала достаточно примерно половины коэффициентов ДКП. Если требуемая доля энергии составляет 99%, количество необходимых коэффициентов уменьшается примерно до 20% от общего количества. Получившаяся реконструкция уступает, но все же внятна.
Анализ этих и других образцов показывает, что для характеристики голоса мужчины требуется больше коэффициентов, чем у женщины.