AMI编码主程序.docx
- 文档编号:12188224
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:12
- 大小:314.17KB
AMI编码主程序.docx
《AMI编码主程序.docx》由会员分享,可在线阅读,更多相关《AMI编码主程序.docx(12页珍藏版)》请在冰豆网上搜索。
AMI编码主程序
AMI编码主程序:
functiony=AMI(x,samp)
last_one=-1;
fori=1:
length(x)
ifx(i)==1
forj=1:
samp/2
y((2*i-2)*samp/2+j)=-last_one;
y((2*i-1)*samp/2+j)=0;
end
last_one=-last_one;
else
forj=1:
samp
y((i-1)*samp+j)=0;
end
end
end
y=[y,x(i)];
曼彻斯特编码主程序:
#include
main()
{
inti,j;
chara[10],b[20];
cout<<"首先进行曼彻斯特编码:
"< cout<<"请输入二进制数据流: "< for(j=0;j<10;j++) { cin>>a[j]; } for(i=0;i<10;i++) { if(a[i]=='0'){b[2*i]='0';b[2*i+1]='1';} if(a[i]! ='0'){b[2*i]='1';b[2*i+1]='0';} } cout<<"曼彻斯特码编码结果为: "< for(i=0;i<20;i++) { cout< } cout< //下面进行曼彻斯特译码 charc[20],d[10]; cout<<"下面进行曼彻斯特译码: "< cout<<"请输入偶数个二进制数据流: "< for(i=0;i<20;i++) { cin>>c[i]; } for(i=0;i<10;i++) { if((c[2*i]=='0')&&(c[2*i+1]=='1'))d[i]='0'; elsed[i]='1'; } for(i=0;i<10;i++) { cout< } cout< } 运行结果: 费诺编码主程序: functionc=fano(p) %p=[0.250.250.200.150.100.05] %c=fano(p) n=size(p,2);%已经编码完成 ifn==1 c=cell(1,1); c{1}=''; return end [p,index]=sort(p);%按概率排序 p=fliplr(p); total=sum(p);%总概率 acc=0;%累积概率 flag=0;%是否到达尾部的标志 fori=1: n-1 newacc=acc+p(i); ifabs(total-2*newacc)>=abs(total-2*acc) flag=1; break; end acc=newacc; end if~flag i=n; end split=i;%从分界点对两边的码递归做fano c1=fano(p(1: split-1)); c2=fano(p(split: n)); c=cell(1,n);%添加前缀0,1 fori=1: split-1 c{i}=strcat('0',c1{i}); end fori=split: n c{i}=strcat('1',c2{i-split+1}); end%将顺序调整回去 c=fliplr(c); c(index)=c; 窗函数主程序框图如下所示: 窗函数法设计FIR数字滤波器主程序: b=1; closeall; i=0; while(b); temp=menu('选择窗函数长度N','N=10','N=15','N=20','N=25','N=30','N=33','N=35','N=40','N=45','N=50','N=55','N=60','N=64'); menu1=[10,15,20,25,30,33,35,40,45,50,55,60,64]; N=menu1(temp); temp=menu('选择逼近理想低通滤波器截止频率Wc','Wc=pi/4','Wc=pi/2','Wc=3*pi/4','Wc=pi','Wc=0.5','Wc=1.0','Wc=1.5','Wc=2.0','Wc=2.5','Wc=3.0'); menu2=[pi/4,pi/2,3*pi/4,pi,0.5,1,1.5,2,2.5,3]; a=(N-1)/2; w=menu2(temp); n=[0: (N-1)]; hd=sin(w*(n-a))/((n-a)*pi);%得到理想低通滤波器 k=menu('请选择窗口类型: ','boxcar','hamming','hanning','blackman'); ifk==1 B=boxcar(N); string=['Boxcar','N=',num2str(N)]; elseifk==2 B=hamming(N); string=['Hamming','N=',num2str(N)]; elseifk==3 B=hanning(N); string=['Hanning','N=',num2str(N)]; elseifk==4 B=blackman(N); string=['Blackman','N=',num2str(N)]; end end end end h=hd.*(B)';%得到FIR数字滤波器 [H,m]=freqz(h,[1],1024,'whole');%求其频率响应 mag=abs(H);%得到幅值 db=20*log10((mag+eps)/max(mag)); pha=angle(H);%得到相位 i=i+1; figure(i) subplot(2,2,1); n=0: N-1; stem(n,h,'.'); axis([0,N-1,-0.1,0.3]); holdon; n=0: N-1; x=zeros(N); plot(n,x,'-'); xlabel('n'); ylabel('h(n)'); title('实际低通滤波器的h(n)'); text((0.3*N),0.27,string); holdoff; subplot(2,2,2); plot(m/pi,db); axis([0,1,-100,0]); xlabel('w/pi'); ylabel('dB'); title('衰减特性(dB)'); grid; subplot(2,2,3); plot(m,pha); holdon; n=0: 7; x=zeros(8); plot(n,x,'-'); title('相频特性'); xlabel('频率(rad)'); ylabel('相位(rad)'); axis([0,3.15,-4,4]); subplot(2,2,4); plot(m,mag); title('频率特性'); xlabel('频率W(rad)'); ylabel('幅值'); axis([0,3.15,0,0.5]); text(0.9,1.2,string); b=menu('DoYouwantToContinue? ','Yes','No'); ifb==2 b=0; end end temp=menu('CloseAllFigure? ','Yes','No'); iftemp==1 closeall End 运行结果: 矩形窗 汉宁窗: 海明窗: 布莱克曼窗:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AMI 编码 主程序
![提示](https://static.bdocx.com/images/bang_tan.gif)