📄 juanjibiayima.m
字号:
%*************************
%卷积编译码的matlab实现
%卷积编译码(2,1,2);
%生成多项式(5,7);
%**********************
clear
clc
M=1000;%定义卷积编码个数
n=2;
k=1;
N=2;
gen=[5,7];
msg=randint(M,1,2);%随机生成N个未编码比特数据
fid=fopen('c:/Unencode_Data.txt','w');
for i=1:M
fwrite(fid,13);
fwrite(fid,10);
fwrite(fid,msg(i)+48);
end
fclose(fid);%将未编码比特数据写入文件Unencode_Data.txt
tran_func=poly2trellis([3],gen);%生成转移函数矩阵
Encode_Data=convenc(msg,tran_func);
fid=fopen('c:/Encode_Data.txt','w');
for i=1:(n*M/k)
fwrite(fid,13);
fwrite(fid,10);
fwrite(fid,Encode_Data(i)+48);
end
fclose(fid);%将卷积编码后的比特数据写入文件Encode_Data.txt
BPSK_Mod_Data=(1-2*Encode_Data);%BPSK调制
fid=fopen('c:/BPSK_Mod_Data.txt','w');
for i=1:(n*M/k)
fwrite(fid,13);
fwrite(fid,10);
if BPSK_Mod_Data(i)<0
fwrite(fid,45);
end
fwrite(fid,BPSK_Mod_Data(i)+48);
end
fclose(fid);%将调制后的比特数据写入文件BPSK_Mod_Data.txt
Decode_Data=vitdec(BPSK_Mod_Data,tran_func,32,'trunc','unquant');
fid=fopen('c:/Decode_Data.txt','w');
for i=1:M
fwrite(fid,13);
fwrite(fid,10);
fwrite(fid,Decode_Data(i)+48);
end
fclose(fid);
error=sum(abs(Decode_Data-msg),1);
subplot(211)
stairs(msg);
subplot(212)
stairs(Decode_Data);
% plot(Decode_Data-msg);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -