《通信原理》MATLAB 仿真实验 实验一 模拟调制的仿真实验一、实验目的熟悉MATLAB 软件的使用,并学会用MATLAB 来产生信号并实现信号模拟调制的可视化。
二、实验原理1、 理论原理AM 调制就是由调制信号去控制高频载波的幅度,使之随调制信号作线性变化的过程。
在波形上,幅度已调信号的幅度随基带信号的规律而呈正比地变化;在频谱结构上,它的频谱完全是基带信号频谱在频域内的简单搬移(精确到常数因子)。
由于这种搬移是线性的,因此,幅度调制通常又称为线性调制。
解调方法利用相干解调。
解调就是实现频谱搬移,通过相乘器与载波相乘来实现。
相干解调时,接收端必须提供一个与接受的已调载波严格同步的本地载波,它与接受的已调信号相乘后,经低通滤波器取出低频分量,得到原始的基带调制信号。
通过信号的功率谱密度的公式,得到功率谱密度。
即:在AM 信号中,载波分量并不携带信息,信息完全由边带传送。
如果将载波抑制,只需在将直流0A 去掉,即可输出抑制载波双边带信号,简称双边带信号(DSB )。
DSB 调制器模型如图1所示。
图1 DSB 调制器模型其中,设正弦载波为0()cos()c c t A t ωϕ=+式中,A 为载波幅度;c ω为载波角频率;0ϕ为初始相位(假定0ϕ为0)。
调制过程是一个频谱搬移的过程,它是将低频信号的频谱搬移到载频位置。
而解调是将位于载频的信号频谱再搬回来,并且不失真地恢复出原始基带信号。
双边带解调通常采用相干解调的方式,它使用一个同步解调器,即由相乘器和低通滤波器组成。
在解调过程中,输入信号和噪声可以分别单独解调。
相干解调的原理框图如图2所示:)]()([21)]()([)(cos )]([)(00c c c c AM c AM F F A s t t f A t s ωωωωωωδωωδπωω-+++-++=+=图2 相干解调器的数学模型信号传输信道为高斯白噪声信道,其功率为2σ。
即)]()([21)(c c DSB F F s ωωωωω-++=三、 实验内容1、 用Matlab 产生一个频率为2Hz 、功率为10的余弦信源,设载波频率为10Hz ,试画出(1)DSB 调制信号;(2)该调制信号的功率谱密度;(3)相干解调后的信号波形。
图形显示。
2、 用Matlab 产生一个频率为2Hz 、功率为10的余弦信源,设载波频率为10Hz ,A=5,试画出(1)AM 调制信号;(2)该调制信号的功率谱密度;(3)相干解调后的信号波形。
图形显示。
四、 实验结果 AM 调制:DSB 调制:t t f t s CDSBωcos )()(=通过本次实验,我理解了AM和DSB调制的原理,及用MATLAB仿真的方法。
实验二 基带信号眼图的仿真实验一、实验目的熟悉MATLAB 软件的使用,并学会用MATLAB 来产生信号并实现基带信号眼图的可视化。
二、实验原理1、 理论原理2、 重要函数说明三、 实验内容(第2、3题选一题) 1、 画出单极性码型或双极性码的眼图。
2、 设基带传输系统响应是α=0.5的升余弦滚降系统,画出在接收端的基带数字信号波形及其眼图。
3、 设二进制数字基带信号{}1,1n a ∈+-,()100s t T g t ≤<⎧=⎨⎩其它,设加性高斯白噪声的双边功率谱密度为0N 2,画出眼图。
(1) 经过理想低通()()1520s f T H f ⎧≤=⎨⎩其它后的眼图 (2) 经过理想低通()110sf T H f ⎧≤=⎨⎩其它后的眼图四、 实验结果实验三数字频带信号调制的仿真实验一.实验目的熟悉MATLAB软件的使用,并学会用MATLAB来产生信号并实现二进制数字调制的可视化。
二.实验原理1、二进制振幅键控(1)2ASK调制原理二进制振幅键控记作2ASK,2ASK是利用代表数字信息(“0”或“1”)的基带矩形脉冲去键控一个连续的正弦型载波的振幅,使载波时断时续地输出。
有载波输出时表示发送“1”,无载波输出时表示发送“0”。
数字基带信号式中g(t)是宽度为Ts、高度为A的矩形脉冲,an为数字序列{an}的第n个码元的电平值。
载波c(t)=COS(ωct+ ϕ0),初始相位ϕ0=0则2ASK 信号的表达式为:(2)2ASK信号波形如下:(3)2ASK功率谱密度如下:2、二进制数字频移键控(1)2FSK调制二进制频移键控记作2FSK,2FSK系统是利用二进制数字基带信号控制载波频率进行频谱变换的过程。
二进制基带信号只有两种代码,所以调频时,载波频率只能被置于两种频率,即:即用频率为f1的载波代表“1”码,用频率为f2的载波代表“0”码,或相反。
(2)2FSK调制框图以及波形(3)2FSK功率谱3、二进制数字相移键控(1)2PSK 调制原理二进制相移键控记作2PSK ,用载波的两种相位(0和π)去对应基带信号的“0” 与 “1”两种码元。
因此二元数字调相就是让载波在两种相位间切换,故称相移键控。
2PSK 还可以看作双极性不归零码基带信号的数字调幅,即基带信号与载波 cos ωc t 的乘积。
(2)2PSK 信号频谱三.实验内容1、 用Matlab 产生独立等概率的二进制信源。
(1) 画出OOK 信号波形及其功率谱 (2) 画出2PSK 信号波形及其功率谱(3) 画出2FSK 信号波形及其功率谱(121sf f T ->>) 四.实验源代码、仿真结果及分析1、产生单极性不归零的二进制基带信号,最大幅度归一化为1。
画出基带信号信号波形及其功率谱图形;(1)源代码k=10 %k 表示产生的随机数的个数m=rand(1,k); %产生k 个在(0,1)之间的均匀分布的随机数 for i=1:kif (m(i)>0) && (m(i)< 0.5) s(i)=0; else s(i)=1; endend %根据产生的均匀随机数产生二进制单极性不归零信号subplot(2,1,1);stairs(s) %画出二进制单极性归零信号title('二进制单极性信号');grid onaxis([1,k+1,0,2]);subplot(2,1,2);Y = fft(s,1024);Z=fftshift(Y);Pyy = Z.* conj(Z) /(1024);f = 1000*(0:1000)/(1024);plot(f,Pyy(1:1001));axis([0 1000,0 0.05]);title('二进制单极性信号的频谱');xlabel('频率f (Hz)');grid on(2)基带信号信号波形及其功率谱图形2、对1产生的基带信号进行2ASK调制,画出2ASK信号波形及其功率谱图形;fb =1 %输入的二进制基带信号的频率fc = 3 %载波频率A=1 %载波幅度M=25; %每比特符号用M个点来表示tb=1/fb %输入的二进制基带信号的码元周期tc=1/fc %载波周期Nc=floor(M*tc/tb) %每个载波周期内的采样点的个数step=tb/M %采样间隔%fstart = start frequency for spectrum plot.%fend = end frequency for spectrum plot.for i = 1:kif s(i) == 1for j = 1:MAsk((i-1)*M+j)=A*cos(2*pi*(j-1)/Nc);endelsefor j = 1:MAsk((i-1)*M+j)=0;endendendAskfor i=1:M*kt(i)=i*step;endsubplot(2,2,3);plot(t,Ask)title('2ASK信号波形');grid onsubplot(2,2,4);Y1 = fft(Ask,1024);Z1=fftshift(Y1);Pyy1 = Z1.* conj(Z1) /(1024);f = 1000*(0:1000)/(1024);plot(f,Pyy1(1:1001));axis([0 1000,0 1]);title('2Ask信号的频谱');xlabel('频率f (Hz)');grid on(2)2ASK信号波形及其功率谱图形3、对1产生的基带信号进行2FSK调制,画出2FSK信号波形及其功率谱图形;(1)源代码fb =1 %输入的二进制基带信号的频率fc0 = 3,fc1=5 %两个载波频率,实验中基带信号的0对应于载波频率fc0,基带信号的1对应于载波频率fc1A=1 %载波幅度M=25; %每比特符号用M个点来表示tb=1/fb %输入的二进制基带信号的码元周期tc0=1/fc0, tc1=1/fc1, %两个载波周期Nc0=floor(M*tc0/tb),Nc1=floor(M*tc1/tb), %每个载波周期内的采样点的个数step=tb/M %采样间隔%fstart = start frequency for spectrum plot.%fend = end frequency for spectrum plot.for i = 1:kif s(i) == 1for j = 1:MFsk((i-1)*M+j)=A*cos(2*pi*(j-1)/Nc0);endelsefor j = 1:MFsk((i-1)*M+j)=A*cos(2*pi*(j-1)/Nc1);endendend % 2FSK调制for i=1:M*kt(i)=i*step;endsubplot(2,2,3);plot(t,Fsk)title('2FSK信号波形'); %画出2FSK的波形grid onsubplot(2,2,4);Y1 = fft(Fsk,1024);Z1=fftshift(Y1);Pyy1 = Z1.* conj(Z1) /(1024);f = 1000*(0:1000)/(1024);plot(f,Pyy1(1:1001));axis([0 1000,0 5]);title('2Fsk信号的频谱');xlabel('频率f (Hz)'); %画出2Fsk信号的频谱grid on(2)仿真结果4、对1产生的基带信号进行2PSK调制,画出2PSK信号波形及其功率谱图形。
(1)源代码fb =1 %输入的二进制基带信号的频率fc =1 %载波频率A=1 %载波幅度M=25; %每比特符号用M个点来表示tb=1/fb %输入的二进制基带信号的码元周期tc=1/fc %载波周期Nc=floor(M*tc/tb) %每个载波周期内的采样点的个数step=tb/M %采样间隔for i = 1:kif s(i) == 1for j = 1:MPsk((i-1)*M+j)=A*cos(2*pi*(j-1)/Nc);endelsefor j = 1:MPsk((i-1)*M+j)=-A*cos(2*pi*(j-1)/Nc);endendendPskfor i=1:M*kt(i)=i*step;endsubplot(2,2,3);plot(t,Psk)title('2PSK信号波形');grid onsubplot(2,2,4);Y1 = fft(Psk,1024);Z1=fftshift(Y1);Pyy1 = Z1.* conj(Z1) /(1024);f = 1000*(0:1000)/(1024);plot(f,Pyy1(1:1001));axis([0 1000,0 5]);title('2Psk信号的频谱');xlabel('频率f (Hz)');grid on(2)仿真结果五.实验心得:1、通过这次实验,对matlab的使用有了一个更加熟练的掌握和了解,熟练掌握了画频谱的的方法,以及怎么用matlab来进行数字调制信号的仿真,我觉得,2ASK、2PSK,2FSK在matlab上实现仿真的方法是相近的,只要学会了一种,其他的就比较简单,但是必须要深刻理解含义,这对于以后的学习都是一个很大的帮助,收益很多。