当前位置:首页 > 通信原理软件AD转换课程设计Maab
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0
过matlab完成了D/A转换,发现恢复出的波形与原始单频正弦模拟信号大体一致,也存在一些误差。在实验中通过变换输入信号的采样频率,以及内插点数的多少还发现:采样频率越大,恢复出来的信号越接近原始信号;插入的点数越多恢复出来的信号越接近于原始信号,与 理论上完全相符。证明本次实验比较成功的实现了D/A转换的仿真。 七、实验总结:
刚拿到实验题目的时候,就开始通过《通信原理》对它进行复习,逐渐明白了抽样量化编码的原理。但是要让它在matlab上实现还是一个问题,于是又开始读《MATLAB及在电子信息课程中的应用》。在对pcm编码以及用pcm编码恢复序列的时候多次利用查找matlab函数大全,获得一些可以直接利用的函数,为设计提供了很多便捷,比如Lloyd算法优化标量算法的函数lloyds( ) 和量化输出值的函数quantiz( ),通过一些例题演示可以大致了解他们的用法以及作用,还有比如矩阵
左右翻转函数fliplr(),和二进制转十进制函数bi2de()。通过对大量的资料的查阅可以发现matlab应用的灵活性,更重要的一点是:我们应该把重点放在解题思想和程序设计的方法问题上,而对于很多函数的应用问题可以通过查表等方法简单实现。
总之,通过这次D/A转换的仿真实验,对MATLAB的操作更见熟练了,巩固了许多基础知识,也让我在解决问题的过程中获得了很多乐趣,对许多理论上的东西有了更深的认识。 八、实验代码
A=5; F=2500;P=0; D=20;%设定原始模拟信号的参数 Fs=20*F; t1=0:1/Fs:2/F; xa=A*sin(2*pi*F*t1); figure(1)
plot(t1,xa,'k'); %显示输入信号波形以及采样点 hold on;
plot(t1,xa,'b.'); axis([0,2/F,-5,5]);
title('采样频率为20F的输入信号');
xlabel('x(t)'); ylabel('t') m=max(xa);
x1=xa/m; %归一化,以便还原 %量化
[partition ,codebook]=lloyds(x1,D); %Lloyd(劳埃德)算法优化量化算法函数 分界点矢量(参数),码本
[indx ,quant]=quantiz(x1 ,partition ,codebook);%量化输出值函数 量化索引 %根据partition来对x1输入信号产生量化索引(量化索引的长度和x1的长度相同) %码本是长度为N的输出集 figure(2)
stem(t1,quant,'g.');%显示量化后波形 axis([0,2/F,-2,2]); title('量化后的波形'); xlabel('x(t)'); ylabel('t');
共分享92篇相关文档