差错控制编码解决加性噪声 第10页
附录一 .m程序
程序一. 无噪声,无编码
infor=randsrc(1,100,[0,1]); %产生信息infor(序列)
for n=1:100 %将infor改为波形singl
for m=1:10
i=(n-1)*10+m;
singl(i)=infor(n);
end
end需要全部代码的请联系QQ3249114,转帖请注明出处www.751com.cn
subplot(2,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形
axis([0 1 -1 2]);
for n=1:100 %对singl进行采样,判决(门限为0.5)
for m=1:10
i=(n-1)*10+m;
result(n)=singl(i);
if result(n)>0.5
result(n)=1;
else result(n)=0
end
end
end
for n=1:100%将判决结果result(序列)改为波形out
for m=1:10
i=(n-1)*10+m;
out(i)=result(n);
end
end
subplot(2,1,2);plot(0:0.01:9.99,out),title('输出信号'),xlabel('时间') %画出的out波形
axis([0 1 -1 2]);
error=infor-result; %计算误码率
error=abs(error);
errorrate=sum(error)/100
程序二. 无噪声,有编码
infor=randsrc(1,100,[0,1]); %产生信息infor(序列)
for n=1:100 %将infor改为波形singl
for m=1:10
i=(n-1)*10+m;
singl(i)=infor(n);
end
end
subplot(3,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形
axis([0 1 -1 2]);
x=encode(infor,7,4,'hamming');x=x' %对infor进行“7,4汉明”编码
for n=1:175 %将编码结果x(序列)改为波形codesingl
for m=1:10
i=(n-1)*10+m;
codesingl(i)=x(n);
end
end
subplot(3,1,2);plot(0:0.01:17.49,codesingl),title('汉明码波形') %画出codesingl的波形
for n=1:175 %对codesingl进行采样,判决(门限为0.5)
for m=1:10
i=(n-1)*10+m;
result(n)=codesingl(i);
if result(n)>0.5
result(n)=1;
else result(n)=0
end
end
end
y=decode(result,7,4,'hamming');y=y' %将判决结果result(序列)进行解码
for n=1:100 %将解码结果y(序列)改为波形out
for m=1:10
i=(n-1)*10+m;
out(i)=y(n);
end
end
subplot(3,1,3);plot(0:0.01:9.99,out),title('输出信号'),xlabel('时间') %画出的out波形
axis([0 1 -1 2]);
error=infor-y; %计算误码率
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>