Está en la página 1de 5

Instituto Politécnico Nacional

Unidad Profesional Interdisciplinaria en Ingeniería y


Tecnologías Avanzadas

REPORTE
“Simulaciones”

Alumno:
- Rojas Gómez Enrique

4TM1

Dispositivos Programables

Prof. Juan Manuel Madrigal Bravo

Simulación 1
Código:
tic
clc
clear all
db = 0;
aux1 = 1;
tamBloque = 2^10; %1,024
LInicial = tamBloque^2; %1,048,576
entrada_inicial = (randi([0 1],LInicial,1)-.5)*2;
bloque = zeros(1,tamBloque);
while (db <= 30)
SNR(aux1) = 10^(db/10);
NumErr = 0;
for j = 1:tamBloque
for i = tamBloque*(j-1)+1:tamBloque*j
bloque(mod(i-1,tamBloque)+1) = entrada_inicial(i);
end
matriz1{1,j} = bloque;
end
for j = 1:tamBloque
matriz2{1,j} =
real(fft(awgn(ifft(matriz1{1,j},tamBloque),SNR(aux1)),tamBloque));
end
%Deteccion
for j = 1:tamBloque
for i = 1:tamBloque
if matriz2{1,j}(i) > 0
matriz2{1,j}(i) = 1;
else
matriz2{1,j}(i) = -1;
end
end
end
for j = 1:tamBloque
NumErr = NumErr + numel(find(matriz1{1,j}~=matriz2{1,j}));
end
BERs(aux1) = NumErr/LInicial;
db = db + 1;
aux1 = aux1 + 1;
end
semilogx(SNR, BERs)
toc

Gráfica:
Simulación 2
Código:
Nt=1048576; %1048 576/4096
N=1024;
snr=0:5:50;
ber=zeros(1,length(snr));
btt=zeros(1,Nt*N);
for k=1:length(snr)
bt=(round(rand([1 Nt]))-0.5)*2;
for l=1:Nt
for m=1:N
btt((l-1)*N+m)=bt(l);
end
end
aux=0;
Ne=0;
for i=1:Nt/N*N
b_ifft=ifft(btt((1+(i-1)*N):N+(i-1)*N),N); %ifft
b_awgn=awgn(b_ifft,snr(k)); %agregamos ruido
b_fft=fft(b_awgn,N); %fft
for j=1:N/N
if sum(b_fft((j-1)*N+1:(j-1)*N+N))<0 %deteccion
aux=-1;
else
aux=1;
end
if bt((i-1)*N/N+j)==aux %numero de errores
Ne=Ne;
else
Ne=Ne+1;
end
end
end
ber(k)=Ne/Nt;
snr(k)
end
semilogy(snr,ber)

Gráfica:

También podría gustarte