中国地质大学基于MATLAB通信仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学(武汉)
通信原理matlab仿真报告
姓名: 张彪_
班号: 075112 _
学号:20111002253
院系:_机电学院
专业:_通信工程
指导教师:_赵娟老师
联系方式:
预留指导时间:
1、选题为3.
周期信号m(t),周期为2,在区间[0,2]内定义为:m(t)=t , 1=<t=<2;m(t)=2-t , 1=<t<=2。
(1)以时间间隔为0.1 的步长对此信号进行8 电平的均匀量化,画出量化输出波形;(2)求各量化点的量化误差,画出量化误差波形;
(3)通过计算误差信号的功率,求该系统的SNRq(以dB 计)。
2、解题原理与思路
模拟信号的取值范围:a~b,量化电平数=M则均匀量化时的量化间隔为:(b-a)/M且量化区间的端点mi=a+i v i=0,1,…,M 若量化输出电平qi取量化间隔的中点,则qi=[mi+m (i-1)]/2 i=1,2…,M .
我的解题思路很简单,大致分为三部分,第一部分构造出题中所给的分段函数;第二部分自定义均匀量化函数,并一并写入计算信噪比等功能;第三部分将第一部分带入自定义函数并求出量化误差波形,最后输出波形,完成题目要求。
思路框图
3、实验代码及注释:
(1)分段函数的构造并代入自定义函数及求量化误差。
clear all;
x1=0:0.1:1;
y1=x1;
x2=1:0.1:2
y2=-x2+2;
y3(1:11)=y1;
y3(11:21)=y2; %构造出分段函数
x=0:0.1:2;
plot(x,y3); %输出分段函数
w=juny(y3,1,8); %代入自定义函数求值
plot(x,y3,x,w); %输出原波形与量化波形
title('原波形与量化波形')
figure(2)
z=abs(y3-w); %求量化误差
plot(x,z) %输出量化误差波形
title('量化误差波形')
(2)自定义函数:
量化函数的实现
function h=juny(f,v,L)
%f是量化的信号序列
%v是量化电平最大值
%L是量化电平数
n=length(f);
t=2*v/L; %纵坐标取间隔
p=zeros(1,L+1); %确定范围及初始化
for i=1:L+1,
p(i)=-v+(i-1)*t; %确定原信号抽样值
end
for i=1:n %求量化值
if f(i)>=v %在此范围内的量化取值(大于量化电平最大值时)h(i)=v;
end
if f(i)<=-v %在此范围内的量化取值(小于量化电平最小值时)h(i)=-v;
end
flag=0; %设立标志
for j=2:L/2+1 %对量化电平数即纵坐标取半
if flag==0
if f(i)<p(j) %原信号与抽样信号循环比较
h(i)=(p(j-1)+p(j))/2; %确定量化电平
flag=1;
end
end
end
for j=L/2+2:L+1 %另一部分的量化(同上)
if flag==0
if f(i)<p(j)
h(i)=(p(j-1)+p(j))/2;
flag=1;
end
end
end
end
nq=v^2/(3*L^2); %计算量化噪声功率
nq %显示量化噪声功率
Am=2;
snr=(3/2)*(Am/v)^2*L^2; %计算信噪比
snr %显示信噪比
snr=10*log(snr)/log(10); %将信噪比改为dB表示snr
4、运行结果:
运算结果:nq =0.0052 snr =384 snr =25.8433dB
5、分析:
在实验过程中出现许多问题,比如分段函数的构造写了一下午,本来是很简单,可以直接是一个三角函数,调用即可,不过如果是其他形式的分段函数就不能了,所以过程中用if 语句等等去做,不过都没做好,最后想起来用的这种方法构造的。
而函数构造参考了许多资料和并同学讨论才整理出来,可能不太易懂,(我舍友看很久没看懂),还遇到遇到许多其他细节问题,比如一开始步长写成0.01,改成0.1却有问题,就是因为没加clear all清除原来运行数据造成的,但经过检查最终解决了。
量化函数当然也可以用Round函数量化和floor 函数量化,我看了一下有同学就是用的这函数。
6、总结体会:
在本课程实验中,平时上机遇到许多问题,当然也收获许多。
比如第二次上机的题中遇到了问题,卷积运算有问题,我没有采用书上的程序,而是运用了其他方法,不过我在编程过程中忘记了补零,所以结果有些出入,在验收过程中自己也很紧张,老师很和蔼,只是自己在听老师问题时虽然懂不过就是不知道怎么回答,语言表达不是太好,这方面依然需要锻炼,当然所有的上机题目程序不可能是自己独立编写,这次也是,自己查了很多资料,参考许多东西,然后独立思考,动手操作改进编写,然后变成自己的东西,学会其中的运作思想,我想这就是学习的很重要的吧,当然,平时也要细心,可能问题就是一点,需要耐心的去排除错误,也要不能畏难,遇到困难也要努力解决,吃透知识然后向老师请教,验收。
不能因为老师说不验收也给过就产生松懈,坚持做下去,一定会收获很多,我想这是我体会最深的一点,老师很和蔼,很有耐心的指导,也让自己更好的学习理解运用所学的知识,当然自己还有许多做的不够好的地方,我会继续努力学习解决问题。
谢谢老师的指导。