Compand сигнал

В определенных приложениях, таких как речевая обработка, распространено использовать расчет логарифма, названный компрессором, перед квантованием. Обратная работа компрессора называется расширителем. Комбинация компрессора и расширителя называется компандером.

compand функционируйте поддерживает два вида компандеров: µ-law и компандеры A-закона. Его страница с описанием перечисляет оба закона о компрессоре.

Quantize и Compand экспоненциальный сигнал

Установите параметр mu-закона.

mu = 255;

Создайте экспоненциальный сигнал и вычислите его максимальное значение.

sig = exp(-4:0.1:4);
V = max(sig);

Квантуйте сигнал при помощи интервалов равной длины. Установите раздел и значения книги шифров, приняв 6-битное квантование. Вычислите среднеквадратическое искажение.

partition = 0:2^6 - 1;
codebook = 0:2^6;
[~,~,distortion] = quantiz(sig,partition,codebook);

Сожмите сигнал при помощи compand функция. Примените квантование и расширьте квантованный сигнал. Вычислите среднеквадратическое искажение сигнала companded.

compsig = compand(sig,mu,V,'mu/compressor');
[~,quants] = quantiz(compsig,partition,codebook);
newsig = compand(quants,mu,max(quants),'mu/expander');
distortion2 = sum((newsig - sig).^2)/length(sig);

Сравните среднеквадратические искажения. Искажение меньше, когда вы выполняете компандирование. Это различие - то, потому что интервалы равной длины хорошо подходят для логарифма экспоненциального сигнала, но не хорошо подходят для самого экспоненциального сигнала.

[distortion, distortion2]
ans = 1×2

    0.5348    0.0397

Постройте исходный экспоненциальный сигнал и сигнал companded.

plot([sig' compsig']);
title('Comparison between Original signal and Companded Signal');
xlabel('Interval');
ylabel('Apmlitude');
legend('Original','Companded','location','nw');

Для просмотра документации необходимо авторизоваться на сайте