通信原理课程设计.docx
- 文档编号:5359146
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:36
- 大小:139.09KB
通信原理课程设计.docx
《通信原理课程设计.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计.docx(36页珍藏版)》请在冰豆网上搜索。
通信原理课程设计
课程设计报告
基于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 原理 课程设计