clc;
clear all;
close all;
%信源
a=randint(1,15,2);
t=0:0.001:0.999;
m=a(ceil(15*t+0.01));
subplot(511)
plot(t,m);
axis([0 1.2 -0.2 1.2]);
title('信源');
%载波
f=150;
carry=cos(2*pi*f*t);
%2ASK调制
st=m.*carry;
subplot(512);
plot(t,st)
axis([0 1.2 -1.2 1.2])
title('2ASK信号')
%加高斯噪声
nst=awgn(st,70);
%解调部分
nst=nst.*carry;
subplot(513)
plot(t,nst)
axis([0 1.2 -0.2 1.2]);
title('乘以相干载波后的信号')
%低通滤波器设计
wp=2*pi*2*f*0.5;
ws=2*pi*2*f*0.9;
Rp=2;
As=45;
[N,wc]=buttord(wp,ws,Rp,As,'s');
[B,A]=butter(N,wc,'s'); %低通滤波
h=tf(B,A); %转换为传输函数
dst=lsim(h,nst,t);
subplot(514)
plot(t,dst)
axis([0 1.2 -0.2 1.2]);
title('经过低通滤波器后的信号');
%判决器
k=0.25;
pdst=1*(dst>0.25);
subplot(515)
plot(t,pdst)
axis([0 1.2 -0.2 1.2]);
title('经过抽样判决后的信号')
%频谱观察
%调制信号频谱
T=t(end);
df=1/T;
N=length(st);
f=(-N/2:N/2-1)*df;
sf=fftshift(abs(fft(st)));
figure(2)
subplot(411)
plot(f,sf)
title('调制信号频谱')
%信源频谱
mf=fftshift(abs(fft(m)));
subplot(412)
plot(f,mf)
title('信源频谱')
% 乘以相干载波后的频谱
mmf=fftshift(abs(fft(nst)));
subplot(413)
plot(f,mmf)
title('乘以相干载波后的频谱')
%经过低通滤波后的频谱
dmf=fftshift(abs(fft(pdst)));
subplot(414)
plot(f,dmf)
title('经过低通滤波后的频谱'); |