ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:1.26MB ,
资源ID:13019115      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13019115.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验三 模拟数字转换.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验三 模拟数字转换.docx

1、实验三 模拟数字转换实验三 模拟-数字转换一、实验预习: 1.概述 2.Huffman编码 3.量化4.均匀PCM平按已量化值的递增次序映射。5.非均匀PCM二、实验内容(题目解答):1. 编码 实验代码:主函数:clc;p=0.2 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06;h,l=huffman(p);H=entropy(p);求熵函数:function h=entropy(p)if length(find(p10e-10, error(Not a prob. vector, components do not add up to 1)endh=sum(-

2、p.*log2(p);Huffman编码函数:function h,l=huffman(p); if length(find(p10e-10, error(Not a prob. vector, components do not add up to 1)endn=length(p);q=p;m=zeros(n-1,n);for i=1:n-1 q,l=sort(q); m(i,:)=l(1:n-i+1),zeros(1,i-1); q=q(1)+q(2),q(3:n),1;endfor i=1:n-1 c(i,:)=blanks(n*n);endc(n-1,n)=0;c(n-1,2*n)=1

3、;for i=2:n-1 c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)=1). -(n-2):n*(find(m(n-i+1,:)=1); c(n-i,n)=0; c(n-i,n+1:2*n-1)=c(n-i,1:n-1); c(n-i,2*n)=1; for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,. n*(find(m(n-i+1,:)=j+1)-1)+1:n*find(m(n-i+1,:)=j+1); endendfor i=1:n h(i,1:n)=c(1,n*(find(m(1,:)=i)-1)+1:find

4、(m(1,:)=i)*n); l1(i)=length(find(abs(h(i,:)=32);endl=sum(p.*l1);实验结果:Huffman编码结果:平均码长:信源的熵:2. 量化实验代码:主函数:echo on ;a=-20,-5,-4,-3,-2,-1,0,1,2,3,4,5,20;y,dist=mse_dist(normal,a,0.01,0,1);for i=1:length(a)-1 y(i)=centroid(normal,a(i),a(i+1),0.001,0,1); echo off ;end子函数:function dist=uq_mdpnt(funfcn,b,n

5、,delta,tol,p1,p2,p3) if (2*bdelta*(n-1) error(Too many levels for this range.); returnendargs=;for j=1:nargin-5 args=args,p,int2str(j);endargs=args,);a(1)=-b;a(n+1)=b;a(2)=-(n/2-1)*delta;y(1)=a(2)-delta/2;for i=3:n a(i)=a(i-1)+delta; y(i-1)=a(i)-delta/2;endy(n)=a(n)+delta;dist=0;for i=1:n newfun = x

6、_a2_fnct ; dist=dist+eval(quad(newfun,a(i),a(i+1),tol,funfcn, num2str(y(i), args);endfunction y,dist=uq_dist(funfcn,b,c,n,delta,s,tol,p1,p2,p3) if (c-bdelta*(n-2) error(Too many levels for this range.); returnendif (sc) error(The leftmost boundary too large.); returnendargs=;for j=1:nargin-7 args=ar

7、gs,p,int2str(j);endargs=args,);a(1)=b;for i=2:n a(i)=s+(i-2)*delta;enda(n+1)=c;y,dist=eval(mse_dist(funfcn,a,tol,args);实验结果:均方误差:dist = 0.0769量化值:y = -5.0168 -4.2168 -3.2605 -2.3158 -1.3832 -0.4599 0.4599 1.3832 2.3158 3.2605 4.2168 5.01683. 均匀PCM 实验代码:主函数:echo ont=0:0.01:10;a=sin(t);sqnr8,aquan8,co

8、de8=u_pcm(a,8);sqnr16,aquan16,code16=u_pcm(a,16);pause % Press a key to see the SQNR for N=8.sqnr8pause % Press a key to see the SQNR for N=16.sqnr16pause % Press a key to see the first five quantized values.plot(t,a,-,t,aquan8,-,t,aquan16,-,t,zeros(1,length(t);title(用8电平和16电平对一个正弦信号进行的均匀PCM); 子函数:f

9、unction sqnr,a_quan,code=u_pcm(a,n)amax=max(abs(a);a_quan=a/amax;b_quan=a_quan;d=2/n;q=d.*0:n-1;q=q-(n-1)/2)*d;for i=1:n a_quan(find(q(i)-d/2 = a_quan) & (a_quan = q(i)+d/2)=. q(i).*ones(1,length(find(q(i)-d/2 = a_quan) & (a_quan = q(i)+d/2); b_quan(find( a_quan=q(i) )=(i-1).*ones(1,length(find( a_q

10、uan=q(i) );enda_quan=a_quan*amax;nu=ceil(log2(n);code=zeros(length(a),nu);for i=1:length(a) for j=nu:-1:0 if ( fix(b_quan(i)/(2j) = 1) code(i,(nu-j) = 1; b_quan(i) = b_quan(i) - 2j; end endendsqnr=20*log10(norm(a)/norm(a-a_quan); 实验结果: 所得的SQNR是:sqnr8 = 18.9023 sqnr16 = 25.1272 4. 非均匀PCM 实验代码: 主函数:ec

11、ho ont=0:0.01:10;a=20*randn(1,20),randn(1,480);n=64;sqnr,aquan,code=u_pcm(a,64);pause % Press a key to see the SQNR .sqnrpause plot(a);pauseplot(aquan,-);sqnr1,aquan1,code1=mula_pcm(a,64,255);pause % Press a key to see the SQNR .sqnr1pause plot(aquan1,-);子函数:function sqnr,a_quan,code=mula_pcm(a,n,mu

12、)y,maximum=mulaw(a,mu);sqnr,y_q,code=u_pcm(y,n);a_quan=invmulaw(y_q,mu);a_quan=maximum*a_quan;sqnr=20*log10(norm(a)/norm(a-a_quan);function sqnr,a_quan,code=u_pcm(a,n)amax=max(abs(a);a_quan=a/amax;b_quan=a_quan;d=2/n;q=d.*0:n-1;q=q-(n-1)/2)*d;for i=1:n a_quan(find(q(i)-d/2 = a_quan) & (a_quan = q(i)

13、+d/2)=. q(i).*ones(1,length(find(q(i)-d/2 = a_quan) & (a_quan = q(i)+d/2); b_quan(find( a_quan=q(i) )=(i-1).*ones(1,length(find( a_quan=q(i) );enda_quan=a_quan*amax;nu=ceil(log2(n);code=zeros(length(a),nu);for i=1:length(a) for j=nu:-1:0 if ( fix(b_quan(i)/(2j) = 1) code(i,(nu-j) = 1; b_quan(i) = b_

14、quan(i) - 2j; end endendsqnr=20*log10(norm(a)/norm(a-a_quan);实验结果:sqnr = 19.7348sqnr1 = 24.1075三、实验分析与讨论1.信号量化的目的是什么? 用有限的离散值近似模拟原始信号的振幅,在接收端由这些有限的离散值恢复原始信号 。2.量化信号有哪些优缺点?缺点:无论抽样值大小如何,量化噪声的均方根值都是固定不变的。因此,当信号较小时,则信号量化噪声功率比也比较小,这样,对于弱信号时的信号量噪比就难以达到给定的要求。3.什么是A率压缩和率压缩?它们各自有什么特点? A压缩律是指符合下式的对数压缩规律: 律压缩特

15、性: 4. 在PCM系统中,信号量噪比是指什么,它和信号带宽有什么关系? 信号功率与量化噪声之比简称信号量噪声比。 当低通信号最高频率给定时,PCM系统的输出信号量噪比随系统的带宽B按指数规律增长。四、思考题1、实验1中Huffman码的效率是多少?Huffman码唯一吗?为什么?答:霍夫曼编码效率等于熵/平均码长,已知熵为3.0371,平均码长为3.1,所以霍夫曼编码效率为0.98。霍夫曼码不唯一,因为在进行概率相加时,可能会出现上一次的和与某一个概率一样,此时有向上和向下两种编码方式,因此造成霍夫曼码不唯一。2、.答:3、答:代码:%均匀PCM量化器n=input(请输入量化级数:);en

16、dtime = 2;%定义信号周期为2dt = 0.5; %定义抽样间隔为0.5t = 0:dt:endtime; %划分数组a = zeros(size(t);for tt=1:1/dt a(tt+0:endtime/2-1*(2/dt)=t(tt); %当0=t1时,x(t)=tendfor tt=1/dt+1:2/dt a(tt+0:endtime/2-1*(2/dt)=2-t(tt); %当1=t2时,x(t)=-t+2endamax=max(abs(a); %max求最大值,abs求绝对值a_quan=a/amax; %归一化b_quan=a_quan; %赋初值d=1/n; %求出

17、量化间隔q=d.*1:n;q=q-d/2; %求出量化电平%进行量化for i=1:n%定位第i个量化间隔码子 a_quan(find(q(i)-d/2=a_quan) & (a_quan=q(i)+d/2)=.?q(i).*ones(1,length(find(q(i)-d/2=a_quan)&(a_quan=q(i)+d/2); %赋值为相应的量化电平b_quan(find(a_quan=q(i) =(i-1) .* ones(1,length(find(a_quan=q(i);enda_quan=a_quan*amax;%恢复原值(量化后)%编码nu=ceil(log2(n); %cei

18、l返回大于或者等于指定表达式的最小整数code=zeros(length(a),nu); for i=1:length(a) for j=nu:-1:0 if (fix(b_quan(i)/(2j)=1) %fix向最靠近0取整 code(i,(nu-j)=1; b_quan(i)=b_quan(i)-2j; end endendsqnr=20*log10(norm(a)/norm(a-a_quan); %求量化信噪比disp(系统的量化信噪比:) disp(sqnr)disp(系统的量化误差:)disp(a - a_quan)disp(系统的量化编码结果:)disp(code) plot(t,a,r-)hold on;plot(t,a_quan,b-)8电平的结果截图:16电平的结果截图:五、实验心得此次实验内容为模数转换,主要为将模拟信号转换成数字信号进行抽样量化编码等过程,通过本次实验,我了解了哈弗曼编码的原理及过程,以前学过哈弗曼编码理论原理,这次通过matlab仿真又加深了印象,还有计算编码效率,对比出来霍夫曼编码方式是最优的。然后是量化,也就是有损数据压缩,抽样信号必须经过量化才能转化成数字信号。然后分别使用了均匀PCM和非均匀PCM的原理,对信号进行变换

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1