郑州航院
3.2 MATLAB源代码
%FM调制解调系统.m
%频率调制与解调的Matlab演示源程序 %可以任意改原调制信号函数m(t)
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*· %*****************初始化****************** echo off close all clear all clc
%*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*· %****************FM调制******************* dt=0.001; t=0:dt:2.0;
ac=5; %设定调制信号幅度 fm1=5; %设定调制信号频率 mt=ac*cos(2*pi*fm1*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=ac*cos(2*pi*fc*t+2*pi*kf*int_mt); %调制信号 %*****************************************
%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*· %*************添加高斯白噪声**************
sn1=10; %设信躁比(小信噪比) sn2=30; %设信躁比(大信噪比) sn=0; %设信躁比(无信噪比)
db=ac^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;