北邮通信原理软软件实验报告.docx
《北邮通信原理软软件实验报告.docx》由会员分享,可在线阅读,更多相关《北邮通信原理软软件实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
北邮通信原理软软件实验报告
实验八:
一、实验目的
假设基带信号为m(t)=sin(2000*pi*t)+2cos(1000*pi*t),载波频率为20kHz,请仿真出AM,DSB-SC、SSB信号,观察已调信号的波形和频谱。
二、实验模型
基带信号m(t)可以分成两个信号的叠加,分别记为m1(t),m2(t)。
借助公式sDSB-SC=m(t)cos(2*pi*fc*t),
SAM=(1+m(t))cos(2*pi*fc*t),
sSSB=m(t)cos(2*pi*fc*t)+H[m(t)]sin(2*pi*fc*t)
分别仿真出m1(t)和m2(t)的信号波形,然后叠加便可以得到m(t)的波形和频谱
三、仿真设计
设计程序时先确定采样点、采样频率,然后分别表示出m1(t)和m2(t)的表达式,然后表示出后面仿真SSB信号所需要的两个信号的希尔伯特变换表达式。
其中表示希尔伯特变换时,采用的方法是先表示出频域的形式MH1和MH2,然后再傅里叶反变换得出对应的mh1和mh2。
对应代码如下:
m1=sin(2*pi*fm1*t);
M1=t2f(m1,fs);
MH1=-j*sign(f).*M1;
mh1=real(f2t(MH1,fs));
m2(t)信号做相同的处理。
处理完信号后,就利用上述的三个公式,表示出AM、DSB-SC和SSB信号s1、s2和s3和其对应傅里叶变换得到其频谱S1、S2、S3。
为了方便实验结果的观察与对比,将这三组图处理在一张图内,利用的函数是subplot。
四、实验结果
五、分析讨论
由实验结果可见,AM与DSB-SC相比,频谱多了一个离散的大载波直流分量,而且DSB-SC信号波形会有相位翻转的现象出现;而DSB-SC和SSB相比,SSB信号的频谱是DSB-SC的一个边带,本实验中采用的上边带滤波。
可见实验结果与理论结果是相一致的。
六、思考题
1.如何仿真VSB系统?
答:
将残留边带滤波器用M文件实现,然后当做函数使用,在程序中调用。
2.在SSB的解调中,如果本地载波和发送载波存在固定的相位误差seta,如何用等效基带的方法仿真seta对输出信噪比的影响?
答:
seta为零时,输出信噪比最大,当seta值增大时输出信噪比减小。
七、程序代码
%基带信号m(t)=sin(2000*pi*t)+2cos(1000*pi*t),fc=20khz,求AM,DSB-SC,SSB
fs=800;
T=200;
N=T*fs;
dt=1/fs;
t=[-T/2:
dt:
T/2-dt];
df=1/T;
f=[-fs/2:
df:
fs/2-df];
fm1=1;
fm2=0.5;
fc=20;
m1=sin(2*pi*fm1*t);
M1=t2f(m1,fs);
MH1=-j*sign(f).*M1;
mh1=real(f2t(MH1,fs));
m2=2*cos(2*pi*fm2*t);
M2=t2f(m2,fs);
MH2=-j*sign(f).*M2;
mh2=real(f2t(MH2,fs));
s1=(m1+m2).*cos(2*pi*fc*t)+cos(2*pi*fc*t);
S1=t2f(s1,fs);
s2=(m1+m2).*cos(2*pi*fc*t);
S2=t2f(s2,fs);
s3=(m1+m2).*cos(2*pi*fc*t)-(mh1+mh2).*sin(2*pi*fc*t);
S3=t2f(s3,fs);
subplot(3,2,1)
plot(f,abs(S1))
title('AM信号频谱')
xlabel('f')
ylabel('S(f)')
axis([10,30,0,max(S1)])
subplot(3,2,2)
plot(t,s1)
title('AM信号波形')
xlabel('t')
ylabel('s(t)')
axis([0,4,-1.2,1.2])
subplot(3,2,3)
plot(f,abs(S2))
title('DSB-SC信号频谱')
xlabel('f')
ylabel('S(f)')
axis([10,30,0,max(S2)])
subplot(3,2,4)
plot(t,s2)
title('DSB-SC信号波形')
xlabel('t')
ylabel('s(t)')
axis([0,4,-1.2,1.2])
subplot(3,2,5)
plot(f,abs(S3))
title('SSB信号频谱')
xlabel('f')
ylabel('S(f)')
axis([10,30,0,max(abs(S3))])
subplot(3,2,6)
plot(t,s3)
title('SSB信号波形')
xlabel('t')
ylabel('s(t)')
axis([0,6,-3,3])
实验九
一、实验目的:
假设基带信号为
m(t)=sin(2000*pi*t)+2cos(1000*pi*t)+4sin(500*pi*t+pi/3),载波频率为40KHz,仿真产生FM信号,观察波形与频谱,并与卡松公式作对照。
FM的频率偏移常数Kf=5kHz/V。
二、仿真模型:
基带信号m(t)可以分成两个信号的叠加,分别记为m1(t),m2(t),m3(t)。
借助公式:
si=A*cos(2*pi*fc*ti+phi)
其中phi=2*pi*Kf*∑mk△t
卡松公式:
BFM≈2*(Kf*|m(t)|max+fm)
三、仿真设计:
设计程序时先确定采样点、采样频率,然后分别表示出m1(t)、m2(t)和m3(t)的表达式,将m1(t),m2(t),m3(t)对应的相位phi1,Phi2和Phi3分别表示出来,然后叠加在一起作为m(t)的总相位Phi,然后带入上述公式。
再进行傅里叶变换得频谱。
即得该FM的波形与频谱。
同样适用了subplot函数。
四、实验结果
五、分析讨论
由FM信号波形疏密变化可见,FM信号的频率随基带信号而变化,而不是幅度随之变化。
由频谱可见,FM信号的频谱有fc+n*fm的频率分量,带宽应是无穷的,但是由于对于大的n值而言,分量幅度很小可忽略。
但是由于我们这是通过有限取样点来近似仿真得出,所以时域和频域都被限定到了一定的范围之内。
但总体上还是符合fc+nfm的分布形式。
卡松公式仅仅是适用于输入的调制信号是单频率的正弦信号,对于输入的调制信号是多个单频正弦信号的叠加的情况,其FM调制信号的带宽是不能够用卡松公式来进行计算的。
六、思考题
见实验八后面已回答
七、程序代码
%m(t)=sin(2000*pi*t)+2cos(1000*pi*t)+4sin(500*pi*t+pi/3),fc=40KHz,Kf=5kHz/V
%仿真产生FM,观察频谱和波形,并与卡森公式作对照。
clearall
closeall
fs=800;
T=16;
N=T*fs;
dt=1/fs;
t=[-T/2:
dt:
T/2-dt];
df=1/T;
f=[-fs/2:
df:
fs/2-df];
fm1=1;
fm2=0.5;
fm3=0.25;
fc=40;
Kf=5;
m1=sin(2*pi*fm1*t);
phi1=2*pi*Kf*cumsum(m1)*dt;
m2=2*cos(2*pi*fm2*t);
phi2=2*pi*Kf*cumsum(m2)*dt;
m3=4*cos(2*pi*fm3*t+pi/3);
phi3=2*pi*Kf*cumsum(m3)*dt;
s=cos(2*pi*fc*t+phi1+phi2+phi3);
S=t2f(s,fs);
subplot(2,1,1)
plot(f,abs(S).^2)
title('FM信号频谱')
xlabel('f')
ylabel('S(f)')
axis([0,80,0,max(abs(S).^2)])
subplot(2,1,2)
plot(t,s)
title('FM信号波形')
xlabel('t')
ylabel('s(t)')
axis([0,3,-2,2])
实验十一
一、实验目的
通过仿真测量占空比是25%,50%、75%以及100%的单、双极性归零码波形及其功率谱。
二、仿真模型
单极性归零码幅度值有两个可能的值:
+1和0,发送滤波器是归零脉冲,当二进制符号“1”“0”等概率出现、符号间互不相关时,单极性归零码功率谱不仅含有连续谱还有离散的直流分量以及离散的时钟分量及其几次谐波分量,功率谱主瓣宽度为2Rb。
当归零脉冲的占空比为100%时归零码就变成了不归零码,此时在每个二进制符号间隔内该信号波形的电平保持不变,或为高电平或为低电平。
此时功率谱仅含有离散的直流分量及连续谱,功率谱主瓣宽度为Rb
双极性归零码波形有两个可能幅度值:
+1和-1。
其2PAM发送滤波器的冲激响应也是归零脉冲。
当二进制符号“1”“0”等概率出现、符号间互不相关时,其功率谱仅含连续谱,主瓣宽度为2Rb。
当占空比为100%时变成双极性不归零码,此时功率谱仅含连续谱,主瓣宽度为Rb。
随机过程的功率谱是各个样本的功率谱的数学期望。
三、
仿真设计
流程图:
四、实验结果
将程序改变成双极性归零码,即将程序中产生单极性数据改成双极性数据,即将a=(randn(1,M)>0)改成a=1-2*(rand(1,M)>0.5),然后依次改变占空比得到不同占空比的双极性归零码的波形及功率谱
五、分析讨论
由单极性信号的仿真结果看见,单极性归零码功率谱不仅含有连续谱还有离散的直流分量以及离散的时钟分量及其几次谐波分量,功率谱主瓣宽度为2Rb,单极性不归零码功率谱仅含有离散的直流分量及连续谱,功率谱主瓣宽度为Rb。
有双极性信号的仿真结果可见,双极性归零码功率谱仅含连续谱,主瓣宽度为2Rb,双极性归零码功率谱仅含连续谱,主瓣宽度为Rb。
六、思考题:
无。
七、实验代码:
下面是产生占空比是25%的单极性归零码波形及功率谱
clearall
closeall
N=2^10;
L=32;
M=N/L;
Rb=2;
Ts=1/Rb;
fs=L/Ts;
Bs=fs/2;
T=N/fs;
t=-T/2+[0:
N-1]/fs;
f=-Bs+[0:
N-1]/T;
EP=zeros(1,N);
forloop=1:
1000
%产生单极性数据序列
a=(randn(1,M)>0);
%NRZ编码
tmp=zeros(L,M);
L1=L*0.25;
tmp([1:
L1],:
)=ones(L1,1)*a;
%产生NRAZ波形
s=tmp(:
)';
S=t2f(s,fs);
%样本信号的功率谱密度
P=abs(S).^2/T;
%随机序列的功率谱是每个样本的功率谱的数学期望
EP=EP*(1-1/loop)+P/loop;
end
subplot(2,1,1)
plot(t,s)
title('占空比是25%的单极性归零码波形')
xlabel('t(ms)')
ylabel('s(t)(v)')
axis([-2,2,-2,2])
subplot(2,1,2)
title('功率谱')
plot(f,EP)
xlabel('f(kHz)')
ylabel('功率谱(W/kHz)')
axis([-20,20,0,max(EP)])
做相应修改得到占空比是50%、75%和100%的单、双极性归零码波形和功率谱
实验十二
一、实验目的:
仿真测量滚降系数为alpha=0.25的根升余弦滚降系统的发送功率谱密度和眼图
二、仿真模型:
升余弦滤波器的传递函数表达式是:
(1).0=<|f|<=(1-alpha)/(2*Ts)时,X(f)=Ts;
(2).(1-alpha)/(2*Ts)<|f|<=(1+alpha)/(2*Ts)时,
X(f)=Ts/2*{1+cos[pi*Ts/alpha*(|f|-(1-alpha)/(2*Ts))]};
(3).|f|>(1+alpha)/(2*Ts)时,X(f)=0;
计算功率谱密度是要采用累计平均的思想,因为随机过程的功率谱是各个样本的功率谱的数学期望。
眼图是数字信号在示波器上重复扫描得到的显示图形。
仿真中,如果一幅图的水平点数是Na,将长为N点的信号s分成N/Na段,重复画在图上即可得到眼图。
若每个码元内的采样点数是L,则Na应取为L的整倍数,以体现示波器与输入信号的同步关系。
三、仿真设计:
该仿真中,功率谱的仿真同前一个实验,眼图的仿真就直接使用MATLAB提供的函数eyediagram。
其中eyediagram的第一个输入s2是被观测的数字基带信号。
第二个输入是示波器的显示宽度(样点数),取为L的整数倍表示同步。
第三个输入“3”将横坐标的现实范围置为[-3/2,3/2]。
第四个输入相当于示波器的水平移位。
四、实验结果:
五、分析讨论:
由功率谱可见,截止频率约是0.625,同理论值(1+alpha)/(2*Ts)算出的结果相一致。
由眼图可见,眼图在t=n*0.5处睁开最大,即为最佳采样时刻
六、思考题:
1、滚降系数的大小与升余弦滚降信号的眼图是什么关系?
和信道带宽又是什么关系。
答:
alpha大时,对定时的精度要求不是那么严格,占用带宽宽,眼图斜边越平缓。
Alpha=0时,对定时精度要求最严格,占用带宽最小,此时斜边最陡。
Alpha越大,信道带宽越大,alpha越小,信号带宽越小。
2、当信源中“1”的概率从0向1逐步提高时,AMI信号的功率会有什么变化?
答:
功率先变大后变小,当概率为0.5时,功率最大。
七、程序代码:
clearall
closeall
N=2048;
M=128;
T=M;
L=N/M;
fs=N/T;
Ts=L/fs;
f=[-N/2:
(N/2-1)]/T;
alpha=0.25;
G=zeros(1,N);
ii=find(abs(f)>(1-alpha)/(2*Ts)&abs(f)<=(1+alpha)/(2*Ts));
G(ii)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(ii))-(1-alpha)/(2*Ts))));
ii=find(abs(f)<=(1-alpha)/(2*Ts));
G(ii)=Ts;
EP=zeros(1,N);
forloop=1:
2000
a=1-2*(rand(1,M)>0.5);
s1=zeros(1,N);%冲激序列
s1(1:
L:
N)=a*fs;
S1=t2f(s1,fs);
S2=S1.*G
s2=real(f2t(S2,fs));%发送的信号
P=abs(S2).^2/T;
EP=EP*(1-1/loop)+P/loop;%累计平均
ifrem(loop,100)==0
fprintf('\n%d',loop)
end
end
plot(f,EP)
title('功率谱')
xlabel('f(kHz)')
ylabel('功率谱(kHz)')
axis([-1,1,0,max(EP)])
eyediagram(s2,3*L,3,9)
grid
选作:
一、实验目的:
仿真一个完整的基带系统。
画出眼图、功率谱、误码率等
二、仿真模型:
升余弦滤波器的传递函数表达式是:
(1).0=<|f|<=(1-alpha)/(2*Ts)时,X(f)=Ts;
(2).(1-alpha)/(2*Ts)<|f|<=(1+alpha)/(2*Ts)时,
X(f)=Ts/2*{1+cos[pi*Ts/alpha*(|f|-(1-alpha)/(2*Ts))]};
(3).|f|>(1+alpha)/(2*Ts)时,X(f)=0;
发送成形脉冲g(t)的频谱为G(f)=(H升(f))^0.5.
发送功率谱密度是Ps(f)=1/Ts*|G(f)|^2=1/Ts*H升(f).
眼图是数字信号在示波器上重复扫描得到的显示图形。
仿真中,如果一幅图的水平点数是Na,将长为N点的信号s分成N/Na段,重复画在图上即可得到眼图。
若每个码元内的采样点数是L,则Na应取为L的整倍数,以体现示波器与输入信号的同步关系。
误码率=错误码元总数/发送码元总数。
数字基带传输系统的符号级等效模型为下图:
ai→→yi→→
↑ni
假设匹配滤波器的系数经过了适当的设计,使得采样输出可以表示为yi=ai+ni,其中,ni是信道白高斯噪声通过匹配滤波器后产生的分量,其均值为0,方差为delta^2.
三、仿真设计:
该仿真中,功率谱的仿真同前一个实验,不同的是循环中产生的随机数据序列是等概率取之于+1,-1和0。
眼图的仿真就直接使用MATLAB提供的函数eyediagram。
其中eyediagram的第一个输入y是被观测的数字基带信号,是采样前的信号,它是由接收信号通过匹配滤波后的信号。
匹配滤波器的就按前面所述的公式表示出来。
误码率的仿真设计思想是:
定义一个变量n_err,即误比特数,用循环的方式将采用的接收信号与输入系列相比,若二者不相等则误比特数加一,循环结束后即得误比特数,然后除以输入比特数即为误码率。
四、实验结果:
五、分析讨论
有误码率图线可知,当增大Eb或减小N0值,均会使误码率减小,即增大发送信号功率哦或减小加性噪声的功率谱密度均可减小系统平均误码率。
由功率谱密度图,可见截止频率是1.25,跟由Rb=2计算得到的理论值一致。
六、思考题
无。
七、程序代码
globaldttfdfNT%全局变量
closeall
clearEb_N0Pe
N=2^13;%采样点数
L=8;%每码元的采样点数
M=N/L%码元数
Rb=2;%码速率是2Mb/s
Ts=1/Rb;%码元间隔
fs=L/Ts;
dt=Ts/L;%时域采样间隔
df=1/(N*dt)%频域采样间隔
T=N*dt%截短时间
Bs=N*df/2%系统带宽
alpha=0.5%滚降系数=0.5
N0=0.01;
t=linspace(-T/2,T/2,N);
%时域横坐标
f=linspace(-Bs,Bs,N)+eps;
%频域横坐标
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);
forloop1=1:
20
Eb_N0(loop1)=(loop1-1)
%分贝值变为真值
eb_n0(loop1)=10^(Eb_N0(loop1)/10);
Eb=1;
n0=Eb/eb_n0(loop1);
%信道噪声谱密度
sita=n0*Bs;%噪声功率
n_err=0;%误码计数
forloop2=1:
5
a=sign(randn(1,M));%发送码元
s1=zeros(1,N);
s1(L/2:
L:
N)=a/dt;%产生冲击脉冲
S1=t2f(s1,fs);
nw=sqrt(N0*Bs)*randn(1,N);%白高斯噪声
nr=real(f2t(t2f(nw,fs).*Hrcos,fs));
sr=real(f2t(S1.*HR,fs))+nr;
yi=sr(L/4:
L:
N);%以L/4为起点,步长L,取样点N
aa=sign(yi);%接收码元
n_err=n_err+length(find(aa~=a));
end
Pe(loop1)=n_err/(M*loop2);%误码率Pe'=n_err/(M*loop2)
figure
(1)
semilogy(Eb_N0,Pe,'g');
eb_n0=10.^(Eb_N0/10);%还原为真值
holdon
semilogy(Eb_N0,0.5*erfc(sqrt(eb_n0)));
axis([0,12,1e-6,1])
xlabel('Eb/N0')
ylabel('Pe')
title('误码率曲线')
end
EP=zeros(1,N);
forloop3=1:
2000
a=sign(randn(1,M));
s1=zeros(1,N);
s1(1:
L:
N)=a*fs;
S1=t2f(s1,fs);
S2=S1.*Hrcos;
s2=real(f2t(S2,fs));
P=abs(S2).^2/T;
EP=EP*(1-1/loop3)+P/loop3;
ifrem(loop3,100)==0
fprintf('\n%d',loop3)
end
end
%信道
nw=sqrt(N0*Bs)*randn(1,N);%白高斯噪声
r=s2+nw;
R=t2f(r,fs);
Y=R.*Hrcos;
y=real(f2t(Y,fs));
figure
(2)
plot(f,EP)
xlabel('f(kHz)')
ylabel('功率谱(W/kHz)')
axis([-2,2,0,max(EP)])
grid
eyediagram(y,3*L,3,9)