Квантование и компандирование экспоненциального сигнала

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

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

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

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

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

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

mu = 255; % mu-law parameter
csig_compressed = compand(sig,mu,V,'mu/compressor');
[~,quants] = quantiz(csig_compressed,partition,codebook);
csig_expanded = compand(quants,mu,max(quants),'mu/expander');
distortion2 = sum((csig_expanded - sig).^2)/length(sig);

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

[distortion, distortion2]
ans = 1×2

    0.5348    0.0397

Постройте график исходного экспоненциального сигнала, квантованного сигнала и расширенного сигнала. Масштабирование оси, чтобы выделить ошибку квантованного сигнала на более низких уровнях сигнала.

plot([sig' qsig' csig_expanded']);
title('Comparison Between Original, Quantized, and Expanded Signals');
xlabel('Interval');
ylabel('Apmlitude');
legend('Original','Quantized','Expanded','location','nw');
axis([0 70 0 20])

Figure contains an axes. The axes with title Comparison Between Original, Quantized, and Expanded Signals contains 3 objects of type line. These objects represent Original, Quantized, Expanded.

См. также

Функции