clc
clear
h0=[0.4,1,-0.7,0.6,0.3,-0.4,0.1]; %channel impulse response
M=length(h0)-1;
N=17; %length of equalizer
K=100; %block size
SNR=30;
nlp=100; %100 trials
%Toeplitz convolution matrix
H=zeros(N,M+N);
for k=1:N
H(k,k:(k+M))=h0;
end
for lp=1:nlp
%BPSK signal
x1=round(rand(1,K+(M+N)-1));
x=pskmod(x1,2);
x=x.';
%channel output
for k=1:K
r0(k*N:-1:(k-1)*N+1)=H*x(k+(M+N)-1:-1:k);
end
r=awgn(r0,SNR,'measured'); %awgn
% normalize
power=mean(abs(r).^2);
r=r./sqrt(power);
%R'*mu=delta
delta=zeros(N,1);
delta((N+1)/2)=1;
%inner product matrix fi
%initia