compand

Сжатие или восстановление сигналов по u или A закону

Синтаксис

out = compand(in,Mu,v)
out = compand(in,Mu,v,'mu/compressor')
out = compand(in,Mu,v,'mu/expander')
out = compand(in,A,v,'A/compressor')
out = compand(in,A,v,'A/expander')

Описание

out = compand(in,Mu,v) реализует µ-law компрессор для входного вектора in\mu задает µ и v максимальная величина входного сигнала. out имеет те же размерности и максимальную величину как in.

out = compand(in,Mu,v,'mu/compressor') совпадает с синтаксисом выше.

out = compand(in,Mu,v,'mu/expander') реализует µ-law расширитель для входного вектора in\mu задает µ и v максимальная величина входного сигнала. out имеет те же размерности и максимальную величину как in.

out = compand(in,A,v,'A/compressor') реализует компрессор A-закона для входного вектора in. Скалярный A параметр A-закона и v максимальная величина входного сигнала. out вектор той же длины и максимальной величины как in.

out = compand(in,A,v,'A/expander') реализует расширитель A-закона для входного вектора in. Скалярный A параметр A-закона и v максимальная величина входного сигнала. out вектор той же длины и максимальной величины как in.

Примечание

Преобладающие параметры, используемые на практике, являются µ = 255 и = 87.6.

Примеры

свернуть все

Сгенерируйте последовательность данных.

data = 2:2:12;

Сожмите входную последовательность с помощью μ-law компандера. Типичное значение для μ 255. Данные располагаются между 8,1 и 12 вместо между 2 и 12.

compressed = compand(data,255,max(data),'mu/compressor')
compressed = 1×6

    8.1644    9.6394   10.5084   11.1268   11.6071   12.0000

Расширьте сжатый сигнал. Расширенная последовательность почти идентична оригиналу.

expanded = compand(compressed,255,max(data),'mu/expander')
expanded = 1×6

    2.0000    4.0000    6.0000    8.0000   10.0000   12.0000

Сгенерируйте последовательность данных.

data = 1:5;

Сожмите входную последовательность с помощью компандера A-закона. Типичное значение для A 87.5. Данные располагаются между 3,5 и 5 вместо между 1 и 5.

compressed = compand(data,87.6,max(data),'a/compressor')
compressed = 1×5

    3.5296    4.1629    4.5333    4.7961    5.0000

Расширьте сжатый сигнал. Расширенная последовательность почти идентична оригиналу.

expanded = compand(compressed,87.6,max(data),'a/expander')
expanded = 1×5

    1.0000    2.0000    3.0000    4.0000    5.0000

Алгоритмы

Для данного x сигнала выход µ-law компрессора

y=Vlog(1+μ|x|/V)log(1+μ)sgn(x)

где V является максимальным значением x сигнала, µ является µ-law параметром компандера, журнал является натуральным логарифмом, и sgn является сигнум-функцией (sign в MATLAB).

Выход компрессора A-закона

y={A|x|1+logAsgn(x)V(1+log(A|x|/V))1+logAsgn(x)для 0|x|VAдля VA<|x|V

где A является параметром A-закона компандера, и другие элементы как в µ-law случае.

Ссылки

[1] Sklar, Бернард, цифровая связь: основные принципы и приложения, Englewood Cliffs, NJ, Prentice Hall, 1988.

Смотрите также

| |

Представлено до R2006a