本篇讨论各种模拟调制与解调系统的性能,包括幅度调制(AM)和角度调制(包括频率调制(FM)和相位调制(PM))。
(一 )AM信号的仿真
例 消息信号是[-3 3]均匀分布的随机整数,产生的时间间隔为1/10s,用AM方法调制载波cos(2*pi*fc*t),假设fc=100,A0=4,0<=t<=10,试求:
(1)消息信号和已调信号的频谱。
(2)已调信号的功率和调制效率。
clear all
ts=0.0025;
t=0:ts:10-ts;
fs=1/ts;
df=fs/length(t);
msg=randint(100,1,[-3,3],123);
msg1=msg*ones(1,fs/10);
msg2=reshape(msg1.',1,length(t));
Pm=fft(msg2)/fs;
f=-fs/2:df:fs/2-df;
subplot(2,1,1)
plot(f,fftshift(abs(Pm)))
title('消息信号频谱')
A=4;
fc=100;
Sam=(A+msg2).*cos(2*pi*fc*t);
Pam=fft(Sam)/fs;
subplot(2,1,2)
plot(f,fftshift(abs(Pam)))
title('AM信号频谱')
axis([-200 200 0 23])
Pc=sum(abs(Sam).^2)/length(Sam)
Ps=Pc-A^2/2
eta=Ps/Pc
(二)AM信号的解调
例 消息信号是[-3 3]均匀分布的随机整数,产生的时间间隔为1/2s,用AM方法调制载波cos(2*pi*fc*t),假设fc=100,A0=4,0<=t<=5,试求:
(1)用包络检波器解调该信号,画出原始波形的解调信号。
(2)假设调制信号通过AWGN信道,信噪比为20dB,画出解调后的信号和原始信号。
clear all
ts=0.0025;
t=0:ts:5-ts;
fs=1/ts;
msg=randint(10,1,[-3,3],123);
msg1=msg*ones(1,fs/2);
msg2=reshape(msg1.',1,length(t));
subplot(3,1,1)
plot(t,msg2)
title('消息信号')
A=4;
fc=100;
Sam=(A+msg2).*cos(2*pi*fc*t);
dems=abs(hilbert(Sam))-A;
subplot(3,1,2)
plot(t,dems)
title('无噪声的解调信号')
y=awgn(Sam,20,'measured');
dems2=abs(hilbert(y))-A;
subplot(3,1,3)
plot(t,dems2)
title('信噪比为20dB时的解调信号')
(三) DSBSC信号的调制与解调
例 消息信号是[-3 3]均匀分布的随机整数,产生的时间间隔为1/2s,用DSBSC方法调制载波cos(2*pi*fc*t),假设fc=100,0<=t<=5,试求:
(1)用同步检波解调该信号,设低通滤波器的截止频率为100Hz,增益为2,画出原始信号和解调信号。
(2)假设解调信号通过AWGN信道,信噪比为20dB,画出解调后的信号与原始信号。
程序代码:
clear all
ts=0.0025;
t=0:ts:5-ts;
fs=1/ts;
df=fs/length(t);
f=-fs/2:df:fs/2-df;
msg=randint(10,1,[-3,3],123);
msg1=msg*ones(1,fs/2);
msg2=reshape(msg1.',1,length(t));
subplot(3,1,1)
plot(t,msg2)
title('消息信号')
fc=100;
Sdsb=msg2.*cos(2*pi*fc*t);
y=Sdsb.*cos(2*pi*fc*t);
Y=fft(y)./fs;
f_stop=100;
n_stop=floor(f_stop/df);
Hlow=zeros(size(f));
Hlow(1:n_stop)=2;
Hlow(length(f)-n_stop+1:end)=2;
DEM=Y.*Hlow;
dem=real(ifft(DEM))*fs;
subplot(3,1,2)
plot(t,dem);
title('无噪声的解调信号')
y1=awgn(Sdsb,20,'measured');
y2=y1.*cos(2*pi*fc*t);
Y2=fft(y2)./fs;
DEM1=Y2.*Hlow;
dem1=real(ifft(DEM1))*fs;
subplot(3,1,3)
plot(t,dem1)
title('信噪比为20dB时的解调信号')
(四)SSB信号的调制与解调
例 消息信号是[-3 3]均匀分布的随机整数,产生的时间间隔为1/2s,用相移法调制载波cos(2*pi*fc*t)生产USSB信号,假设fc=100,0<=t<=5,试求:
(1)用同步检波器解调该信号,设低通滤波器的截止频率为100Hz,增益为4,画出原始信号与解调信号。
(2)假设调制信号通过AWGN信道,信噪比为20dB,画出解调后的信号和原始信号。
代码如下:
clear all
ts=0.0025;
t=0:ts:5-ts;
fs=1/ts;
df=fs/length(t);
msg=randint(10,1,[-3,3],123);
msg1=msg*ones(1,fs/2);
msg2=reshape(msg1.',1,length(t));
Pm=fft(msg2)/fs;
f=-fs/2:df:fs/2-df;
subplot(3,1,1)
plot(t,msg2)
title('消息信号')
fc=300;
s1=0.5*msg2.*cos(2*pi*fc*t);
hmsg=imag(hilbert(msg2));
s2=0.5*hmsg.*sin(2*pi*fc*t);
Sussb=s1-s2;
y=Sussb.*cos(2*pi*fc*t);
Y=fft(y)./fs;
f_stop=100;
n_stop=floor(f_stop/df);
Hlow=zeros(size(f));
Hlow(1:n_stop)=4;
Hlow(length(f)-n_stop+1:end)=4;
DEM=Y.*Hlow;
dem=real(ifft(DEM))*fs;
subplot(3,1,2)
plot(t,dem);
title('无噪声的解调信号')
y1=awgn(Sussb,20,'measured');
y2=y1.*cos(2*pi*fc*t);
Y2=fft(y2)./fs;
DEM1=Y2.*Hlow;
dem1=real(ifft(DEM1))*fs;
subplot(3,1,3)
plot(t,dem1)
title('信噪比为20dB时的解调信号')
(五)FM信号的调制和解调
例 消息信号是[-3 3]均匀分布的随机整数,产生的时间间隔为1/2s,小心信号采用FM调制载波cos(2*pi*fc*t)。设fc=300,0<=t<=5,kf=50,试求:
(1)用鉴频法调制该信号,画出原始信号和解调信号。
(2)假设调制信号通过AWGN信道,信噪比为20dB,画出解调后的信号和原始信号。
clear all
ts=0.001;
t=0:ts:5-ts;
fs=1/ts;
df=fs/length(t);
msg=randint(10,1,[-3,3],123);
msg1=msg*ones(1,fs/2);
msg2=reshape(msg1.',1,length(t));
Pm=fft(msg2)/fs;
f=-fs/2:df:fs/2-df;
subplot(3,1,1)
plot(t,msg2)
title('消息信号')
int_msg(1)=0;
for ii=1:length(t)-1
int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;
end
kf=50;
fc=300;
Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg);
phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t));
phi=unwrap(phase);
dem=(1/(2*pi*kf)*diff(phi)/ts);
dem(length(t))=0;
subplot(3,1,2)
plot(t,dem);
title('无噪声的解调信号')
y1=awgn(Sfm,20,'measured');
y1(find(y1>1))=1;
y1(find(y1<-1))=-1;
phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t));
phi1=unwrap(phase1);
dem1=(1/(2*pi*kf)*diff(phi1)/ts);
dem1(length(t))=0;
subplot(3,1,3)
plot(t,dem1);
title('信噪比为20dB时的解调信号')