# BER result in MATLAB

I build a pam-2 modulation, then I make a pulse shaping with half sine (matched filter). Then I send it through the AWGN channel. At the end I do down sampling and demodulation. But i have problem with plotting BER. I don't understand what I'm doing wrong:

clc;
clear;
N=1e4;
N2 = 1e2;
M = 2;
range = 0:10;
error =  zeros(1,length(range)); %BER

%
% half sine
Rc = 1e3;       % Chip rate
T = 1/Rc;      % inverse of chip rate
Tc = 0.5* T;
Fs = 2e3;      % sampling frequency
dt = 1/Fs;
over = Fs/Rc;   % sampling factor
sps = 10;

time = 0:dt/sps:2*T;
half_Sine = sin(pi*time/(2*T)).^3;

%% BER

for i = 1:length(range)
for n = 1:N2

% Modulation
x=randi([0 M-1],N,1);
h_mod = pammod(x,M);
over_data=upsample(h_mod,over);
txSig = conv(over_data,half_Sine, 'same');
% AWGN
Ps = mean(((txSig)).^2);
Sigma = sqrt(Ps  * 10^(-range(i)/10) / 2);
Noise = randn(length(txSig), 1) * Sigma;
rx_SIG = Noise + txSig;

% Downsample
down = rx_SIG(1:over:end);

%  Demodulation
hDemod  =  pamdemod(down,M);
% Errors
error(i) = error(i)+...
sum(hDemod~=x) / length(hDemod);

end

BER = error/n;
end
figure(1);
grid on
semilogy(range,BER);
title('BER');