北邮通原软件实验报告.docx
- 文档编号:23480299
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:33
- 大小:706.96KB
北邮通原软件实验报告.docx
《北邮通原软件实验报告.docx》由会员分享,可在线阅读,更多相关《北邮通原软件实验报告.docx(33页珍藏版)》请在冰豆网上搜索。
北邮通原软件实验报告
信息与通信工程学院
通信原理软件实验报告
班级:
姓名:
学号:
序号:
日期:
实验一调幅信号波形频谱仿真
一、实验题目
假设基带信号为
,载波频率为
,请仿真出AM、DSB-SC、SSB信号,观察已调信号的波形及频谱。
二、基本原理
1、AM调制原理
对于单音频信号
进行AM调制的结果为
其中调幅系数
,要求
以免过调引起包络失真。
由
和
分别表示AM信号波形包络最大值和最小值,则AM信号的调幅系数为
2、DSB-SC调制原理
DSB信号的时域表达式为
频域表达式为
3、SSB调制原理
SSB信号只发送单边带,比DSB节省一半带宽,其表达式为:
三、仿真思路
定义时域采样率、截断时间和采样点数,可得到载波和调制信号,容易根据调制原理写出各调制信号表达式,由此可以画出时域波形图。
另外,对时域信号进行FFT变换,此处使用预先定义的t2f.m函数替代,进行傅立叶变换,得到频谱,在频域作图即可。
四、程序框图
五、仿真源代码
(1)%AM信号的产生
fs=800;%KHz
T=200;%ms
N=T*fs;
dt=1/fs;
t=[-T/2:
dt:
T/2-dt];
df=1/T;
f=[-fs/2:
df:
fs/2-df];
fm=1;%kHz
fc=20;%kHz
m=sin(2*pi*fm*t)+2*cos(1*fm*pi*t);
s=(1+0.3*m).*cos(2*pi*fc*t);%AMsignal
S=t2f(s,fs);
figure
(1)
plot(f,abs(S))%观察已调信号的幅度频谱
axis([10,30,0,max(abs(S))])
figure
(2)
plot(t,s)
axis([0,3.5,-max(abs(s)),max(abs(s))])
(2)DSB-SC信号
fs=800;%KHz
T=200;%ms
N=T*fs;
dt=1/fs;
t=[-T/2:
dt:
T/2-dt];
df=1/T;
f=[-fs/2:
df:
fs/2-df];
fm=1;%kHz
fc=20;%kHz
m=sin(2*pi*fm*t)+2*cos(1*fm*pi*t);
s=m.*cos(2*pi*fc*t);%dsb-scsignal
S=t2f(s,fs);
figure
(1)
plot(f,abs(S))%观察已调信号的幅度频谱
axis([10,30,0,max(abs(S))])
figure
(2)
plot(t,s)
axis([0,3.5,-max(abs(s)),max(abs(s))])
(3)SSB信号
fs=800;%KHz
T=200;%ms
N=T*fs;
dt=1/fs;
t=[-T/2:
dt:
T/2-dt];
df=1/T;
f=[-fs/2:
df:
fs/2-df];
fm=1;%kHz
fc=20;%kHz
m=sin(2*pi*fm*t)+2*cos(1*fm*pi*t);
M=t2f(m,fs);
MH=-j*sign(f).*M;%在频域进行希尔伯特变换
mh=real(f2t(MH,fs));%希尔伯特变换后的信号
s=m.*cos(2*pi*fc*t)-mh.*sin(2*pi*fc*t);%SSBsignal
S=t2f(s,fs);
figure
(1)
plot(f,abs(S))%观察已调信号的幅度频谱
axis([10,30,0,max(abs(S)+20)])
figure
(2)
plot(t,s)
axis([0,3.5,-max(s)-1,max(s)+1])
附注t2f.m函数代码,此函数在后续实验中也有使用:
%傅里叶正变换
functionS=t2f(s,fs)%s代表输入信号,S代表s的频谱,fs是采样频率
N=length(s);%样点总数
T=1/fs*N;%观察时间
f=[-N/2:
(N/2-1)]/T;%频率采样点
tmp1=fft(s)/fs;
tmp2=N*ifft(s)/fs;
S(1:
N/2)=tmp2(N/2+1:
-1:
2);
S(N/2+1:
N)=tmp1(1:
N/2);
S=S.*exp(j*pi*f*T);
End
六、实验结果及分析
(1)图一AM信号时域波形图
(2)图二AM信号频谱
(3)图三DSC-SB时域图
(4)图四DSC-SB频谱
(5)图五上边带SSB时域图
(6)图六SSB上边带频谱
图一和图二为AM调制的波形和频谱图,从仿真的结果看出,AM调制系数定义为
时信号包络清晰,包络已显式绘出,可利用包络检波恢复原信号,接收设备较为简单。
其频谱含有离散大载波,从理论分析可知,此载波占用了较多发送功率,使得发送设备功耗较大。
图二和图三为双边带抑制载波调幅信号波形和频谱,其时域波形有相位翻转,频谱不含离散大载波。
必须使用相干解调,可用多种方法提取载波,常用方式为在发端加入离散导频分量,在收端利用调谐于载频
的窄带滤波器滤出导频分量。
图五和图六为SSB信号波形和频谱仿真图。
SSB信号比DSB信号节省一半带宽,适合于语声信号的调制,因为其没有直流分量,也没有很低频的成分。
解调时可采用相干解调或者在发端加入离散大载波进行包络检波。
分析讨论:
从几种波形级频谱观察,频谱都正确AM既有载频又有调制信号频率,DSC-SB没有载频,SSB只有边带频谱。
时域图体现出不同的特点,AM有包络,DSC-SB信号有相位翻转与理论基本相符。
实验二调频信号波形频谱仿真
一、实验题目
假设基带信号
,载波频率为40kHz,仿真产生FM信号,观察波形与频谱,并与卡松公式做对照。
FM的频率偏移常数为5kHz/V。
二、基本原理
单音频信号
经FM调制后的表达式为
其中
调制指数
。
由卡松公式可知FM信号的带宽为
三、仿真思路
同实验一中相仿,定义必要的仿真参数,在此基础上可得到载波信号和调制信号。
根据
可得到频偏,由此可写出最终的FM信号的表达式进行仿真计算。
对FM信号进行傅里叶变换可得频谱特性,变换依旧使用实验一中给出的t2f.m函数。
四、程序框图
五、仿真源代码
fs=800;%kHz
T=16;%ms
N=T*fs;
dt=1/fs;
t=[-T/2:
dt:
T/2-dt];
df=1/T;
f=[-fs/2:
df:
fs/2-df];
fm=1;%kHz
Kf=5;%kHz/V
fc=40;%kHz
m=sin(2*pi*fm*t)+2*cos(1*pi*fm*t)+4*sin(0.5*pi*fm*t+pi/3);
phi=2*pi*Kf*cumsum(m)*dt;
s=cos(2*pi*fc*t+phi);
S=t2f(s,fs);
figure
(1);
plot(f,abs(S).^2)%观察已调信号的功率谱
axis([0,80,0,max(abs(S).^2)+0.2])
figure
(2)
plot(t,s)%观察已调信号的波形
axis([0,4,-max(s)-0.2,max(s)+0.2])
六、实验结果及分析
(1)
(2)
如图2.3所示为仿真FM信号频谱图,由图可以读出并计算带宽为
。
由图2.1读出
,频偏为
。
利用卡松公示进行理论计算为:
仿真与理论计算值基本相符。
验证了卡松公式的有效性。
实验三单双极性归零码波形及功率谱仿真
一、实验题目
通过仿真测量占空比为25%、50%、75%以及100%的单双极性归零码波形及其功率谱。
二、基本原理
1、单极性归零码
当发
码时,发出正电流,但持续时间短于一个码元的时间宽度,即发出一个窄脉冲;当发
码时,仍然不发送电流。
单极性归零码在符号等概出现且互不相关的情况下,功率谱主瓣宽度为
,其频谱含有连续谱、直流分量、离散始终分量及其奇次谐波分量。
2、双极性归零码
其中
码发正的窄脉冲,
码发负的窄脉冲,两个码元的时间间隔可以大于每一个窄脉冲的宽度,取样时间是对准脉冲的中心。
双极性归零码在符号等概且不相关的情况下,功率谱仅含有连续谱,其主瓣宽度为
。
3、各种码的比较
不归零码(NoneReturnZeroCode)在传输中难以确定一位的结束和另一位的开始,需要用某种方法使发送器和接收器之间进行定时或同步。
归零码(NoneReturnZeroCode)的脉冲较窄,根据脉冲宽度与传输频带宽度成反比的关系,因而归零码在信道上占用的频带较宽。
单极性码会积累直流分量;双极性码的直流分量大大减少,这对数据传输是很有利的。
三、仿真思路
1、产生RZ码
采用归零矩形脉冲波形的数字信号,可以用以下方法产生信号矢量
。
设
是码元矢量,N是总取样点数,M是总码元数,L是每个码元内的点数,
是要求的占空比,
是仿真系统的时域采样间隔,则RZ信号的产生方法是
2、仿真功率谱密度
任意信号
的功率谱的定义是
其中
是
截短后的傅氏变换,
是
的能量谱,
是
在截短时间内的功率谱。
对于仿真系统,若
是时域取样值矢量,X是对应的傅氏变换,那么
的功率谱便为
。
针对随机过程
,其平均功率谱密度定义为各样本功率谱密度的数学期望
3、作出仿真图
由于需要作出的图形较多,且图形间需要对比,故采用了两种视图进行绘图,一是各个占空比的RZ码波形图和其功率谱进行横向对比,二是分别作出各占空比下的单双极性归零码波形,以便于观察。
另外,各个占空比的RZ码波形和其频谱变换后的结果使用多行的矩阵进行存储,方便最后作图,因而代码显得有些冗余。
可改用定义函数,输入参数的方式给出不同占空比下的计算与绘图。
四、程序框图
流程图:
单极性归零码
流程图:
双极性归零码
五、仿真源代码
L=64;%每个码元间隔内的采样点
N=1024;%总采样点
M=N/L;%总码元数
Rs=10;%码元速率kbit/s
Ts=1/Rs;%码元间隔
fs=L/Ts;%采样速率(时间分辨率)
T=N/fs;%截短时间
Bs=fs/2;%系统带宽
df=1/T;%频率分辨率
t=[-(T/2):
1/fs:
(T/2-1/fs)];%时域采样点
f=[-Bs:
df:
Bs-df];%频域采样点
a=(randn(1,M)>0);%产生随机码
tmp=zeros(L,M);%产生L*M的全零矩阵
tmp1=zeros(L,M);%产生L*M的全零矩阵
duty=[0.25,0.5,0.75,1];
name=['25%','50%','75%','100%'];
%-----------------------------------------单极性----------------------------------------
count=1;
fori=1:
4
L1=L.*duty(i);
tmp([1:
L1],:
)=ones(L1,1)*a;
s=tmp(:
)';%单极性
figure(i)
%单极性波形
subplot(3,1,1);plot(t,s);gridon;axis([-0.8,0.8,-1.5,1.5]);
title(strcat('占空比',name([count:
count+2]),'的单极性归零码'));xlabel('t');ylabel('s(t)')
%单极性频谱
EP1=zeros(1,N);%创建一行N列0矩阵
forloop=1:
2000;%产生数据数列
b=(randn(1,M)>0);%产生随机码
tmp=zeros(L,M);%产生L*M的全零矩阵
L1=L.*duty(i);
tmp([1:
L1],:
)=ones(L1,1)*b;
s=tmp(:
)';
S=t2f(s,fs);
P=abs(S).^2/T;
EP1=EP1*(1-1/loop)+P/loop;%随机过程的功率谱是各个样本的功率谱的数学期望
end
EP11=10*log10(EP1);
subplot(3,1,2),plot(f,EP1),gridon,axis([-50,50,0,max(EP1)]),
title(strcat('占空比',name([count:
count+2]),'单极性归零码功率谱')),xlabel('f(kHz)'),ylabel('P(f)(W/kHz)')
subplot(3,1,3),plot(f,EP11),gridon,axis([-100,100,-80,0]),
title(strcat('占空比',name([count:
count+2]),'单极性归零码功率谱')),xlabel('f(kHz)'),ylabel('P(f)(db)')
count=count+3;
end
%----------------------------------双极性-------------------------------------------
count=1;
fori=1:
4
L1=L.*duty(i);
a1=2*a-1;
tmp1([1:
L1],:
)=ones(L1,1)*a1;
s1=tmp1(:
)';%双极性
figure(i+4)
%双极性波形
subplot(3,1,1);plot(t,s1);gridon;axis([-0.8,0.8,-1.5,1.5]);
title(strcat('占空比',name([count:
count+2]),'的双极性归零码'));xlabel('t');ylabel('s1(t)')
%双极性频谱
EP2=zeros(1,N);%创建一行N列0矩阵
forloop=1:
2000;%产生数据数列
b1=(randn(1,M)>0);%产生随机码
b1=2*b1-1;
tmp1=zeros(L,M);%产生L*M的全零矩阵
tmp([1:
L1],:
)=ones(L1,1)*b1;
s1=tmp(:
)';
S1=t2f(s1,fs);
P1=abs(S1).^2/T;
EP2=EP2*(1-1/loop)+P1/loop;
end
EP22=10*log10(EP2);
subplot(3,1,2),plot(f,EP2),gridon,axis([-50,50,0,max(EP2)]),
title(strcat('占空比',name([count:
count+2]),'双极性归零码功率谱')),xlabel('f(kHz)'),ylabel('P1(f)(W/kHz)')
subplot(3,1,3),plot(f,EP22),gridon,axis([-100,100,-80,0]),
title(strcat('占空比',name([count:
count+2]),'双极性归零码功率谱')),xlabel('f(kHz)'),ylabel('P1(f)(db)')
count=count+3;
end
六、实验结果及分析
(1)占空比为25%的单极性归零码
(2)占空比为50%的单极性归零码
(3)占空比为75%的单极性归零码
(4)占空比为100%的单极性归零码
(5)占空比为25%的双极性归零码
(6)占空比为50%的双极性归零码
(7)占空比为75%的双极性归零码
(8)占空比为100%的双极性归零码
实验结果分析:
单极性归零码和双极性归零码的图形由仿真得到,其功率谱有一定特点,单极性归零码的功率谱有支流分量,因为其均值不为零,双极性码均值为零,故没有直流分量。
占空比为100%时,相当于不归零码,功率谱符合部归零码的特点。
比较明显的特点是双极性码不含离散分量,单极性码含有。
这是因为在符号等概且不相关的情况,双极性码均值为零,即不含直流成分。
实验四根升余弦滚降功率谱密度及眼图仿真
一、实验题目
仿真测量滚降系数为
的根升余弦滚降系统的发送功率谱密度及眼图。
二、基本原理
1、升余弦滚降
当
取一般值时,余弦滚降传输特性
可表示为
它所对应的冲激响应为
显见,其在码元传输速率为
时无码间串扰。
2、眼图
实际通信系统中,数字信号经过非理想的传输系统产生畸变,总是在不同程度上存在码间干扰的,系统性能很难进行定量的分析,常常甚至得不到近似结果。
而眼图可以直观地估价系统码间干扰和噪声的影响,是常用的测试手段。
眼图分析中常用结论:
1)最佳取样时刻应选择在眼睛张开最大的时刻;
2)眼睛闭合的速率,即眼图斜边的斜率,表示系统对定时误差灵敏的程度,斜边愈陡,对定位误差愈敏感;
3)在取样时刻上,阴影区的垂直宽度表示最大信号失真量;
4)在取样时刻上,上下两阴影区的间隔垂直距离之半是最小噪声容限,噪声瞬时值超过它就有可能发生错误判决;
5)阴影区与横轴相交的区间表示零点位置变动范围,它对于从信号平均零点位置提取定时信息的解调器有重要影响。
三、仿真思路
本仿真实验中首先产生随机序列,然后让序列经过升余弦滤波器,从而可以计算功率谱密度,并由傅里叶反变换得到时域波形,作出眼图。
产生随机序列的方法与与实验三中方法一致。
此处不再赘述。
功率谱的仿真计算方法依然同实验三,即对于仿真系统,若
是时域取样值矢量,X是对应的傅氏变换,那么
的功率谱便为矢量
。
眼图作图的方法是让不同的序列值经过系统,记录下其波形,利用图像的累叠模拟人眼的视觉暂留,形成眼图。
另外也可以使Matlab自带的画眼图的函数eyediagram()进行绘图。
四、程序框图
五、仿真源代码
clearall
closeall
N=2^13;%采样点数
L=16;%每码元的采样点数
M=N/L;%码元数
Rs=2;%码元速率
Ts=1/Rs;%比特间隔
fs=L/Ts;%采样速率
Bs=fs/2;%系统带宽
T=N/fs;%截短时间
t=-T/2+[0:
N-1]/fs;%时域采样点
f=-Bs+[0:
N-1]/T;%频域采样点
alpha=0.25;%升余弦滚降系数
Hcos=zeros(1,N);
ii=find(abs(f)>(1-alpha)/(2*Ts)&abs(f)<=(1+alpha)/(2*Ts));
Hcos(ii)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(ii))-(1-alpha)/(2*Ts))));
ii=find(abs(f)<=(1-alpha)/(2*Ts));
Hcos(ii)=Ts;
%根升余弦特性
Hrcos=sqrt(Hcos);
EP=zeros(1,N);
forloop=1:
2000
%产生数据序列
a=sign(randn(1,M));
%产生PAM信号
s1=zeros(1,N);
s1(1:
L:
N)=a*fs;%冲激序列
S1=t2f(s1,fs);
S2=S1.*Hrcos;
s2=real(f2t(S2,fs));%发送的PAM信号
P=abs(S2).^2/T;
EP=EP*(1-1/loop)+P/loop;%累积平均
ifrem(loop,100)==0
fprintf('\n%d',loop)
end
end
%信道
N0=0.01;
nw=sqrt(N0*Bs)*randn(1,N);%白高斯噪声
r=s2+nw;%接收信号
R=t2f(r,fs);
Y=R.*Hrcos;%匹配滤波
y=real(f2t(Y,fs));%采样前的信号
plot(f,EP)
xlabel('f(kHz)')
ylabel('功率谱(kHz)')
axis([-2,2,0,max(EP)])
grid
eyediagram(y,3*L,3,9);
六、实验结果及分析
(1)实验结果图一:
根升余弦滚降系统的发送功率
图二:
眼图
实验结果分析:
功率谱中在顶部存在冲激成分,主要是由于产生的序列是0、2序列,均值不为0,当序列均值为0时可消除此冲激。
如上图一所示。
由升余弦滚降特性知,满足奈奎斯特准则,无码间干扰。
且可如下计算出信道带宽:
此结果与仿真图形所示相吻合。
系统眼图如图二所示。
附录:
心得体会
通原实验教程是跟我们的通信原理理论课的学习是相辅相成的。
理论课上我们学到的都是一些理论知识,在实验中,我们既可以搞懂我们理论课上学的不太懂的知识,又可以让我们通过实际操作,更加深入的了解,为什么这样做,怎样做。
通信原理软件实验与matlab相结合,通过编程,绘画出仿真波形,以及功率谱密度,其实代码的每一步都是蕴含一定的理论知识的。
在做实验的过程中,刚开始写matlab函数还是有点吃力。
在第一节课把老师给的讲义好好的看了一遍,发现语言都是想通的,与c++的区别也只是一些简单的语句形式不同。
但是,后来我就发现了matlab的强大之处,它真的是一个非常好的画图工具。
第二次试验就开始写代码了,虽然书上有例题,还是自己尝试着写了一下,后来又跟我们书上的代码比对了一下,把不同的地方找出来,对比了一下效果,虽然这节课没有把实验八完成,但是收获还是蛮大的。
第三次实验就加快脚步了,其实很多代码都是想通的,只需要稍加修改一些数据就可以了。
第三次实验完成了实验八剩余的部分和实验九。
第四次实验在产生单双极性归零码的时候产生了一些问题,就是不同的情况有十多种,怎样写代码会让结果显示出来比较整洁,而且可以简化代码。
最后选择将单双极性分开来写,分别用一个for循环循环四次来展现。
第五次实验就比较简单了,眼图和功率谱密度的代码都挺简单的,实现的效果也比通原硬件中的结果更加美。
在基本技术与技能的基础上,我收获更多的是一种工程思维和技术视角。
工程实践中往往与理论存在着一定的差距,往往不能直接把理论照搬到实际项目中,由此,进行必要的仿真与评估就显得尤为重要。
这不仅是一种技术,更是一种优秀的思维习惯。
实验过程中和同学探讨与交流,让我收获颇多,对于同一个问题,不同的人往往有不同的视角与方法,十分有助于开阔思维,激发思维的火花。
在实验中,遇到了不少困难,十分感谢老师的悉心指导与帮助。
总之,通原软件实验不仅有趣,还让我收获了很多课上收获不到的知识。
通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮通原 软件 实验 报告