Лаба 1-8 Лабы и ПЗ [Вариант 1] / 7 / laba#7
.odtМинистерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет информатики и радиоэлектроники»
Кафедра радиотехнических систем
Лабораторная работа №7
По теме: «Компьютерное моделирование и обработка
нестационарных сигналов»
Выполнил: Проверил:
ст. гр. 100500 Ходыко Д.Л.
Anonymo U.S.
Минск 2012
Цель работы
-
Изучение алгоритмов адаптивной обработки сигналов.
-
Изучение возможностей пакета MatLab для моделирования адаптивных систем.
Результаты выполнения работы
Используя алгоритм синтеза оптимального фильтра Винера, оценить качество желаемой импульсной характеристики в зависимости от порядка адаптивного фильтра.
Код программы:
h = [-2 -4 6 3]; % импульсная характеристика канала связи
N = 32; % порядок рассчитываемого фильтра
r = xcorr(h, N);
r = r(N+1:end); % односторонняя КФ импульсной характеристики канала
R = toeplitz(r); % корреляционная матрица искаженного сигнала
p = zeros(N+1, 1);
k0 = round((N-length(h)) /2) ;
p(k0:k0 + length(h)-1) = fliplr(h); % вектор взаимных корреляций
w = R\p; % коэффициенты оптимального фильтра
subplot(1,2,1)
impz(w) % график импульсной характеристики рассчитанного фильтра
subplot(1,2,2)
impz(conv(h, w) ) % график импульсной характеристики скорректированного канала
Проведем моделирование для разных параметров N: 16, 32, 64

С увеличением порядка фильтра, увеличивается качество фильтрации, т. к. мы получаем импульсную характеристику близкую к единичному импульсу.
Оценить скорость сходимости алгоритма LMS и дисперсию сигнала ошибки в установившемся режиме в зависимости от шага μ.
Код программы:
NoOfData = 8000; % Размерность входной последовательности
Order = 32; % Порядок фильтра
Mu = 0.01; % Размер шага
x = randn(NoOfData, 1) ; % Инициализация входную последователь-ность
h = rand(Order, 1) ; % Инициализация ИХ канала связи
d = filter(h, 1, x) ; %
w = zeros(Order,1) ; % Инициализаия ИХ адаптивного фильтра
...
% LMS алгоритм
for n = Order : NoOfData
D = x(n:-1:n-Order+1) ;
d_hat(n) = w'*D;
e(n) = d(n) - d_hat(n) ;
w = w + Mu*e(n)*D;
w_err(n) = norm(h - w) ;
end
subplot (1,2,1); plot(20*log10(abs(e))) ;
subplot(1,2,2); semilogy(w_err);
Промоделируем для разных значений параметра μ = 0.001, 0.01, 0.03, 0.04, 0.05, 0.07:


Оптимальным
значением можно считать: μ = 0.03. При нём
минимум ошибки достигается за минимальное
время.
Оценка качества идентификации канала связи в зависимости от дисперсии шума и шага μ.
Параметр шага μ = 0.001, 0.01, 0.05, 0.1, 0.5, 1 дисперсия 0 .


Ds = 0.01, 0.5, 1, 3, 5 при μ = 0.08


