ФОСМС2015fokin_12345
.pdfПредсказатель ДИКМ
Предсказатель сигнала в кодере TX и декодере RX реализован в ИМ функцией
рекурсивного алгоритма МНК (RLSE)
function [xqhn,P,a]=prdctr(en,xqs,M,P,a,alpha)
Сравнивая графики ошибки квантования с компандером и в случае ДИКМ, можно сделать следующий вывод: при меньшем числе уровней квантования (N=8) ДИКМ обеспечивает меньшую ошибку квантования, нежели квантователь с компандером (N=16).
function [xqhn,P,a]=prdctr(en,xqs,M,P,a,alpha) % One-step-ahead predictor based on RLSE
% |
Input: |
en |
= |
Prediction error |
% |
|
xqs |
= |
Predictor input history [1 xq(n-M) ... xq(n-1)] |
%M = Order of the predictor
%P = Matrix to be initialized as, say, an identity matrix
%a = Previous parameter estimate of dimension M+1
%alpha= Forgetting factor <=1
%Output: xqhn = Predictor output
%P = Updated P matrix
%a = Updated parameter estimate of dimension M+1
K= P*xqs/(xqs'*P*xqs +alpha); % Predictor gain
xqhn= a'*xqs; |
% Predictor output |
|
a= |
a +K*en; |
% Parameter update |
P= |
(eye(M+1,M+1)-K*xqs')*P/alpha; % Parameter update |
21
Моделирование работы ДИКМ
%sim_DPCM.m
%adaptive predictor in TX and the predictor
%with the same (transmitted) coefficients in RX clear, clf
T=0.01; nmax=20; t=[0:nmax-1]*T;
%b0=min(x); bN=max(x); xmax=max(abs([b0 bN]))
b0=-0.4; bN=0.4; N=8; |
% left/rightmost boundary & # of bits/sample |
|
delta=(bN-b0)/N; |
% the width |
of the quantization interval |
b=b0+[0:N]*delta; |
% the boundary vector |
|
c=b(1:N)+delta/2; |
% quantization level vector |
|
M=2; M1=M+1; |
% dimension |
of predictor(RLSE) |
% initialize the parameters of the predictor |
||
P=eye(M1,M1); a=zeros(M1,1); alpha=1; |
||
%initialize the (memory) buffers of |
TX/predictor |
|
xqs=[1; zeros(M,1)]; |
xqhn=0; dn=0; |
dqn=0; |
%initialize the (memory) buffers of |
RX/predictor |
|
yqs=[1; zeros(M,1)]; |
|
|
for n=1:nmax |
|
|
x(n)= sin(6*(n-1)*T);
xqs= [1; xqs(3:M1); xqhn+dqn]; %the predictor output history if n<40 %training period for adaptive predictor
[xqh(n),P,a]=prdctr(dn,xqs,M,P,a,alpha); %adaptive predictor else
xqh(n)= a'*xqs; %non-adaptive predictor
end |
|
d(n)=x(n)-xqh(n); |
%prediction error |
dq(n)=adc(d(n),b,c); |
%quantizer at TX(encoder) |
dn=d(n); dqn=dq(n); xqhn=xqh(n); |
%store/delay |
yq(n)=a'*yqs +dqn; |
%the output of predictor at RX |
yqs=[1; yqs(3:M1); yq(n)]; |
%store/delay |
end
subplot(211); plot(t,x,'linewidth', 1, 'color','k'); hold on; stairs(t,d, 'linewidth', 1, 'color', 'b'); stairs(t,dq,'linewidth', 1, 'color','r'); stairs(t,yq,'linewidth', 1, 'color','m');
legend('analog signal x(t)','quantizer input d[n]',...
'quantizer output d_{q}[n]','rx/decoder output y_{q}[n]' ); str1=sprintf('Analog and quantized signals; N=%d', N); title(str1); subplot(212), plot(t,x-yq,'r-');
str21=sprintf(' Error between analog signal x(t) '); str22=sprintf('and output y_{q}[n] of the rx/decoder'); str3=[str21;str22]; title(str3);
legend('x(t) -y_{q}[n]','Location','southeast');
22
Структура приемопередатчика ДМ
Дельта-модуляция получается из ДИКМ исключением предсказателя и ограничением
числа бит квантователя до одного, при этом одним битом можно представить два
уровня квантования ±∆ 2. В канал передается величина = ±∆ 2, знак которой определяется сравнением текущего значения и предыдущего квантованного значения − 1 . Приемник, получив величину ±∆ 2, добавляет её к предыдущей
оценке |
− 1 |
и, таким образом, получает текущую оценку |
сигнала |
. |
||||
|
|
|
|
|
|
|
|
|
|
|
(Дельта (∆) модулятор) |
|
|
(Дельта (∆) демодулятор) |
|||
|
|
Приемник/декодер |
|
|
Приемник/декодер |
|
||
x(t) |
x[n] |
d[n] |
dq[n] |
|
|
yq[n]=xq[n]≈x(t) |
|
|
Дискр-р |
+ |
Квантователь |
|
Канал |
+ |
+ |
|
|
|
+ |
|
|
|
+ |
|
|
|
|
– |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xq[n]=xq[n-1] |
xq[n] |
|
|
yq[n]=yq[n-1] |
yq[n] |
|
|
|
z¯¹ |
+ |
|
|
|
z¯¹ |
|
Анализ результатов работы ДМ показывает, что фиксированный интервал приводит к погрешностям в области резких изменений и в области слабых изменений значений
аналогового сигнала. Одним из вариантов снижения погрешности является использование адаптивно изменяемого интервала ∆ . Правило адаптации, использованное далее в программе, можно представить выражением:
∆ = ∆−1 |
|
|
|
−1 |
. |
(4.4.1) |
|
|
|
||||
|
|
|
|
23
Моделирование работы ДМ
%sim_DM.m
% simulates the DM (Delta Modulation) system clear, clf;
T=0.01; nmax=140; t=[0:nmax-1]*T; b0=-0.1; bN=0.1; N=2;
for itr=1:2
delta=(bN-b0)/N; |
% Width of the quantization interval |
xqhn=0; yqn=0; |
% Initialize the (memory) buffers |
for n=1:nmax |
|
x(n)= sin(6*(n-1)*T); % +.2*(rand-0.5); xqh(n)=xqhn; % Predictor(delay) output d(n)=x(n)-xqh(n); % Comparator input dq(n)= sign(d(n))*delta/2; % Comparator
%with adaptive adjustment of quantization interval width or not if itr==2
delta=delta*50^(dq(n)*dqn); % Eq.(4.4.1)
end |
|
dqn=dq(n); xqhn=xqh(n)+dqn; |
% Store/Delay |
yq(n)=yqn+dq(n); |
% Receiver(DM decoder) |
yqn=yq(n); |
% Store/Delay |
end
subplot(2,2,itr);plot(t,x,'k'); hold on; axis([0 T*nmax -1 1]); stairs(t,d, 'linewidth', 1, 'color','b'); stairs(t,dq,'linewidth', 1, 'color','r'); stairs(t,yq,'linewidth', 1, 'color','m');
legend('analog signal x(t)','quantizer input d[n]',...
'quantizer output d_{q}[n]','rx/decoder output y_{q}[n]'); str1=sprintf('Analog and quantized signals; N=%d', N); title(str1); subplot(2,2,itr+2); plot(t,x-yq,'r-'); axis([0 T*nmax -0.2 0.2]);
str21= sprintf('Error between analog signal x(t) |
'); |
|
str22= sprintf('and output y_{q}[n] of |
the rx/decoder |
'); |
str231=sprintf('(width of quantization |
interval fixed) |
'); |
str232=sprintf('(width of quantization interval adaptively adjusted)'); str1=[str21; str22; str231];
str2=[str21; str22; str232]; if itr==1
title(str1); elseif itr==2
title(str2);
end
legend('x(t) -y_{q}[n]','Location','southeast'); sum_of_squared_error=(x-yq)*(x-yq)'
end
24
Иллюстрация работы ДМ
25
Тема 3.1. АДИКМ. Теория
Цель: Изучить принципы работы АДИКМ, АДМ
Задачи:
Изучить принципы функционирования АДИКМ
Изучить принцип работы устройства предсказания
Изучить структурные схемы АДИКМ по рек. G721/G.722
Изучить особенности реализации АДИКМ
План:
Передача и прием в системе с предсказанием
Передача и прием в системе с ДИКМ
Устройство предсказания
Принцип работы АДИКМ
Передача и прием в системе с АДИКМ
Рекомендация G.721 (G.726)
Рекомендация G.722
Особенности реализации АДИКМ
АДМ
Содержание отчета: определяется задачами и планом практического занятия ДЗ: изучить материал по плану
26
Передача и прием в системе с предсказанием
С целью снижения требований к пропускной способности канала можно использовать наличие корреляции между отсчетными значениями передаваемого сообщения. Такой метод называется передачей с предсказанием.
На передающем конце последовательность значений поступает на один вход
вычитающего устройства, в то время как на другой вход поступает предсказанное
значение , полученное тем или иным методом в устройстве предсказания на основе анализа как предыдущих отсчетных значений сообщения, так и текущих передаваемых значений на выходе вычитающего устройства.
На приемном конце значения сообщения восстанавливаются путем добавления
принятого сигнала ошибки предсказания |
к предсказываемому значению . |
27
Передача и прием в системе с ДИКМ
В системе с дифференциальной импульсно-кодовой модуляцией (ДИКМ — Differencial Pulse Code Modulation, DPCM) отсчетные значения ошибки предсказания подвергаются квантованию с переходом к значениям аналогично тому, как это делается при использовании обычной ИКМ, однако при существенно меньшем числе
уровней квантования. Таким образом, при одинаковом качестве передачи речи метод ДИКМ позволяет использовать меньшее число разрядов в кодовых комбинациях по сравнению с ИКМ.
При этом существует большое число различных вариантов реализации метода ДИКМ, наиболее типичный из которых работает следующим образом:
= −
= +
28
Устройство предсказания
В качестве предсказываемого значения сообщения в простейшем случае может быть использовано предыдущее отсчетное значение, хотя в общем случае используется выражение
= |
|
|
|
− , |
|
=1 |
|
|
так что предсказатель может быть реализован в виде трансверсального фильтра на основе (регистра сдвига) L-отводной линии задержки с временем задержки между отводами, равным интервалу временной дискретизации ∆.
Очевидно, что получаемые на выходе приемного устройства значения сообщения несколько отличаются от переданных значений вследствие погрешности предсказания и влияния шума в канале. Тем не менее, метод ДИКМ даже с простейшим предсказателем по предыдущему значению сообщения (предсказатель первого порядка, = 1 ) позволяет при том же качестве передачи сообщений, что и при методе ИКМ, снизить скорость передачи до 56 Кбит/с. В случае же использования предсказателя третьего
порядка ( = 3) эта скорость может быть снижена до значения 48 Кбит/с. |
29 |
|
Принцип работы АДИКМ
Дальнейшее снижение скорости передачи цифрового потока, достигаемое при использовании ДИКМ, может быть получено путем перехода к адаптивной дифференциальной импульсно-кодовой модуляции (АДИКМ — Adaptive Differencial Pulse Code Modulation, ADPCM).
При АДИКМ производится либо адаптивное регулирование величины шага квантования сигнала ошибки предсказания в соответствии с изменяющимся уровнем средней мощности речевого сообщения (шаг квантования пропорционален значению уровня мощности), либо шаг квантования не изменяется, но автоматически
поддерживается постоянный уровень средней мощности сообщения. Кроме того, осуществляется также автоматическая подстройка коэффициентов устройства предсказания на основе статистического оценивания параметров передаваемого сообщения. Логическая схема формирования (а) и приема (б) сигнала АДИКМ, основанная на втором методе, включает цепи автоматической регулировки усиления и подстройки параметров предсказателя.
30