matlab FM调制仿真Word下载.docx
《matlab FM调制仿真Word下载.docx》由会员分享,可在线阅读,更多相关《matlab FM调制仿真Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
这就就就是调制得过程。
信号通过信道传输后,具有将信号放大与反变换功能得接收端将已调制得信号搬移(解调)到原来得频率范围,这就就就是解调得过程。
信号在信道中传输得过程总会受到噪声得干扰,通信系统中没有传输信号时也有噪声,噪声永远存在于通信系统中。
由于这样得噪声就就是叠加在信号上得,所以有时将其称为加性噪声。
噪声对于信号得传输就就是有害得,它能使模拟信号失真。
在本仿真得过程中我们假设信道为高斯白噪声信道。
调制在通信系统中具有十分重要得作用。
一方面,通过调制可以把基带信号得频谱搬移到所希望得位置上去,从而将调制信号转换成适合于信道传输或便于信道多路复用得已调信号。
另一方面,通过调制可以提高信号通过信道传输时得抗干扰能力,同时,它还与传输效率有关。
具体地讲,不同得调制方式产生得已调信号得带宽不同,因此调制影响传输带宽得利用率。
可见,调制方式往往决定一个通信系统得性能。
在本仿真得过程中我们选择用调频调制方法进行调制。
而解调就就是将位于载频得信号频谱再搬回来,并且不失真地恢复出原始基带信号。
在本仿真得过程中我们选择用非相干解调方法进行解调。
2、1FM调制模型得建立
图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进行积分
fori=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);
ﻩﻩ%调制,产生已调信号
图3FM调制
2、3 FM解调模型得建立ﻩ
调制信号得解调分为相干解调与非相干解调两种。
相干解调仅仅适用于窄带调频信号,且需同步信号,故应用范围受限;
而非相干解调不需同步信号,且对于NBFM信号与WBFM信号均适用,因此就就是FM系统得主要解调方式。
图4 FM解调模型
非相干解调器由限幅器、鉴频器与低通滤波器等组成,其方框图如图5所示。
限幅器输入为已调频信号与噪声,限幅器就就是为了消除接收信号在幅度上可能出现得畸变;
带通滤波器得作用就就是用来限制带外噪声,使调频信号顺利通过。
鉴频器中得微分器把调频信号变成调幅调频波,然后由包络检波器检出包络,最后通过低通滤波器取出调制信号。
2、4解调过程分析ﻩ
设输入调频信号为
微分器得作用就就是把调频信号变成调幅调频波。
微分器输出为
包络检波得作用就就是从输出信号得幅度变化中检出调制信号。
包络检波器输出为
称为鉴频灵敏度(),就就是已调信号单位频偏对应得调制信号得幅度,经低通滤波器后加隔直流电容,隔除无用得直流,得
微分器通过程序实现,代码如下:
length(t)-1 %接受信号通过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))、/dt;
end
diff_nsfmn=abs(hilbert(diff_nsfm));
%hilbert变换,求绝对值得到瞬时幅度(包络检波)
通过M文件绘制出两种不同信噪比解调得输出波形如下:
图5FM解调
2、5 高斯白噪声信道特性
设正弦波通过加性高斯白噪声信道后得信号为
其中,白噪声得取值得概率分布服从高斯分布。
MATLAB本身自带了标准高斯分布得内部函数。
函数产生得随机序列服从均值为,方差得高斯分布。
正弦波通过加性高斯白噪声信道后得信号为
故其有用信号功率为
噪声功率为
信噪比满足公式
则可得到公式
我们可以通过这个公式方便得设置高斯白噪声得方差。
在本仿真过程中,我们选择了10db与30db两种不同信噪比以示区别,其时域图如图7与图8。
图6 无噪声条件下已调信号得时域图
图7含小信噪比高斯白噪声已调信号得时域图
图8 含大信噪比高斯白噪声已调信号得时域图
2、6 调频系统得抗噪声性能分析
从前面得分析可知,调频信号得解调有相干解调与非相干解调两种。
相干解调仅适用于窄带调频信号,且需同步信号;
而非相干解调适用于窄带与宽带调频信号,而且不需同步信号,因而就就是FM系统得主要解调方式,所以这里仅仅讨论非相干解调系统得抗噪声性能,其分析模型如图9所示。
图9 调频系统抗噪声性能分析模型
图中带通滤波器得作用就就是抑制信号带宽以外得噪声。
就就是均值为零,单边功率谱密度为得高斯白噪声,经过带通滤波器后变为窄带高斯噪声 。
限幅器就就是为了消除接收信号在幅度上可能出现得畸变。
设调频信号为
故其输入功率为
输入噪声功率为
因此输入信噪比为
在大信噪比条件下,信号与噪声得相互作用可以忽略,这时可以把信号与噪声分开来算,这里,我们可以得到解调器得输出信噪比
上式中,为载波得振幅,为调频器灵敏度,为调制信号得最高频率,为噪声单边功率谱密度。
我们如若考虑为单一频率余弦波时得情况,可得到解调器得制度增益为
考虑在宽带调频时,信号带宽为
则可以得到
可以瞧出,大信噪比时宽带调频系统得信噪比增益就就是很高得,它与调频指数得立方成正比。
可见,加大调频指数,可使调频系统得抗噪声性能迅速改善。
三、仿真实现
图10程序流程图
3、1MATLAB源代码
%FM调制解调系统、m
%频率调制与解调得Matlab演示源程序
%可以任意改原调制信号函数m(t)
%信息工程 陈丽丹07323202
%·
*·
*·
%*****************初始化******************
echooff
close all
clearall
clc
%*****************************************
%****************FM调制*******************
dt=0、001;
%设定时间步长
t=0:
dt:
%产生时间向量
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;
fori=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解调*******************
fori=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;
ifnargin==2
n1=0;
else
n1=fs/df;
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'
原调制信号得频谱图'
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('
title('
subplot(3,1,2);
plot(t,sfm);
ﻩﻩ %绘制已调信号得时域图
xlabel('
title('
无噪声条件下已调信号得时域图'
nsfm=sfm;
fori=1:
length(t)-1 %接受信号通过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))、/dt;
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('
title('无噪声条件下解调信号得时域图'
%*****************************************
disp('
按任意键可以瞧到原调制信号、小信噪比高斯白噪声条件下已调信号与解调信号已调信号得曲线'
pause
%**************figure(4)******************
figure(4)
subplot(3,1,1);
plot(t,mt);
ﻩ %绘制调制信号得时域图
xlabel('
title('
db1=am^2/(2*(10^(sn1/10)));
%计算对应得小信噪比高斯白躁声得方差
n1=sqrt(db1)*randn(size(t));
%生成高斯白躁声
nsfm1=n1+sfm;
%生成含高斯白躁声得已调信号(信号通
%过信道传输)
fori=1:
length(t)-1 %接受信号通过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))、/dt;
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('
title('
含小信噪比高斯白噪声已调信号得时域图');
subplot(3,1,3);
%绘制含小信噪比高斯白噪声解调信号得时域图
plot((1:
length(diff_nsfmn1))、/1000,diff_nsfmn1、/400,'
r'
title('含小信噪比高斯白噪声解调信号得时域图');
%*****************************************
disp('按任意键可以瞧到原调制信号、大信噪比高斯白噪声条件下已调信号与解调信号已调信号得曲线')
%**************figure(5)******************
figure(5)
subplot(3,1,1);
plot(t,mt);
ﻩ %绘制调制信号得时域图
title('
调制信号得时域图');
db1=am^2/(2*(10^(sn2/10)));
%计算对应得大信噪比高斯白躁声得方差
n1=sqrt(db1)*randn(size(t));
%生成高斯白躁声
nsfm1=n1+sfm;
%生成含高斯白躁声得已调信号(信号通过信道传输)
fori=1:
length(t)-1 %接受信号通过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))、/dt;
diff_nsfmn1=abs(hilbert(diff_nsfm1));
%hilbert变换,求绝对值得到瞬时幅度(包
%络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn1-zero;
subplot(3,1,2);
length(diff_nsfm1),diff_nsfm1);
%绘制含大信噪比高斯白噪声已调信号
%得时域图
时间t'
title('含大信噪比高斯白噪声已调信号得时域图'
subplot(3,1,3);
%绘制含大信噪比高斯白噪声解调信号
%得时域图
plot((1:
length(diff_nsfmn1))、/1000,diff_nsfmn1、/400,'r'
title('
含大信噪比高斯白噪声解调信号得时域图');
%*****************************************
%******************结 束*******************
3、2 仿真结果
四、心得体会ﻩ
课程设计就就是培养学生综合运用所学知识,发现,提出,分析与解决实际问题,锻炼实践能力得重要环节,就就是对学生实际工作能力得具体训练与考察过程、 回顾起此次通信原理课程设计,至今我仍感慨颇多,得确,从选题到定稿,从理论到实践,在整整一星期得日子里,可以说得就就是苦多于甜,但就就是可以学到很多很多得得东西,同时不仅可以巩固了以前所学过得知识,而且学到了很多在书本上所没有学到过得知识。
通过这次课程设计