Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Labs Corregidos
Labs Corregidos
K=1;
hM = toeplitz([h([2:end]) zeros(1,2*K+1-L+1)], [ h([2:-1:1])
zeros(1,2*K+1-L+1) ]);
P = zeros(1,2*K+1);
P(K+1) = 1;
c = [inv(hM)*P.'].';
for ii = 1:length(Eb_N0_dB)
y = s + 10^(-Eb_N0_dB(ii)/20)*n1; % AWGN
y1 = h1.*s + 10^(-Eb_N0_dB(ii)/20)*n1; %plano en la frecuencia
y2= conv(s,h)+ 10^(-Eb_N0_dB(ii)/20)*n; %plano selectivo en la
frecuencia
figure
semilogy(Eb_N0_dB,theoryBer ,'rs-','Linewidth',2); %BER teorico
hold on
semilogy(Eb_N0_dB,simBer1(1,:) ,'md-','Linewidth',2); %BER simulado en
frecuencia
hold on
semilogy(Eb_N0_dB,simBer2(1,:) ,'kv-','Linewidth',2); %BER simulado
selectivo en frecuencia
grid on
title('Gráfico del BER');
Lab #4
N = 10^6; % # de bits de simbolo
Eb_N0_dB = [0:20];
ip=randint(1,N); %bits generados
s = 2*ip-1; % BPSK
n = 1/sqrt(2)*[randn(1,N+L-1) + j*randn(1,N+L-1)];
n1 = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)];
%zero forcing
K=1;
hM1 = toeplitz([h([2:end]) zeros(1,2*K+1-L+1)], [ h([2:-1:1])
zeros(1,2*K+1-L+1) ]);
P = zeros(1,2*K+1);
P(K+1) = 1;
c = [inv(hM1)*P.'].';
t2=0;
for ii = 1:length(Eb_N0_dB)
y = s + 10^(-Eb_N0_dB(ii)/20)*n1;
y1 = h1.*s + 10^(-Eb_N0_dB(ii)/20)*n1;
y2= conv(s,h)+ 10^(-Eb_N0_dB(ii)/20)*n;
yHat = y1./h1;
yFilt_zf = conv(y2,c);
ySamp_zf = yFilt_zf(K+2:N+1+K);
t1=clock;
% MMSE
hAutoCorr = conv(h,fliplr(h));
hM2=hM1*hM1';
hM = hM2 + 1/2*10^(-Eb_N0_dB(ii)/10)*eye(2*K+1);
d = zeros(1,2*K+1);
d([-1:1]+K+1) = fliplr(h);
c_mmse = [inv(hM)*d.']';
yFilt_mmse = conv(y2,c_mmse);
ySamp_mmse = yFilt_mmse(K+2:N+1+K);
t2=t2+etime(clock,t1);
ipHat = real(y)>0;
ipHat1 = real(yHat)>0;
ipHat2 = real(ySamp_zf)>0;
ipHat3 = real(ySamp_mmse)>0;
figure
nTap = 10;
ht = 1/sqrt(2)*1/sqrt(nTap)*(randn(1,nTap) + j*randn(1,nTap));
hF = fft(ht,nFFT);% Respuesta en frecuencia del canal de propagación
end
simBer = nErr/(nSym*nBitPerSym);
EbN0Lin = 10.^(EbN0dB/10);
theoryBer = 0.5.*(1-sqrt(EbN0Lin./(EbN0Lin+1)));
figure
semilogy(EbN0dB,theoryBer,'bs-','LineWidth',2);
hold on
semilogy(EbN0dB,simBer,'mx-','LineWidth',2);
axis([0 10 10^-5 1])