| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:基于MATLAB信道编码教学实验软件的设计与实现
只看楼主 加入收藏
绝望的论文
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-8
收藏
 问题点数:0 回复次数:0 
基于MATLAB信道编码教学实验软件的设计与实现
基于MATLAB的信道编码教学实验软件设计与实现
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

卷积码程序:
function output= cnv_ encd( g, k, input)
%g 为卷积码的生成矩阵, n 行, k* L 列。input 为输入的码元序列
if rem( length( input) , k) > 0
   input= [ input, zeros( size( 1: k-rem( length( input) , k)  
) ) ] ;
end
%确保输入序列input 是k 的倍数。
z= length( input)/k;
if rem( size( g, 2) , k) > 0
   error( ‘ Error, g is not of the right size. ’)
end
%确保g 的大小符合要求
li= size( g, 2)/k;    n= size( g, 1) ;
u= [ zeros( size( 1: ( li- 1) * k) ) , input, zeros( size( 1:  
( li- 1) *k) ) ] ;
%在输入序列的首尾补充合适的零
u1= u( li* k: - 1: 1) ;
for i= 1: z+ li- 2
   u1= [ u1, u( ( i+ li) * k: -1: i* k+ 1) ] ;
end
uu= reshape( u1, li* k, z+ li-1) ;
%将新的输入序列u 组合成编码器在不同时钟周期的内容( 即uu 矩阵的
列)
output= reshape( rem( g* uu, 2) , 1, n* ( z+ li- 1) ) ;
%通过模2 和运算求出编码矩阵, 并转化为序列的形式输出( output)

循环码程序:
gen=[1 0 1 1];%校验多项式
poly=[0 0 1 1 1 1 1 1 0 0 1 1 1];%原始信息
plen=length(poly);%返回原始信号的最大长度
glen=length(gen);%返回校验多项式的最大长度
cur=poly(1:glen-1);
for p=glen:plen
    cur(glen)=poly(p);
    if cur(1)cur=xor(cur(2:glen),gen(2:glen));
    else cur=cur(2:glen);end
end
disp('校验码为'),disp(cur)

设计如上界面,程序如下,代码怎么改能实现上面界面的功能?
搜索更多相关主题的帖子: function 
2013-05-08 16:40
快速回复:基于MATLAB信道编码教学实验软件的设计与实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026464 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved