通信原理课程设计.docx

上传人:b****3 文档编号:5359146 上传时间:2022-12-15 格式:DOCX 页数:36 大小:139.09KB
下载 相关 举报
通信原理课程设计.docx_第1页
第1页 / 共36页
通信原理课程设计.docx_第2页
第2页 / 共36页
通信原理课程设计.docx_第3页
第3页 / 共36页
通信原理课程设计.docx_第4页
第4页 / 共36页
通信原理课程设计.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

通信原理课程设计.docx

《通信原理课程设计.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计.docx(36页珍藏版)》请在冰豆网上搜索。

通信原理课程设计.docx

通信原理课程设计

课程设计报告

基于MATLAB的模拟调制系统仿真与测试

 

课程名称通信原理课程设计

专业班级通信工程2班

学号

姓名马腾刘树会聂庆超彭存超

孙永强于斌刘春刚

2012年12月27日

目录

 

1、设计题目·················3

2、设计原理·················3

3、设计主程序················4

4、设计调用子函数··············8

5、Matlab程序运行结果···········10

6、参考文献·················13

 

一.设计题目

基于MATLAB的模拟调制系统仿真与测试

二.设计原理

1.1模拟调制

模拟调制包括幅度调制(DSB,SSB,AM)和相角调制(频率和相位调制)。

幅度调制(线性调制)是正弦载波的幅度随着调制信号而改变的调制方案。

若调制信号

频谱为

,带宽为

,SSB调制的带宽为

,DSB和AM调制的带宽为2。

VSB-AM的带宽在-2区间内。

AM调制与DSB调制在许多方面十分相似,唯一区别在于AM调制用

代替DSB的。

调制器模型如图所示

假设被调信号

是零均值信号,则调制信号的功率为

为调制信号平均功率,

为边带功率,

为载波功率。

调制信号中用于发送信息的功率和总功率的比值称为调制效率,

解调器输入信噪比定义为

为理想带通滤波器带宽,在理想信道中,当带通滤波器幅频特性为常数1时,

,即可由解调器输入信噪比计算出信道噪声的单边带功率谱密度,而当系统抽样速率为

时,产生的高斯白噪声带宽为

,由此可计算出信道中高斯白噪声的平均功率,即方差

,从而利用有关知识可以产生信道中所叠加的高斯白噪声。

1.2信道加性高斯白噪声

信道中加性高斯白噪声功率由于其均值为0,故其方差

即为其平均功率,其中

为高斯白噪声单边带功率谱密度;B为信道带宽。

在图1中,信道噪声的功率谱密度图可以看出,当=16Hz时,叠加于信道的高斯噪声带宽为8Hz,信道中的加性高斯白噪声通过带宽为2Hz,幅度为1的理想带通滤波器后,输出的窄带噪声的平均功率即为相干解调器输入噪声的平均功率

,其功率谱密度不变,仍为

可以看出,

与信道加性高斯白噪声功率

之间有一定的关系,其共同点是其功率谱密度相同,从图1也可以观察出来,为-20dB。

因此,在理想通信系统中,利用已给解调器输入信噪比及已调信号功率和带宽,可以计算出

,从而算出信道加性高斯白噪声的方差,由于其均值为0,故该方差为其平均功率,利用它可以生成信道加性高斯白噪声。

转换关系为:

,因此

,E是接收信号平均能量。

图1系统采样频率为16Hz时的噪声

1.3实验内容

调制信号为

,利用AM调制方式调制载波

,假设

,直流分量为3,采样频率1000Hz,解调器输入信噪比为25dB,采用相干方式解调编写matlab程序实现AM信号的调制解调。

 

三、Matlab实现:

主程序

%AM调制解调

clearall;closeall;echoon

%----------------系统仿真参数

A=3;%直流分量

fc=250;%载波频率(Hz)

t0=0.15;%信号时长

snr=25;%解调器输入信噪比dB

dt=0.001%系统时域采样间隔

fs=1/dt;%系统采样频率

df=0.2;%所需的频率分辨率

t=0:

dt:

t0;

Lt=length(t);%仿真过程中,信号长度

snr_lin=10^(snr/10);%解调器输入信噪比

%-------------画出调制信号波形及频谱

%产生模拟调制信号

m=[ones(1,t0/(3*dt)),-2*ones(1,t0/(3*dt)),zeros(1,t0/(3*dt)+1)];

L=2*min(m);

R=2*max(abs(m))+A;

pause%画出调制信号波形及频谱

clf

figure

(1)

subplot(321);

plot(t,m(1:

length(t)));%画出调制信号波形

axis([0t0-R/2R/2]);

xlabel('t');

ylabel('调制信号');

subplot(322);

[M,m,df1,f]=T2F(m,dt,df,fs);%求出调制信号频谱

[Bw_eq]=signalband(M,df,t0);%求出信号等效带宽

f_start=fc-Bw_eq;

f_cutoff=fc+Bw_eq;

plot(f,fftshift(abs(M)))%画出调制信号频谱

xlabel('f');ylabel('调制信号频谱');

pause%画出载波及频谱

subplot(323);

c=cos(2*pi*fc*t);%载波

plot(t,c);

axis([0t0-1.21.2]);

xlabel('t');ylabel('载波');

subplot(324)%载波频谱

[C,c,df1,f]=T2F(c,dt,df,fs);

plot(f,fftshift(abs(C)))%画出载波频谱

xlabel('f');ylabel('载波频谱');

pause%画已调信号及其频谱

subplot(325)%画已调信号

u=(A+m(1:

Lt)).*c(1:

Lt);%已调信号

plot(t,u);%画出已调信号波形

axis([0t0-RR]);

xlabel('t');ylabel('已调信号');

subplot(326);

[U,u,df1,f]=T2F(u,dt,df,fs);

plot(f,fftshift(abs(U)))%画出已调信号频谱

xlabel('f');ylabel('已调信号频谱');

%先根据所给信噪比产生高斯白噪声

signal_power=power_x(u(1:

Lt));%已调信号的平均功率

noise_power=(signal_power*fs)/(snr_lin*4*Bw_eq);%求出噪声方差(噪声均值为0)

noise_std=sqrt(noise_power);%噪声标准偏差

noise=noise_std*randn(1,Lt);%产生噪声

pause%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱

figure

(2)

subplot(321);

plot(t,noise);%画出噪声波形

axis([0t0-RR]);

xlabel('t');ylabel('噪声信号');

subplot(322);

[noisef,noise,df1,f]=T2F(noise,dt,df,fs);%噪声频谱

plot(f,fftshift(abs(noisef)))%画出噪声频谱

xlabel('f');ylabel('噪声频谱');

pause%画出叠加了噪声的已调信号波形及频谱

sam=u(1:

Lt)+noise(1:

Lt);%叠加了噪声的已调信号

subplot(323);%画出叠加了噪声的已调信号波形

plot(t,sam);

axis([0t0-RR]);

xlabel('t');

ylabel('信道中的信号');

subplot(324);

[samf,sam,df1,f]=T2F(sam,dt,df,fs);%求出叠加了噪声的已调信号频谱

plot(f,fftshift(abs(samf)))%画出叠加了噪声的已调信号频谱

xlabel('f');

ylabel('信道中信号频谱');

[H,f]=bp_f(length(sam),f_start,f_cutoff,df1,fs,1);%求带通滤波器

subplot(326);

plot(f,fftshift(abs(H)))%画出带通滤波器

xlabel('f');ylabel('带通滤波器');

pause%经过理想带通滤波器后的信号及其频谱

DEM=H.*samf;%滤波器输出的频谱

[dem]=F2T(DEM,fs);%滤波器的输出波形

figure(3)

subplot(321)%经过理想带通滤波器后的信号波形

plot(t,dem(1:

Lt))%画出经过理想带通滤波器后的信号波形

axis([0t0-RR]);

xlabel('t');

ylabel('理想BPF输出信号');

[demf,dem,df1,f]=T2F(dem(1:

Lt),dt,df,fs);%求经过理想带通滤波器后信号频谱

subplot(322)

plot(f,fftshift(abs(demf)));%画出经过理想带通滤波器后信号频谱

xlabel('f');

ylabel('理想BPF输出信号频谱');

%--------------和本地载波相乘,即混频

pause%混频后的信号,先画本地载波及其频谱

subplot(323)

plot(t,c(1:

Lt));

axis([0t0-1.21.2]);

xlabel('t');

ylabel('本地载波');

subplot(324)%载波频谱

[C,c,df1,f]=T2F(c(1:

Lt),dt,df,fs);

plot(f,fftshift(abs(C)))%画出载波频谱

xlabel('f');

ylabel('本地载波频谱');

pause%再画混频后信号及其频谱

der=dem(1:

Lt).*c(1:

Lt);%混频

subplot(325)%画出混频后的信号

plot(t,der);

axis([0t0-RR]);

xlabel('t');

ylabel('混频后的信号');

subplot(326)

[derf,der,df1,f]=T2F(der,dt,df,fs);%求混频后的信号频谱

plot(f,fftshift(abs(derf)))%画出混频后的信号的频谱

xlabel('f');

ylabel('混频后信号频谱');

pause%画出理想低通滤波器

figure(4)

[LPF,f]=lp_f(length(der),Bw_eq,df1,fs,2);%求低通滤波器

subplot(322)

plot(f,fftshift(abs(LPF)));%画出理想低通滤波器

xlabel('f');

ylabel('理想LPF');

pause%混频信号经理想低通滤波器后的频谱及波形

DM=LPF.*derf;%理想低通滤波器输出的频谱

[dm]=F2T(DM,fs);%滤波器的输出波形

subplot(323)

plot(t,dm(1:

Lt));%画出经过低通滤波器后的解调出的波形

axis([0t0-RR]);

xlabel('t');

ylabel('LPF输出信号');

subplot(324)

[dmf,dm,df1,f]=T2F(dm(1:

Lt),dt,df,fs);%求LPF输出信号的频谱

plot(f,fftshift(dmf));%画出LPF输出信号的频谱

xlabel('f');

ylabel('LPF输出信号频谱');

axis([-fs/2fs/200.5]);

%--------去除解调信号中的直流分量

pause%去除解调信号中的直流分量

dmd=dm(1:

Lt)-mean(dm(1:

Lt));

subplot(325)

plot(t,dmd);%画出恢复信号(去除直流分量)

axis([0t0-R/2R/2]);

xlabel('t');

ylabel('恢复信号');

[dmdf,dmd,df1,f]=T2F(dmd,dt,df,fs);%求恢复信号的频谱

subplot(326)

plot(f,fftshift(dmdf));%画出恢复信号的频谱

xlabel('f');

ylabel('恢复信号的频谱');

axis([-fs/2fs/200.2]);

subplot(321);

plot(t,m(1:

Lt));%画出调制信号波形

axis([0t0-R/2R/2]);

xlabel('t');

ylabel('调制信号');

调用子函数

●序列的傅立叶变换

function[M,m,df]=fftseq(m,ts,df)

%各参数含义与子函数T2F中的完全相同,完成

fs=1/ts;

ifnargin==2

n1=0;

else

n1=fs/df;

end

n2=length(m);

n=2^(max(nextpow2(n1),nextpow2(n2)));

M=fft(m,n);

m=[m,zeros(1,n-n2)];

df=fs/n;

●计算信号功率

functionp=power_x(x)

%x:

输入信号

%p:

返回信号的x功率

p=(norm(x).^2)./length(x);

●信号从频域转换到时域

function[m]=F2T(M,fs)

%-------------------------输入参数

%M:

信号的频谱

%fs:

系统采样频率

%--------------------输出(返回)参数

%m:

傅里叶逆变换后的信号,注意其长度为2的整数次幂,利用其画波形时,要注意选取m的一部分,选取长度和所给时间序列t的长度要一致,plot(t,m(1:

length(t))),否则会出错。

m=real(ifft(M))*fs;

●信号从时域转换到频域

function[M,m,df1,f]=T2F(m,ts,df,fs)

%------------------------输入参数

%m:

信号

%ts:

系统时域采样间隔

%df:

所需的频率分辨率

%fs:

系统采样频率

%---------------------输出(返回)参数

%M:

傅里叶变换后的频谱序列

%m:

输入信号参与过傅里叶变换后对应的序列,需要注意的是,该序列与输入信号m的区别,其长度是不一样的,输入的m长度不一定是2的整数次幂,而傅里叶变换要求输入信号长度为2的整数次幂,故傅里叶变换前需对输入的m信号进行补零,其长度有所增加,故输出参数中的m为补零后的输入信号,其长度与输入参数m不一样,但与M,f长度是一样的,并且,其与时间序列t所对应的序列m(1:

length(t))与输入参数中的m是一致的。

%df1:

返回的频率分辨率

%f:

与M相对应的频率序列

[M,m,df1]=fftseq(m,ts,df);

f=[0:

df1:

df1*(length(m)-1)]-fs/2;%频率向量

M=M/fs;

●带通滤波器

Function[H,f]=bp_f(n,f_start,f_cutoff,df1,fs,p)

%带通滤波器函数输入设计的滤波器参数,产生带通滤波器频率特性函数H和频率向量f

%------------------------输入参数

%n带通滤波器的输入信号长度

%f_start通带起始频率

%f_cutoff带通滤波器的截止频率

%df1频率分辨率

%fs抽样频率

%p滤波器幅度

%----------------------输出(返回)参数

%H带通滤波器频率响应

%f频率向量

%设计滤波器

n_cutoff=floor(f_cutoff/df1);

n_start=floor(f_start/df1);

f=[0:

df1:

df1*(n-1)]-fs/2;%频率向量

H=zeros(size(f));

H(n_start+1:

n_cutoff)=p*ones(1,n_cutoff-n_start);

H(length(f)-n_cutoff+1:

length(f)-n_start)=p*ones(1,n_cutoff-n_start);

●低通滤波器

function[H,f]=lp_f(n,f_cutoff,df1,fs,p)

%低通滤波器函数输入设计的滤波器参数,产生低通滤波器频率特性函数H和频率向量f

%------------------------输入参数

%n低通滤波器的输入信号长度

%f_cutoff低通滤波器的截止频率

%df1频率分辨率

%fs抽样频率

%p滤波器幅度

%---------------------输出(返回)参数

%H低通滤波器频率响应

%f频率向量

n_cutoff=floor(f_cutoff/df1);%设计滤波器

f=[0:

df1:

df1*(n-1)]-fs/2;%频率向量

H=zeros(size(f));

H(1:

n_cutoff)=p*ones(1,n_cutoff);

H(length(f)-n_cutoff+1:

length(f))=p*ones(1,n_cutoff);

●计算信号有效带宽

function[Bw_eq]=signalband(sf,df,T)

%计算信号等效带宽

%sf:

信号频谱

%df:

频率分辨率

%T:

信号持续时间

sf_max=max(abs(sf));

Bw_eq=sum(abs(sf).^2)*df/T/sf_max.^2

 

四Matlab程序运行结果:

figure

(1):

 

 

figure

(2)

 

figure(3):

 

figure(4):

五.参考文献

[1]西蒙・赫金.通信系统(第4版)[M].北京:

电子工业出版社,2003.

[2](美)JohnG.proakis,MasoudSalehi,GerhardBauch.现代通信原理(MATLAB版)(第二版)[M].北京:

电子工业出版社,2005.

[3]邓 华.MATLAB通信仿真及应用实例详解[M].北京:

人民邮电出版社,2003

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

当前位置:首页 > 自然科学 > 物理

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

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