通信原理软件实验报告.docx

上传人:b****5 文档编号:6477070 上传时间:2023-01-06 格式:DOCX 页数:38 大小:875.99KB
下载 相关 举报
通信原理软件实验报告.docx_第1页
第1页 / 共38页
通信原理软件实验报告.docx_第2页
第2页 / 共38页
通信原理软件实验报告.docx_第3页
第3页 / 共38页
通信原理软件实验报告.docx_第4页
第4页 / 共38页
通信原理软件实验报告.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

通信原理软件实验报告.docx

《通信原理软件实验报告.docx》由会员分享,可在线阅读,更多相关《通信原理软件实验报告.docx(38页珍藏版)》请在冰豆网上搜索。

通信原理软件实验报告.docx

通信原理软件实验报告

信息与通信工程学院

通信原理软件实验报告

 

班级:

2008211113

姓名:

学号:

序号:

日期:

2010年11月

实验一调幅信号波形频谱仿真

一、实验题目

假设基带信号为

,载波频率为

,请仿真出AM、DSB-SC、SSB信号,观察已调信号的波形及频谱。

二、基本原理

1、AM调制原理

对于单音频信号

进行AM调制的结果为

其中调幅系数

,要求

以免过调引起包络失真。

分别表示AM信号波形包络最大值和最小值,则AM信号的调幅系数为

2、DSB-SC调制原理

DSB信号的时域表达式为

频域表达式为

3、SSB调制原理

SSB信号只发送单边带,比DSB节省一半带宽,其表达式为:

三、仿真思路

定义时域采样率、截断时间和采样点数,可得到载波和调制信号,容易根据调制原理写出各调制信号表达式,由此可以画出时域波形图。

另外,对时域信号进行FFT变换,此处使用预先定义的t2f.m函数替代,进行傅立叶变换,得到频谱,在频域作图即可。

四、程序框图

五、仿真源代码

%Assumebasebandsignal:

m(t)=sin(2000*pi*t)+2*cos(1000*pi*t)

%carrierfrequencyisfc=20kHz,thatiscos(2*pi*fc*t)

%prepareworkspace

Clearall

closeall

%-------------------------------------------------------------------

%Commondefinitions

fs=800;%samplingfrequency

T=200;%Time-domaintruncation

N=T*fs;%samplepoints

dt=1/fs;%timeresolution

t=-T/2:

dt:

T/2-dt;

df=1/T;%minimumfrequency-domainresolution

f=-fs/2:

df:

fs/2-df;

%-------------------------------------------------------------------

fm1=1;%kHz

fm2=0.5;%kHz

mt=sin(2*pi*fm1*t)+2*cos(2*pi*fm2*t);

mt1=mt/3;%normalization

fc=20;%kHz

ct=cos(2*pi*fc*t);

Ac=1;

%-------------------------------------------------------------------

%%SimulateAM

a=0.8;

st1=Ac*(1+a*mt1).*ct;%AMEquation

Sf1=t2f(st1,fs);%FourierTransform

surf1=abs(hilbert(st1));%envelope

figure

(1)

%plotModulatingSignal

subplot(2,2,1),plot(t,mt),gridon,axis([0,+4,-3,+3]),

title('ModulatingSignal'),xlabel('t'),ylabel('m(t)')

%plotCarrierSignal

subplot(2,2,2),plot(t,ct),gridon,axis([0,2/fc,-1,1]),

title('CarrierSignal'),xlabel('t'),ylabel('c(t)')

%plotModulatedSignalanditsenvelope

subplot(2,2,3),plot(t,st1,t,surf1,'r:

'),gridon,

axis([0,60/fc,-2*Ac,+2*Ac]),

title('ModulatedSignal'),xlabel('t'),ylabel('s(t)')

%plotFrequencySpectrum

subplot(2,2,4),plot(f,abs(Sf1)),

axis([-30,+30,0,max(abs(Sf1))]),gridon,

title('FrequencySpectrum'),xlabel('f'),ylabel('S(f)')

%-------------------------------------------------------------------

%%SimulateDSB-SC

st2=Ac*mt.*ct;

Sf2=t2f(st2,fs);%FourierTransform

surf2=abs(hilbert(st2));%envelope

figure

(2)

%plotModulatingSignal

subplot(2,2,1),plot(t,mt),gridon,axis([0,+4,-3,+3]),

title('ModulatingSignal'),xlabel('t'),ylabel('m(t)')

%plotCarrierSignal

subplot(2,2,2),plot(t,ct),gridon,axis([0,2/fc,-1,1]),

title('CarrierSignal'),xlabel('t'),ylabel('c(t)')

%plotModulatedSignal

subplot(2,2,3),plot(t,st2),gridon,axis([0,60/fc,-3*Ac,+3*Ac]),

title('ModulatedSignal'),xlabel('t'),ylabel('s(t)')

%plotFrequencySpectrum

subplot(2,2,4),plot(f,abs(Sf2)),axis([-30,+30,0,max(abs(Sf2))]),

gridon,title('FrequencySpectrum'),xlabel('f'),ylabel('S(f)')

%-------------------------------------------------------------------

%%SimulateSSB

%uset2fandf2tfunctiontodohilberttransform

%ormayusemh=hilbert(mt);

Mt=t2f(mt,fs);

Mh=-1j*sign(f);

mh=real(f2t(Mh,fs));

%GernerateSSBSignal(rightside)

st3=mt.*cos(2*pi*fc*t)-mh.*sin(2*pi*fc*t);

Sf3=t2f(st3,fs);

figure(3)

%plotModulatingSignal

subplot(2,2,1),plot(t,mt),gridon,axis([0,+4,-3,+3]),

title('ModulatingSignal'),xlabel('t'),ylabel('m(t)')

%plotCarrierSignal

subplot(2,2,2),plot(t,ct),gridon,axis([0,2/fc,-1,1]),

title('CarrierSignal'),xlabel('t'),ylabel('c(t)')

%plotModulatedSignal

subplot(2,2,3),plot(t,st3),gridon,axis([0,60/fc,-6*Ac,+6*Ac]),

title('ModulatedSignal'),xlabel('t'),ylabel('s(t)')

%plotFrequencySpectrum

subplot(2,2,4),plot(f,abs(Sf3)),

axis([-30,+30,0,max(abs(Sf3))]),gridon,

title('FrequencySpectrum'),xlabel('f'),ylabel('S(f)')

%-------------------------------------------------------------------

%Endofprogram

附注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.1仿真AM波形和频谱

图1.1为AM调制的波形和频谱图,从仿真的结果看出,AM调制系数定义为

时信号包络清晰,包络已显式绘出,可利用包络检波恢复原信号,接收设备较为简单。

其频谱含有离散大载波,从理论分析可知,此载波占用了较多发送功率,使得发送设备功耗较大。

图1.2仿真DSB-SC波形和频谱

图1.2为双边带抑制载波调幅信号波形和频谱,其时域波形有相位翻转,频谱不含离散大载波。

必须使用相干解调,可用多种方法提取载波,常用方式为在发端加入离散导频分量,在收端利用调谐于载频

的窄带滤波器滤出导频分量。

图1.3仿真SSB波形和频谱

图1.3为SSB信号波形和频谱仿真图。

SSB信号比DSB信号节省一半带宽,适合于语声信号的调制,因为其没有直流分量,也没有很低频的成分。

解调时可采用相干解调或者在发端加入离散大载波进行包络检波。

实验二调频信号波形频谱仿真

一、实验题目

假设基带信号

,载波频率为40kHz,仿真产生FM信号,观察波形与频谱,并与卡松公式做对照。

FM的频率偏移常数为5kHz/V。

二、基本原理

单音频信号

经FM调制后的表达式为

其中

调制指数

由卡松公式可知FM信号的带宽为

三、仿真思路

同实验一中相仿,定义必要的仿真参数,在此基础上可得到载波信号和调制信号。

根据

可得到频偏,由此可写出最终的FM信号的表达式进行仿真计算。

对FM信号进行傅里叶变换可得频谱特性,变换依旧使用实验一中给出的t2f.m函数。

四、程序框图

五、仿真源代码

%Assumebasebandsignal:

%m(t)=sin(2000*pi*t)+2*cos(1000*pi*t)+4*sin(500*pi*t+pi/3)

%carrierfrequencyisfc=40kHz,thatiscos(2*pi*fc*t)

%prepareworkspace

clearall

closeall

%--------------------------------------------------------------------

%%Commondefinitions

fs=800;%samplingfrequency(kHz)

T=16;%Time-domaintruncation(ms)

N=T*fs;%samplepoints

dt=1/fs;%timeresolution

t=-T/2:

dt:

T/2-dt;

df=1/T;%minimumfrequency-domainresolution

f=-fs/2:

df:

fs/2-df;

%--------------------------------------------------------------------

fm1=1;%kHz

fm2=0.5;%kHz

fm3=0.25;%kHz

fc=40;%kHz

%Basebandsignal

mt=sin(2*pi*fm1*t)+2*cos(2*pi*fm2*t)+4*sin(2*pi*fm3*t+pi/3);

%Carriersignal

ct=cos(2*pi*fc*t);

Kf=5;%kHz/V

phi=2*pi*Kf*cumsum(mt)*dt;%phasedeviation

%--------------------------------------------------------------------

%%GenerateFMsignal

st=cos(2*pi*fc*t+phi);%FMsignal

Sf=t2f(st,fs);%FourierTransform

%--------------------------------------------------------------------

%%Plotfigures

figure

(1)%plotModulatingSignal

subplot(1,2,1),plot(t,mt),gridon,axis([0,+8,-7,+7]),

title('ModulatingSignal'),xlabel('t'),ylabel('m(t)')

%plotCarrierSignal

subplot(1,2,2),plot(t,ct),gridon,axis([0,2/fc,-1,1]),

title('CarrierSignal'),xlabel('t'),ylabel('c(t)')

figure

(2)%plotModulatedSignalanditsenvelope

plot(t,st),gridon,axis([0,180/fc,-1.5,+1.5]),

title('ModulatedSignal'),xlabel('t'),ylabel('s(t)')

figure(3)%plotFrequencySpectrum

plot(f,abs(Sf)),axis([-90,+90,0,max(abs(Sf))]),gridon,

title('FrequencySpectrum'),xlabel('f'),ylabel('S(f)')

%--------------------------------------------------------------------

六、实验结果及分析

图2.1基带信号和载波信号波形

如图2.2为仿真FM信号波形,其形状为疏密波,最大频偏5kHz/V。

图2.2仿真FM信号波形

如图2.3所示为仿真FM信号频谱图,由图可以读出并计算带宽为

由图2.1读出

,频偏为

利用卡松公示进行理论计算为:

仿真与理论计算值基本相符。

验证了卡松公式的有效性。

图2.3仿真FM信号频谱

实验三单双极性归零码波形及功率谱仿真

一、实验题目

通过仿真测量占空比为25%、50%、75%以及100%的单双极性归零码波形及其功率谱。

二、基本原理

1、单极性归零码

当发

码时,发出正电流,但持续时间短于一个码元的时间宽度,即发出一个窄脉冲;当发

码时,仍然不发送电流。

 

单极性归零码在符号等概出现且互不相关的情况下,功率谱主瓣宽度为

,其频谱含有连续谱、直流分量、离散始终分量及其奇次谐波分量。

2、双极性归零码

其中

码发正的窄脉冲,

码发负的窄脉冲,两个码元的时间间隔可以大于每一个窄脉冲的宽度,取样时间是对准脉冲的中心。

双极性归零码在符号等概且不相关的情况下,功率谱仅含有连续谱,其主瓣宽度为

3、各种码的比较

不归零码(NoneReturnZeroCode)在传输中难以确定一位的结束和另一位的开始,需要用某种方法使发送器和接收器之间进行定时或同步。

归零码(NoneReturnZeroCode)的脉冲较窄,根据脉冲宽度与传输频带宽度成反比的关系,因而归零码在信道上占用的频带较宽。

  

单极性码会积累直流分量;双极性码的直流分量大大减少,这对数据传输是很有利的。

三、仿真思路

1、产生RZ码

采用归零矩形脉冲波形的数字信号,可以用以下方法产生信号矢量

是码元矢量,N是总取样点数,M是总码元数,L是每个码元内的点数,

是要求的占空比,

是仿真系统的时域采样间隔,则RZ信号的产生方法是

2、仿真功率谱密度

任意信号

的功率谱的定义是

其中

截短后的傅氏变换,

的能量谱,

在截短时间内的功率谱。

对于仿真系统,若

是时域取样值矢量,X是对应的傅氏变换,那么

的功率谱便为

针对随机过程

,其平均功率谱密度定义为各样本功率谱密度的数学期望

3、作出仿真图

由于需要作出的图形较多,且图形间需要对比,故采用了两种视图进行绘图,一是各个占空比的RZ码波形图和其功率谱进行横向对比,二是分别作出各占空比下的单双极性归零码波形,以便于观察。

另外,各个占空比的RZ码波形和其频谱变换后的结果使用多行的矩阵进行存储,方便最后作图,因而代码显得有些冗余。

可改用定义函数,输入参数的方式给出不同占空比下的计算与绘图。

四、程序框图

对于单极性归零码:

对于双极性归零码:

五、仿真源代码

%%Thisisexp11ofcommunicationmatlabexperiment.

%Simulatedigitalcodingwaveanditspowerspectrum

%dutyratio25%,50%,75%,100%

%bothbipolarandunipolarRZcode

%Prepareworkspace

clearall

closeall

%--------------------------------------------------------------------

%commondefinitions

ratio=[0.25,0.5,0.75,1];

L=128;%samplepointseverybitinterval

N=2^14;%totalsamplepoints

M=N/L;%totalbits

Rs=10;%kbit/s

Ts=1/Rs;%bits'timeinterval

T=M*Ts;%period

fs=N/T;%samplingrate

t=-T/2:

1/fs:

T/2-1/fs;%timedomain

df=1/T;%minimumfrequency-domainresolution

f=-fs/2:

df:

fs/2-df;%frequecydomain

%--------------------------------------------------------------------

%%generateunipolarRZcode

%prelocatespaceforspeed

ratiolen=length(ratio);

Frz_unipolar=zeros(ratiolen,length(f));

Frz_bipolar=zeros(ratiolen,length(f));

rz_unipolar=zeros(ratiolen,L*M);

rz_bipolar=zeros(ratiolen,L*M);

%looptogenerateRZcodeindifferentdutyratio

EP1=zeros(size(f))+eps;

EP2=zeros(size(f))+eps;

forii=1:

ratiolen

forloop=1:

200

%generateunipolardata

unip=(randn(1,M)>0);

%generatebipolardata

bip=sign(randn(1,M));

tmp1=zeros(L,M);%zeromatrix:

LbyM

tmp2=zeros(L,M);

Lii=L*ratio(ii);%applydutyratio

tmp1(1:

Lii,:

)=ones(Lii,1)*unip;%unipolarRZcodematrix

tmp2(1:

Lii,:

)=ones(Lii,1)*bip;%bipolarRZcodematrix

rz_tmp1=tmp1(:

)';%unipolarrzcodearray

rz_tmp2=tmp2(:

)';%bipolarrzcodearray

Frz_tmp1=t2f(rz_tmp1,fs);%FourierTransform

Frz_tmp2=t2f(rz_tmp2,fs);

%P1=abs(Frz_tmp1).^2/T;

P1=Frz_tmp1.*conj(Frz_tmp1)/T;%PowerSpectrum

P2=Frz_tmp2.*conj(Frz_tmp2)/T;

EP1=(EP1*(loop-1)+P1+eps)/loop;

EP2=(EP2*(loop-1)+P2+eps)/loop;

end

%differentdutyratiocodeindifferentrow

EP11=10*log10(EP1);

EP22=10*log10(EP2);

rz_unipolar(ii,:

)=rz_tmp1;%timedomain

Frz_unipolar(ii,:

)=EP11;%frequecydomain

rz_bipolar(ii,:

)=rz_tmp2;

Frz_bipolar(ii,:

)=EP22;

end

%--------------------------------------------------------------------

%%visualizeunipolarRZcode

picnum=1;

%%firstview

%allinonefugure,subplot4by2

figure

(1)

forjj=1:

ratiolen

%plotwaveintime-domain

subplot(ratio

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1