资源描述
重庆邮电大学移通学院
《FM调制和解调电路设计》课程设计
级 电子信息工程 专业 06111202 班级
题 目 FM调制解调电路设计
姓 名 王 优 学号 213176
指导老师 曹 礼 华
4 月 15 日
内 容 摘 要
在日常应用中FM广泛应用于电视信号传输、卫星和电话系统等。
FM调制解调电路设计关键是经过对模拟通信系统关键原理和技术进行研究,了解FM调制原理和FM电路调制解调基础过程,学会建立FM调制模型并利用集成环境下M文件,对FM调制解调电路进行设计和仿真,并分别绘制出它基带信号,载波信号,及已调信号时域波形;再深入分别绘制出对已调信号叠加噪声后信号,相干解调后信号和解调基带信号时域波形;最终绘出FM基带信号经过以上信道和调制解调系统后误码率和信噪比关系,并经过和理论结果波形对比来分析此仿真调制和解调电路正确性和噪声对信号解调影响。在本课程设计中,系统开发平台为Windows XP,使用工具软件为MATLAB 7.0。在该平台运行程序完成了对FM调制和解调和对叠加噪声后解调结果观察。经过本课程设计,达成了实现FM信号经过噪声信道,调制和解调系统仿真目标。从而了解FM调制解调系统优点和缺点,有利于以后设计应用。
关 键 词
解调;MATLAB仿真;信噪比;FM;调制
一、 MATLAB软件介绍
MATLAB是由美国mathworks企业公布关键面对科学计算、可视化和交互式程序设计高科技计算环境。它将数值分析、矩阵计算、科学数据可视化和非线性动态系统建模和仿真等很多强大功效集成在一个易于使用视窗环境中,为科学研究、工程设计和必需进行有效数值计算众多科学领域提供了一个全方面处理方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)编辑模式,代表了当今国际科学计算软件优异水平。
MATLAB和mathematica、maple并称为三大数学软件。它以矩阵为基础数据单位,在数学类科技应用软件中在数值计算方面首屈一指。MATLAB能够进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连
matlab开发工作界面
接其它编程语言程序等,关键应用于工程计算、控制设计、信号处理和通讯、图像处理、信号检测、金融建模设计和分析等领域。
二、 理论分析
2.1 通常通信系统
通信根本目标是信息交流和传输信息。通常来说通信系统作用就是将一个信息从信息源经过信道发送到一个或多个目标地。对于任何一个通信系统,全部能够视为由发送端、信道和接收端三大部分组成(图1所表示)。
信息源
发送设备
信 道
接收设备
信息源
噪声源
发送端
接收端
信道
图1 通信系统通常模型
2.2 FM调制原理
调制在通信系统中有着十分关键作用。从首先说,经过调制能够把原有基带信号频谱搬移到所大家期望位置上去,从而将需要调制信号转换成适合于信道传输或便于信道多路复用已调信号。而第二方面,经过调制能够将信号在经过信道时抗干扰能力提升,而且,她和传输效率息息相关。具体地讲,用不一样调制方法,已调信号带宽会有所不一样,从而影响传输带宽利用率。从这里能够看出,通信系统性能往往由调制方法决定。在本课程设计过程中我们选择事调频调制方法。
调制过程从根本上来说就是一个频谱搬移过程,就是将低频信号频谱搬移到载频位置。而解调是相反过程,它是将处于载频信号频谱再搬回来,而且尽可能确保其不失真地恢复出原始基带信号。在本课程设计过程中我们选择事非相干解调方法来进行信号解调。
频率(FM)调制名称源于m(t)和已调信号频率呈线性关系。FM调制就是将调制信号改变映射到已调信号频率大小。
假如设调制信号为m(t),调频信号数学表示式为
比如:m(t)时域波形为
m(t)
1
0 0.5 1 t
-1
FM调频波:
FM信号
2.3 FM调制模型建立
图2 FM调制模型
其中,为基带调制信号,设调制信号为
假设正弦载波为
那么能够得到已调调频信号为
假如设信号传输信道为高斯白噪声信道,其功率为。
2.2 调制过程分析
在进行调制时候,调制信号频率去控制载波频率改变,载波瞬时频偏会随调制信号成正百分比改变,即
式中,为调频灵敏度()。
此时相位偏移为
那么可得到调频信号为
调制信号产生M文件:
dt=0.001; %设定时间步长
t=0:dt:1.5; %产生时间向量
am=15; %设定调制信号幅度←可更改
fm=15; %设定调制信号频率←可更改
mt=am*cos(2*pi*fm*t); %生成调制信号
fc=50; %设定载波频率←可更改
ct=cos(2*pi*fc*t); %生成载波
kf=10; %设定调频指数
int_mt(1)=0; %对mt进行积分
for i=1:length(t)-1
int_mt(i+1)=int_mt(i)+mt(i)*dt;
end
sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt); %调制,产生已调信号
图3 FM调制
2.3 建立FM解调模型
借条调制信号方法分为非相干解调和相干解调两种。相干解调仅仅适适用于解调窄带调频信号,而且需要同时信号,所以应用范围受限;不过非相干解调不需同时信号,而且对于NBFM信号和WBFM信号全部是适用,所以是FM系统关键解调方法。在本课程设计过程中我们选择事非相干解调方法来进行解调。
图4 FM解调模型
非相干解调器组成:鉴频器、低通滤波器、限幅器等。结构图图5所表示。限幅器输入是已调频信号和噪声,限幅器作用是为了消除接收信号在幅度上可能出现畸变;带通滤波器是用来限制带外噪声,使调频信号顺利经过。鉴频器中微分器会把调频信号变成调幅调频波,以后经过包络检波器检出包络,最终经过低通滤波器取出调制好调制信号。
2.4 解调过程分析
设输入调频信号为
用微分器把调频信号变成调幅调频波。此时微分器输出为
包络检波作用是从输出信号幅度改变中检出调制信号。包络检波器输出为
称为鉴频灵敏度(),是已调信号单位频偏对应调制信号幅度,经低通滤波器后加隔直流电容,隔除无用直流,得
微分器经过程序实现,代码以下:
for i=1:length(t)-1 %接收信号经过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn = abs(hilbert(diff_nsfm)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)
经过M文件绘制出两种不一样信噪比解调输出波形以下:
图5 FM解调
2.5 高斯白噪声信道特征
假设正弦波经过加性高斯白噪声信道后信号为
其中,白噪声取值概率分布服从高斯分布。
因为MATLAB本身自带了标准高斯分布内部函数。函数产生随机序列服从均值为,方差高斯分布。
正弦波经过加性高斯白噪声信道后信号为
那么有用信号功率为
噪声功率为
信噪比满足公式
综上可得到公式
我们能够经过这个公式方便设置高斯白噪声方差。
在本仿真过程中,我们选择了10db和30db两种不一样信噪比以示区分,其时域图图7和图8。
图6 无噪声条件下已调信号时域图
图7 含小信噪比高斯白噪声已调信号时域图
图8 含大信噪比高斯白噪声已调信号时域图
2.6 调频系统抗噪声性能分析
依据前面分析能够得到,调频信号解调有相干解调和非相干解调两种方法。相干解调仅仅适适用于窄带调频信号,而且需要同时信号;不过非相干解调适适用于窄带和宽带调频信号,而且不需要同时信号,所以非相干解调是FM系统关键解调方法,所以在这里我们之讨论非相干解调系统抗噪声性能,其分析模型图9所表示。
图9 调频系统抗噪声性能分析模型
图中带通滤波器是用来抑制信号带宽以外噪声。是均值为零,单边功率谱密度为高斯白噪声,经过带通滤波器后变为窄带高斯噪声 。限幅器作用是用来消除接收信号在幅度上可能出现畸变。
设调频信号为
故其输入功率为
输入噪声功率为
所以输入信噪比为
假如是在大信噪比条件下,噪声和信号相互作用能够忽略,这时能够把信号和噪声分开来算,这里,我们能够得到解调器输出信噪比
上面公式中,为载波振幅,为调频器灵敏度,为调制信号最高频率,为噪声单边功率谱密度。
我们假如考虑是单一频率余弦波时情况,能够得到解调器制度增益为
假如考虑在宽带调频时,那么信号带宽为
就能够得到
能够看出,大信噪比时宽带调频系统信噪比增益很高,它和调频指数立方成正比。所以,加大调频指数,能够使得调频系统抗噪声性能得到快速改善。不过加大调频指数,又会增大信号所占用带宽,能够说FM调制大信噪比是牺牲带宽来换取。
多种调制解调方法传输增益和所占带宽各有不一样,我们可依据实际情况选择比较适宜调制解调方法,下表列出了多个方法各项指标(表2.1 ):
调制
方法
传输带宽
实现难易
线
性
调
制
AM
2B
最简单
DSB-SC
2B
1
复杂
SSB
B
1
最复杂
VSB
1
中等
非
线
性
调
制
FM
简单
PM
复杂
表2.1 模拟调制系统带宽和噪声性能
三.仿真实现
图10 程序步骤图
3.1 MATLAB源代码
%FM调制解调系统.m
%频率调制和解调Matlab演示源程序
%能够任意改原调制信号函数m(t)
%电子信息工程 杜怀超
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
%*****************初始化******************
echo off
close all
clear all
clc
%*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
%****************FM调制*******************
dt=0.001; %设定时间步长
t=0:dt:1.5; %产生时间向量
am=5; %设定调制信号幅度
fm=5; %设定调制信号频率
mt=am*cos(2*pi*fm*t); %生成调制信号
fc=50; %设定载波频率
ct=cos(2*pi*fc*t); %生成载波
kf=10; %设定调频指数
int_mt(1)=0;
for i=1:length(t)-1
int_mt(i+1)=int_mt(i)+mt(i)*dt; %求信号m(t)积分
end %调制,产生已调信号
sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt); %调制信号
%*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
%*************添加高斯白噪声**************
sn1=10; %设定信躁比(小信噪比)
sn2=30; %设定信躁比(大信噪比)
sn=0; %设定信躁比(无信噪比)
db=am^2/(2*(10^(sn/10))); %计算对应高斯白躁声方差
n=sqrt(db)*randn(size(t)); %生成高斯白躁声
nsfm=n+sfm; %生成含高斯白躁声已调信号(信号通
%过信道传输)
%*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
%****************FM解调*******************
for i=1:length(t)-1 %接收信号经过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn = abs(hilbert(diff_nsfm)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn-zero;
%*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
%**************时域到频域转换**************
ts=0.001; %抽样间隔
fs=1/ts; %抽样频率
df=0.25; %所需频率分辨率,用在求傅里叶变换
%时,它表示FFT最小频率间隔
%*****对调制信号m(t)求傅里叶变换*****
m=am*cos(2*pi*fm*t); %原调信号
fs=1/ts;
if nargin==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)];
df1=fs/n; %以上程序是对调制后信号u求傅里变换
M=M/fs; %缩放,便于在频铺图上整体观察
f=[0:df1:df1*(length(m)-1)]-fs/2; %时间向量对应频率向量
%************对已调信号u求傅里变换**********
fs=1/ts;
if nargin==2
n1=0;
else
n1=fs/df;
end
n2=length(sfm);
n=2^(max(nextpow2(n1),nextpow2(n2)));
U=fft(sfm,n);
u=[sfm,zeros(1,n-n2)];
df1=fs/n; %以上是对已调信号u求傅里变换
U=U/fs; %缩放
%******************************************
%*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
%***************显示程序******************
disp('按任意键能够看到原调制信号、载波信号和已调信号曲线')
pause
%**************figure(1)******************
figure(1)
subplot(3,1,1);plot(t,mt); %绘制调制信号时域图
xlabel('时间t');
title('调制信号时域图');
subplot(3,1,2);plot(t,ct); %绘制载波时域图
xlabel('时间t');
title('载波时域图');
subplot(3,1,3);
plot(t,sfm); %绘制已调信号时域图
xlabel('时间t');
title('已调信号时域图');
%******************************************
disp('按任意键能够看到原调制信号和已调信号在频域内图形')
pause
%************figure(2)*********************
figure(2)
subplot(2,1,1)
plot(f,abs(fftshift(M))) %fftshift:将FFT中DC分量移到频谱中心
xlabel('频率f')
title('原调制信号频谱图')
subplot(2,1,2)
plot(f,abs(fftshift(U)))
xlabel('频率f')
title('已调信号频谱图')
%******************************************
disp('按任意键能够看到原调制信号、无噪声条件下已调信号和解调信号曲线')
pause
%**************figure(3)******************
figure(3)
subplot(3,1,1);plot(t,mt); %绘制调制信号时域图
xlabel('时间t');
title('调制信号时域图');
subplot(3,1,2);plot(t,sfm); %绘制已调信号时域图
xlabel('时间t');
title('无噪声条件下已调信号时域图');
nsfm=sfm;
for i=1:length(t)-1 %接收信号经过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn = abs(hilbert(diff_nsfm)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn-zero;
subplot(3,1,3); %绘制无噪声条件下解调信号时域图
plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
xlabel('时间t');
title('无噪声条件下解调信号时域图');
%*****************************************
disp('按任意键能够看到原调制信号、小信噪比高斯白噪声条件下已调信号和解调信号已调信号曲线')
pause
%**************figure(4)******************
figure(4)
subplot(3,1,1);plot(t,mt); %绘制调制信号时域图
xlabel('时间t');
title('调制信号时域图');
db1=am^2/(2*(10^(sn1/10))); %计算对应小信噪比高斯白躁声方差
n1=sqrt(db1)*randn(size(t)); %生成高斯白躁声
nsfm1=n1+sfm; %生成含高斯白躁声已调信号(信号通
%过信道传输)
for i=1:length(t)-1 %接收信号经过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
end
diff_nsfmn1 = abs(hilbert(diff_nsfm1)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn1-zero;
subplot(3,1,2);
plot(1:length(diff_nsfm),diff_nsfm); %绘制含小信噪比高斯白噪声已调信号时域图
xlabel('时间t');
title('含小信噪比高斯白噪声已调信号时域图');
subplot(3,1,3); %绘制含小信噪比高斯白噪声解调信号时域图
plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
xlabel('时间t');
title('含小信噪比高斯白噪声解调信号时域图');
%*****************************************
disp('按任意键能够看到原调制信号、大信噪比高斯白噪声条件下已调信号和解调信号已调信号曲线')
pause
%**************figure(5)******************
figure(5)
subplot(3,1,1);plot(t,mt); %绘制调制信号时域图
xlabel('时间t');
title('调制信号时域图');
db1=am^2/(2*(10^(sn2/10))); %计算对应大信噪比高斯白躁声方差
n1=sqrt(db1)*randn(size(t)); %生成高斯白躁声
nsfm1=n1+sfm; %生成含高斯白躁声已调信号(信号经过信道传输)
for i=1:length(t)-1 %接收信号经过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
end
diff_nsfmn1 = abs(hilbert(diff_nsfm1)); %hilbert变换,求绝对值得到瞬时幅度(包
%络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn1-zero;
subplot(3,1,2);
plot(1:length(diff_nsfm1),diff_nsfm1); %绘制含大信噪比高斯白噪声已调信号
%时域图
xlabel('时间t');
title('含大信噪比高斯白噪声已调信号时域图');
subplot(3,1,3); %绘制含大信噪比高斯白噪声解调信号
%时域图
plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
xlabel('时间t');
title('含大信噪比高斯白噪声解调信号时域图');
%*****************************************
%******************结 束*******************
3.2 仿真结果
四.心得和体会
课程设计是学生综合利用所学知识能力一次测验,分析和处理实际问题,是锻炼实践能力一个很好地方法。在这次课程设计过程中,从理论到实践转变,自己翻阅书籍和查找资料,也了解到了MATLAB程序在实际应用中超强涌入,在这段时间里,设计,反复修改,尝试,即使是不是熬夜,不过也学到了很多不一样知识,不仅巩固了以前所学过知识,还学到了很多在书本上根本学不到知识。经过这次课程设计我明白了理论到实际转变是有一定难度,仅仅学习理论知识不用来实践是不够,只有把理论知识和实践结合起来,从实践中得到感悟体会,提升自己实际动手能力和独立思索能力。即使设计过程中碰到多种多样问题,能够说是困难重重,因为这毕竟第一次做,碰到多种问题也很正常,不过当这些问题被处理时候往往有一个从心底散发出来自豪感,在设计过程中发觉了自己不足之处,加以改善……经过这次课程设计种种困难挫折,我愈加熟练会使用软件来处理问题。
五.参考文件
[1]《通信原理》 李晓峰等。 北京:清华大学出版社。
[2]《7.0在数字信号处理中应用》 罗军辉等。北京:机械工业出版社。
[3]《MATLAB程序设计教程》 刘卫国等。 北京:中国水利水电出版社。
[4]《MATLAB编程(第4版)》 Stephen J.Chapman 著。北京:科学出版社。
[5]《精通 MATLAB最优化计算》 龚纯 王正林等。 电子工业出版社。
展开阅读全文