0
megabax
30.08.16
✎
11:18
|
Добрый день.
Имеется матрица Phi размером P на N, которая представляет собой словарь. Имеет столбец y, который представляет собой исходный сигнал.
Требуется найти разряженное представление сигнала x методом Matching pursuit.
Пытаюсь реалзировать в SciLba и делаю так:
x = zeros(N,1);
c = Phi'*(y-Phi*x);
[GGGG,i] = max(abs(c));
x(i) = x(i) + c(i);
Затем повторяю:
c = Phi'*(y-Phi*x);
[GGGG,i] = max(abs(c));
x(i) = x(i) + c(i);
В результате невязка почему то расходится. То есть, я вычисляю ошибку и она с каждой итерацией увеличивается
(коэффиценты в массиве c тоже почему то возрастают каждый раз и бытсро достигают астрономических величин).
Ошибку вычисляют вот так:
vlength(y-Phi*x)
Где vlength это функция:
function y=vlength(vector)
lsumma=0
for i=1:prod(size(vector))
lsumma=lsumma+vector(i)*vector(i)
end
y=sqrt(lsumma)
endfunction
Подскажите, пожалуйста, что я делаю не так?
|
|