杭电 通信原理实验报告

更新时间:2023-09-14 19:46:01 阅读量: 初中教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

通信原理实验报告

2012-2013(上)

姓名 学号 专业

实验一:MATLAB验证低通抽样定理

实验目的

1、掌握抽样定理的工作原理。

2、通过MATLAB编程实现对抽样定理的验证,加深抽样定理的理解。同时训练应用计算机分析问题的能力。

3、了解MATLAB软件,学习应用MATLAB软件的仿真技术。它主要侧重于某些理论知识的灵活运用,以及一些关键命令的掌握,理解,分析等。

4、计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,并由此总结采样频率对信号恢复产生误差的影响,从而验证时域采样定理。

程序设计

整个程序由三部分组成:主函数、采样函数、恢复函数。

主函数中:

f1='sin(2*pi*80*t)+cos(2*pi*30*t)';//用来画出原信号 fs0=caiyang(f1,x);用来获得采样信号

fr0=huifu(fs0,x); //用来获得恢复信号 fs0和fr0中的x即为人为所设定的采样频率。

采样函数中:

初始设定fs0=10000; tp=0.1;

f=[fs0*k2/m2,fs0*k1/m1]; //设置原信号的频率数组

FX1=fx1*exp(-j*[1:length(fx1)]'*w);//求原信号的离散时间傅里叶变换。 axis([min(t),max(t),min(fx1),max(fx1)]) ;//画原信号幅度频谱 axis([-100,100,0,max(abs(FX1))+5]) ;//对信号进行采样 Ts=1/fs; //采样周期

t1=-tp:Ts:tp; //采样时间序列

f1=[fs*k2/m2,fs*k1/m1]; //设置采样信号的频率数组

t=t1; //变量替换 fz=eval(fy); // 获取采样序

FZ=fz*exp(-j*[1:length(fz)]'*w); //采样信号的离散时间傅里叶变换

恢复函数中:

T=1/fs; dt=T/10; tp=0.1;

fh=fz*sinc(fs*TMN); //由采样信号恢复原信号

w=[-2*pi*k2/m2,2*pi*k1/m1];

FH=fh*exp(-j*[1:length(fh)]'*w); //恢复后的信号的离散时间傅里叶变换 line([min(t),max(t)],[0,0]) //画重构信号的幅度频谱

实验步骤

1、安装MATLAB6.5软件

2、学习简单编程,画图plot(x,y)函数等

//

3、设置原信号的幅度、频率、相位等参数,具体表现为原信号的函数:

f(x)=sin(2*pi*80*t)+ cos(2*pi*30*t),并画出连续时间信号的时域波形及其幅频特性

曲线,如下:

4、在不同采样频率下对信号进行采样得到采样序列,并对采样序列进行频谱分析,绘制其幅频曲线:

1) 当采样频率为80Hz:为欠采样,采样信号发生混叠。

2) 当采样频率为160Hz:为临界采样,采样频率刚好不发生混叠。

3) 采样频率为180Hz:为过采样,采样信号中的频谱不发生混叠。

5、由采样序列恢复出连续时间信号 ,画出其时域波形,对比与原连续时间信号的时域波形。

① 采样频率为80Hz:此时为原信号的欠采样信号恢复,即fs<2fm,此频率下由于采样频率不满足时域采样定理,频移后的各相临频谱重叠,即采样信号中的频谱发生混叠,导致无法恢复原信号。

② 采样频率为160Hz:此时为临界采样的信号恢复,即fs=2fm,此频率下刚好满足时域采样定理,采样信号的频谱刚好不发生混叠,由图可见,这时可以恢复出原信号,但是只恢复出了低通是的信号,不能恢复出完整信号。

③ 采样频率为180Hz:此时为过采样恢复出的信号,即fs>2fm,此频率下完全满足时域采样定理,完全不发生混叠,由图可以看出,这时候信号已经完全被恢复,与原信号误差较小。此时的采样是成功的,而且时域波形包含的信息比采样脉冲序列包含的细节要多,使原信号可以得到无失真的重建。

Sum_AMI_N=zeros(1,N*N_sample);//AMI不归零码功率值初始化 Sum_HDB3_N=zeros(1,N*N_sample); //HDB3不归零码功率值初始化 然后依次对各个码进行处理,如: for j=1:2*N

rz_code((j-1)*N_sample/2+1:j*N_sample/2)=datab(j); drz_code((j-1)*N_sample/2+1:j*N_sample/2)=datad(j); ami_code((j-1)*N_sample/2+1:j*N_sample/2)=ami_data(j); hdb3_code((j-1)*N_sample/2+1:j*N_sample/2)=hdb3_data(j); 调用程序:

function [f,sf]=T2F(t,st) dt=t(2)-t(1); T=t(end); df=1/T;

N=length(st);

f=(-N/2*df):df:((N/2*df)-df); sf=fft(st);

sf=T/N*fftshift(sf); function y=hdb3(x) n=length(x); last_V=-1; last_one=-1; y=zeros(size(x)); count=0; for i=1:n;

if x(i)==1;

y(i)=-last_one; last_one=y(i); count=0; else

count=count+1; if count==4; count=0; y(i)=-last_V; last_V=y(i);

if y(i)*last_one==-1 y(i-3)=y(i); end

last_one=y(i); end

end

end //对HDB3码进行处理 function y=ami(x) n=length(x); last_one=-1;

y=zeros(size(x)); for r=1:n

if x(r)==1

y(r)=-last_one; last_one=y(r); end

end //对AMI码进行处理

实验步骤

1.安装MATLAB6.5软件

2.学习简单编程,画图plot(x,y)函数等

3.利用MATLAB软件,编写.M文件,随机产生一组单极归零(RZ)码与单极非归零(NRZ)码,并得出功率谱,如下所示:

4.利用MATLAB软件,编写.M文件,随机产生一组双极性归零码与双极性非归零码,并得出功率谱,如下:

5.根据已产生的RZ码,通过AMI和HDB3编码规则,利用.M文件产生AMI码与HDB3码,如下:

6.根据已产生的NRZ码,通过AMI和HDB3编码规则,利用.M文件产生AMI码与HDB3码,如下:

7.得出上述两种情况下产生的AMI码与HDB3的功率谱,如下:

实验心得

1、单极性不归零码的编码规则是用高电平和低电平(这里为零电平)分别表示二进制信息“1”和“0”,在整个码元期间电平保持不变。 2、单极性归零码的编码规则与单极性不归零码不同的是,发送“1”时在整个码元期间高电平只持续一段时间,在码元的其余时间内则返回到零电平。

3、双极性码的特点与单极性码不同的地方是,双极性码中,+1和-1交替出现。 4、AMI码的编码规则是“0”码不变,“1”码则交替地转换为+1和-1。由于AMI码的传号交替反转,故由于它决定的基带信号将出现正负脉冲交替,而0电位保持不变的规律。这种基带信号无直流成分,且只有很小的低频成分。它的频谱A显示MI码的能量集中于f0/2处(f0为码速率)。

5、HDB3的编码规则如下:用B脉冲来保证任意两个相连取代节的V脉冲间“1”的个数为奇数。当相邻V脉冲间“1”码数为奇数时,则用“000V”取代,为偶数个时就用“B00V”取代。在V脉冲后面的“1”码和B码都依V脉冲的极性而正负交替改变。在HDB3码中,相邻两个V码之间或是其余的“1”码之间都符合交替变号原则,故它的频谱须符合这些特点。

实验三 数字基带信号的眼图实验

一、实验目的

1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度;

3、熟悉MATLAB语言编程。

二、实验预习要求

1、复习《数字通信原理》第七章7.1节——奈奎斯特第一准则内容; 2、复习《数字通信原理》第七章7.2节——数字基带信号码型内容; 3、认真阅读本实验内容,熟悉实验步骤。

三、实验原理和电路说明

1、基带传输特性

基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该

?a??t?nT?nsn基带传输H(?)?ah?t?nT?nsn抽样判决

图3-1

基带系统的分析模型

抑制码间干扰。设输入的基带信号为?an??t?nTs?,Ts为基带信号的码元周期,则经过

n基带传输系统后的输出码元为?anh?t?nTs?。其中

nh(t)?12??????H(?)ej?td? (3-1)

理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足:

k?0?1,h(kTs)??

?0,k为其他整数 (3-2)

频域应满足:

??T,???sTs H(?)???0,其他?? (3-3)

H(?)Ts??Ts0?Ts?

图3-2 理想基带传输特性

此时频带利用率为2Baud/Hz,这是在抽样值无失真条件下,所能达到的最高频率利用率。

由于理想的低通滤波器不容易实现,而且时域波形的拖尾衰减太慢,因此在得不到严格

定时时,码间干扰就可能较大。在一般情况下,只要满足:

?i???2?i?2??2??H?????H?????H(?)?H?????Ts,TTTs?s?s???????Ts (3-4)

基带信号就可实现无码间干扰传输。这种滤波器克服了拖尾太慢的问题。

从实际的滤波器的实现来考虑,采用具有升余弦频谱特性H(?)时是适宜的。

??1?sin???H(?)????????Ts??(??)?,?2?Ts??1,0,?(1??)Ts????(1??)TsTs0????(1??) (3-5)

???(1??)Ts这里?称为滚降系数,0???1。

所对应的其冲激响应为:

sinh(t)??tTscos(??tTs)1??4?t22?tTsTs2? (3-6)

此时频带利用率降为2/(1??)Baud/Hz,这同样是在抽样值无失真条件下,所能达到的最高频率利用率。换言之,若输入码元速率Rs'?1/Ts,则该基带传输系统输出码元会产生码间干扰。

2、眼图

所谓眼图就是将接收滤波器输出的,未经再生的信号,用位定时以及倍数作为同步信号在示波器上重复扫描所显示的波形(因传输二进制信号时,类似人的眼睛)。干扰和失真所产生的畸变可以很清楚的从眼图中看出。眼图反映了系统的最佳抽样时间,定时的灵敏度,噪音容限,信号幅度的畸变范围以及判决门限电平,因此通常用眼图来观察基带传输系统的好坏。

图3-3

眼图示意图

四、仿真环境

Windows NT/2000/XP/Windows 7/VISTA; MATLAB V6.0以上。

五、仿真程序设计

1、程序框架

NRZ(n)双极性NRZ码元序列产生Samp_data(m)NRZ码元序列抽样升余弦滚降系统st(m)画眼图

图3-4 程序框架

首先,产生M进制双极性NRZ码元序列,并根据系统设置的抽样频率对该NRZ码元序列进行抽样,再将抽样序列送到升余弦滚降系统,最后画出输出码元序列眼图。

2、参数设置

该仿真程序应具备一定的通用性,即要求能调整相应参数以仿真不同的基带传输系统,并观察输出眼图情况。因此,对于NRZ码元进制M、码元序列长度Num、码元速率Rs,采样频率Fs、升余弦滚降滤波器参考码元周期Ts、滚降系数alpha、在同一个图像窗口内希望观测到的眼图个数Eye_num等均应可以进行合理设置。

3、实验内容

根据现场实验题目内容,设置仿真程序参数,编写仿真程序,仿真波形,并进行分析给出结论。

4、仿真结果参考

参考例程参数设置如下: 无码间干扰时:

Ts=1e-2; %升余弦滚降滤波器的理想参考码元周期,单位s Fs=1e3; %采样频率,单位Hz。注意:该数值过大将 %严重增加程序运行时间 Rs=50; %输入码元速率,单位Baud M=2; %输入码元进制

Num=100; %输入码元序列长度。注意:该数值过大将 %严重增加程序运行时间

Eye_num=2; %在一个窗口内可观测到的眼图个数。

图3-5(a)

仿真参考结果图(1)

图3-5(b)

仿真参考结果图(2)

图3-5(c)

仿真参考结果图(3)

从眼图张开程度可以得出没有发生码间干扰,这是因为基带信号的码元速率Rs为50Baud,而升余弦滚降滤波器和FIR滤波器的等效带宽B=60Hz(Ts=10ms),Rs<2B,满足了奈奎斯特第一准则的条件。

有码间干扰时:

Ts=5*(1e-2); %升余弦滚降滤波器的参考码元周期,单位s Fs=1e3; %采样频率,单位Hz。注意:该数值过大将

%严重增加程序运行时间 Rs=50; %输入码元速率,单位Baud M=2; %输入码元进制

Num=100; %输入码元序列长度。注意:该数值过大将 %严重增加程序运行时间

Eye_num=2; %在一个窗口内可观测到的眼图个数。

图3-5(d)

仿真参考结果图(4)

眼图基本闭合,存在较为严重的码间干扰,这是因为码元速率Rs虽然仍为50Baud,但滤波器等效带宽已经变为12Hz(Ts=50ms),Rs>2B不再满足奈奎斯特第一准则。

多进制码元情况:

图3-6 四进制NRZ码元眼图

六、参考程序

close all;

alpha=0.2; %设置滚降系数,取值范围在[0,1]

Ts=1e-2; %升余弦滚降滤波器的参考码元周

%期, Ts=10ms,无ISI。

% Ts=2*(1e-2); %Ts=20ms,已经出现ISI(临界点) % Ts=5*(1e-2); %Ts=50ms,出现严重ISI

Fs=1e3; %采样频率,单位Hz。注意:该数 %值过大将严重增加程序运行时间 Rs=50; %输入码元速率,单位Baud % M=2;

M=4; %输入码元进制

Num=100; %输入码元序列长度。注意:该数值 %过大将严重增加程序运行时间。 Samp_rate=Fs/Rs %采样率,应为大于1的正整数,即 %要求Fs,Rs之间呈整数倍关系

% Eye_num=2; %在一个窗口内可观测到的眼图个数。

Eye_num=4; %在一个窗口内可观测到的眼图个数。 %产生双极性NRZ码元序列 NRZ=2*randint(1,Num,M)-M+1; figure(1); stem(NRZ); xlabel('时间'); ylabel('幅度'); hold on; grid on;

title('双极性NRZ码元序列'); %对双极性NRZ码元序列进行抽样 k=1; for ii=1:Num

for jj=1:Samp_rate

Samp_data(k)=NRZ(ii); k=k+1; end end

%基带升余弦滚降系统冲激响应 [ht,a] = rcosine(1/Ts,Fs,'fir',alpha); %画出基带升余弦滚降系统冲激响应波形 figure(2); subplot(2,1,1); plot(ht); xlabel('时间'); ylabel('冲激响应'); hold on; grid on;

title('升余弦滚降系统冲激响应,滚降因子\\alpha=0.2'); %将信号送入基带升余弦滚降系统,即做卷积操作 st = conv(Samp_data,ht)/(Fs*Ts); subplot(2,1,2); plot(st); xlabel('时间');

ylabel('信号幅度'); hold on; grid on;

title('经过升弦滚降系统后的码元')

%画眼图,在同一个图形窗口重复画出一个或若干个码元 figure(3);

for k = 10:floor(length(st)/Samp_rate)-10 %不考虑过渡阶段信号,只观测稳定阶段

ss = st(k*Samp_rate+1:(k+Eye_num)*Samp_rate); plot(ss); hold on; end

xlabel('时间'); ylabel('信号幅度'); hold on; grid on;

title('基带信号眼图');

% eyediagram(st,Samp_rate); % xlabel('时间'); % ylabel('信号幅度'); % hold on; % grid on;

% title('基带信号眼图');

实验心得

1、信道中存在噪声,信道,接收发滤波器的传输特性的不理想性。 2、眼图的睁开度与码间干扰成负相关性,与信道噪声成正相关性。 3、通信原理实验是通信原理课程学习不可或缺的一部分,是我通过实践检验理论的一个重要的过程。在实验中,我发现,并不是所有的实验现象都跟书本上预测的一样,多数是有较小差别的。通过做实验,我再一次学习了基本原理,能够通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度。

本文来源:https://www.bwwdw.com/article/bn2h.html

Top