matlab费诺编码程可实现.doc

matlab费诺编码程可实现.doc

ID:55631795

大小:15.00 KB

页数:3页

时间:2020-05-21

matlab费诺编码程可实现.doc_第1页
matlab费诺编码程可实现.doc_第2页
matlab费诺编码程可实现.doc_第3页
资源描述:

《matlab费诺编码程可实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、函数f1存放于f1.mfunctionx=f1(i,j,p,r)globalx;x=char(x);if(j<=i)return;elseq=0;fort=i:j%对于区间[i,j]自上而下求累加概率值q=p(t)+q;y(t)=q;endfort=i:j%把所有自上而下的累加概率值与该区间总概率值减该累加概率值之差取绝对值存在一数组v(t)=abs(y(t)-(q-y(t)));endfort=i:jif(v(t)==min(v))%求该数组中最小的一个值来确定分界点位置fork=i:t%赋值码字x(k,r)='0';endfork=

2、(t+1):jx(k,r)='1';endd=t;f1(i,d,p,r+1);%递归调用及相互调用f2(d+1,j,p,r+1);elseendendendreturn;函数f2存放于f2.mfunctionx=f2(i,j,p,r)globalx;x=char(x);if(j<=i)return;elseq=0;fort=i:j%对于区间[i,j]自上而下求累加概率值q=p(t)+q;y(t-i+1)=q;endfort=1:j-(i-1)%把所有自上而下的累加概率值与该区间总概率值减该累加概率值之差取绝对值存在一数组v(t)=abs

3、(y(t)-(q-y(t)));endfort=1:j-(i-1)if(v(t)==min(v))%求该数组中最小的一个值来确定分界点位置d=t+i-1;fork=i:d%赋值码字x(k,r)='0';endfork=(d+1):jx(k,r)='1';endf2(d+1,j,p,r+1);%递归调用及相互调用f1(i,d,p,r+1);elseendendendreturn;主函数clc;clearall;fprintf('请输入信源数组:');p=input('P=');%输入信源数组s=sum(p(1,:));if(s~=1)er

4、ror('信源符号概率和不等1')end[M,N]=size(p);fori=1:N-1%按概率分布大小对信源排序forj=i+1:Nifp(i)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。