0

入力にランダム信号が追加されたアダプティブリニアコンバイナー(最急降下法)用に次のコードを記述しました。:M = 16;

M=16;
k=[1:200];
R=[0.5 0.46;0.46 0.5];
P=[0;-0.38];
wstar=[-5 30];
s=sin((2*pi*k)/M);  %input signal
d=cos((2*pi*k)/M);  %desired signal
**x=s+randn(1,M);** %input signal + noise
mu=1;
for i=1:M           %steepest descent algorithm
    w(1)=wstar;
    g(i)=2*R*w(i)-2*P;
    w(i+1)=w(i)+mu*(-g(i));
end
for i=1:M
    y(i) = sum(w(i)*x(i),w(i+1)*x(i+1)); %output signal
    e(i) = d(i)-y(i);  %error signal
end
subplot(221),plot(k,d),ylabel('Desired Signal');
subplot(222),plot(k,s),ylabel('Input Signal+Noise');
subplot(223),plot(k,e),ylabel('Error');
subplot(224),plot(k,y),ylabel('Adaptive Desired output');

何らかの理由で、x = s + randn(1、N)にエラーがあると表示されます。誰かが私がどこで間違っているのか教えてもらえますか?

4

1 に答える 1

1

sは長さ 200 のベクトルであり (なぜなら)、長さ のベクトルである をk = 1:200追加しています。それらはどのように一緒に追加することになっていますか?randn(1, M)M = 16

于 2013-02-22T06:56:03.750 に答える