При передаче сигналов с высоким динамическим диапазоном квантование с использованием интервалов равной длины может привести к потере точности и искажению сигнала. Компандирование - это операция, которая применяет логарифмическое вычисление для сжатия сигнала перед квантованием на стороне передачи и применяет обратную операцию для расширения сигнала, чтобы восстановить его до полного масштаба на стороне приема. Компандирование позволяет избежать искажения сигнала без необходимости задавать много уровней квантования. Сравнение искажений при использовании 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-law. Применение квантования и расширение квантованного сигнала. Вычислите среднеквадратичное искажение компандированного сигнала.
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])
