我正在尝试实现内核最小均方,但出现此错误 -> 内部矩阵维度必须一致

问题描述 投票:0回答:0

我编写了下面的代码,用于内核最小均方。我认为所有其他代码都是正确的,我只面临矩阵尺寸的问题。

%kernel function
sigma = 0.1; %Adjust this parameter based on problem
kernel_function = @(x,y)exp(-norm(x-y)^2/(2*sigma^2));
%Compute kernel matrix for all input data pairs
k = zeros(samples, samples);
for i = 1:samples
    for j=1:samples
        k(i,j) = kernel_function(X(:,i),X(:,j));
    end
end
%Implementing Kernel Least Mean Square (KLMS)
for n = 1:samples
    %y(1,n) = w*X(:,n); %estimated output signal
    y(1,n) = w*k(:,n)'; %estimated output signal
    e(n) = d(n) - y(1,n); %error
    w1 = w + mu*e(n)*k(:,n); %weights optimization (error)
    w = w1;
    se(n) = (abs(e(n)))^2; %square of errors
    sse = sse + se(n); %sum of square errors
    LMSE(n) = 20*log10((sse/n)); %logarithmic least mean square 
end

输出 = 内部矩阵维度必须一致

matlab signals signal-processing least-squares
© www.soinside.com 2019 - 2024. All rights reserved.