本篇讨论各种模拟调制与解调系统的性能,包括幅度调制(AM)和角度调制(包括频率调制(FM)和相位调制(PM))。
(一 )AM信号的仿真
例 消息信号是[-
3 3]均匀分布的随机整数,产生的时间间隔为
1/
10s,用AM方法调制载波
cos(
2*pi*fc*t),假设fc=
100,A
0=
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,A
0=
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时的解调信号')
转载请注明原文地址: https://ju.6miu.com/read-1202493.html