文档库 最新最全的文档下载
当前位置:文档库 › MATLAB仿真含高斯噪声条件下解调信号的时域图

MATLAB仿真含高斯噪声条件下解调信号的时域图

clear all
dt=0.005; %设定步长 t=0:dt:3;
am=5; %调制信号幅度
fm=5; %调制信号频率
mt=am*cos(2*pi*fm*t); %生成调制信号
j_mt(1)=0;
for i=1:length(t)-1 %对调制信号求积分
j_mt(i+1)=j_mt(i)+mt(i)*dt;
end
fc=40;
ct=cos(2*pi*fc*t); %生成载波
kf=10; %调频灵敏度
sft=cos(2*pi*fc*t+kf*j_mt); %生成已调信号
figure(1) %绘制图形
subplot(3,1,1);plot(t,ct);
xlabel('t');title('载波时域图');
subplot(3,1,2);plot(t,mt);
xlabel('t');title('调制信号时域图');
subplot(3,1,3);plot(t,sft);
xlabel('t');title('已调信号时域图');
%**********************************
%*********高斯白噪声****************
sn=30; %设定信噪比
db=am^2/(2*(10^(sn/10))); %计算高斯白噪声方差
n=sqrt(db)*randn(size(t)); %生成高斯白噪声
nsfm=n+sft; %含高斯白噪声已调信号
figure(2)
plot(t,nsfm); %绘制含高斯白噪声已调信号时域图
xlabel('t');title('含高斯白噪声已调信号时域图');
%**********************************
%********FM解调********************
%***无噪声条件下的解调***
nsfm1=sft; %无噪声的已调信号
for i=1:length(t)-1 %信号通过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
end
diff_nsfmn=abs(hilbert(diff_nsfm1)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
diff_nsfmn1=diff_nsfmn-zero;
figure(3)
subplot(2,1,1);
plot(t,nsfm1);
xlabel('时间t');
title('无噪声条件已调信号');
subplot(2,1,2);
plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
xlabel('时间t');
title('无噪声条件下解调信号的时域图');
%***有高斯噪声条件下的解调***
nsfm=n+sft; %含高斯白噪声已调信号
for i=1:length(t)-1 %信号通过微分器处理
diff_nsfm2(i)=(nsfm(i+1)-nsfm(i))./dt;
end
diff_nsfmn2=abs(hilbert(diff_nsfm2)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero1=(max(diff_nsfmn2)-min(diff_nsfmn2))/2;
diff_nsfmn3=diff_nsfmn-zero1;
figure(4)
subplot(2,1,1);
plot(t,nsfm);
xlabel('时间t');
title('含高斯噪声已调信号');
subplot(2,1,2);
plot((1:length(diff_nsfmn3))./1000,diff_nsfmn3./400,'r');
xlabel('时间t');
title('含高斯噪声条件下解调信号的时域图');

相关文档