补充内容:模拟调制系统的MATLAB仿真
1.抽样定理
为了用实验的手段对连续信号分析,需要先对信号进行抽样(时间上的离散化),把连续数据转变为离散数据分析。抽样(时间离散化)是模拟信号数字化的第一步。
Nyquist抽样定律:要无失真地恢复出抽样前的信号,要求抽样频率要大于等于两倍基带信号带宽。
抽样定理建立了模拟信号和离散信号之间的关系,在Matlab中对模拟信号的实验仿真都是通过先抽样,转变成离散信号,然后用该离散信号近似替代原来的模拟信号进行分析的。
【例1】用图形表示DSB调制波形ycos(2t)cos(4t) 及其包络线。
clf
%%计算抽样时间间隔
fh=1;%%调制信号带宽(Hz)
fs=100*fh;%%一般选取的抽样频率要远大于基带信号频率,即抽样时间间隔要尽可能短。
ts=1/fs;
1
%%根据抽样时间间隔进行抽样,并计算出信号和包络
t=(0:ts:pi/2)';%抽样时间间隔要足够小,要满足抽样定理。
envelop=cos(2*pi*t);%%DSB信号包络
y=cos(2*pi*t).*cos(4*pi*t);%已调信号
%画出已调信号包络线
plot(t,envelop,'r:','LineWidth',3);
hold on
plot(t,-envelop,'r:','LineWidth',3);
%画出已调信号波形
plot(t,y,'b','LineWidth',3);
axis([0,pi/2,-1,1])%
hold off%
xlabel('t');
2
%写出图例
legend('包络','双边带已调信号')
1 包络0.8双边带已调信号0.60.40.20-0.2-0.4-0.6-0.8-1 00.511.5t 【例2】用图形表示DSB调制波形ycos(2t)cos(6t) 及其包络线。clf
%%计算抽样时间间隔
fh=1;%%调制信号带宽(Hz)
fs=100*fh;%抽样时间间隔要足够小,要满足抽样定理。
ts=1/fs;
%%根据抽样时间间隔进行抽样
t=(0:ts:pi/2);
3
envelop=cos(2*pi*t);%%DSB信号包络
y=cos(2*pi*t).*cos(6*pi*t);%已调信号
%画出已调信号包络线
plot(t,envelop,'r:','LineWidth',3);hold on
plot(t,-envelop,'r:','LineWidth',3);
%画出已调信号波形
plot(t,y,'b','LineWidth',3);
axis([0,pi/2,-1,1]);
hold off%%
10.80.60.40.20-0.2-0.4-0.6-0.8-100.511.5 注意观察:过零点“反相”现象。
4
2.信号的频谱和功率
傅立叶变换f(t)F(f)
【例3】画出DSB信号ycos(2t)cos(10t)的频谱并计算已调信号的功率。 clf
%%计算抽样时间间隔
fh=1;%%调制信号带宽(Hz)
fs=20*fh;
ts=1/fs;
%%根据抽样时间间隔进行抽样
t=(0:ts:2*pi);%抽样时间间隔要足够小,要满足抽样定理。
y=cos(2*pi*t).*cos(10*pi*t);%已调信号
%计算已调信号的傅立叶变化
n=2^nextpow2(length(t));%傅立叶变换的序列长度
5
spectrum=fft(y,n);
df=fs/n;%频率分辨率
f=[0:df:df*(length(spectrum)-1)]-fs/2;%FFT频率向量
%计算信号功率
p=(norm(y)^2)/length(y)
%画出已调信号频谱
plot(f,fftshift(abs(spectrum)),'b','LineWidth',3);
xlabel('frequency/Hz');title('Magnitude-spectrum of y'); p =
0.2520
25Magnitude-spectrum of y20151050-10-8-6-4-20246810frequency/Hz 6
3.AWGN的产生及功率谱密度
已知AWGN信道中噪声的比特信噪比为10dB,信号功率0.25W,求噪声功率并画出噪声的时域波形。
clf
%%计算抽样时间间隔
fh=1;%%调制信号带宽(Hz)
fs=40*fh;
ts=1/fs;
t=(0:ts:2*pi);%根据抽样间隔生成抽样时间
%生成AWGN噪声序列
snr=10;%信噪比10dB
snr_lin=10^(snr/10);%分贝信噪比转换为线性信噪比
noise_power=p_DSB/snr_lin
7
noise_std=sqrt(noise_power);
noise=randn(1,length(y))*noise_std;
plot(t,noise,'LineWidth',2)
noise_power =
0.0250
0.40.30.20.10-0.1-0.2-0.3-0.401234567
4.DSB调制解调
10t)的频谱并计算基带信号【例4】画出基带信号m(t)cos(2t)和DSB信号ycos(2t)cos(和已调信号的功功率。
clf
%%计算抽样时间间隔
8
fh=1;%%调制信号带宽(Hz)
fs=40*fh;
ts=1/fs;
%%根据抽样时间间隔进行抽样
t=(0:ts:pi);%抽样时间间隔要足够小,要满足抽样定理。
m=cos(2*pi*t);%基带信号
y=m.*cos(10*pi*t);%已调信号
%计算基带信号的傅立叶变换
n=2^nextpow2(length(t));%傅立叶变换的序列长度
spectrum_baseband=fft(m,n);
df=fs/n;%频率分辨率
f=[0:df:df*(length(spectrum_baseband)-1)]-fs/2;%FFT频率向量
%计算已调信号的频谱
9
n=2^nextpow2(length(t));%傅立叶变换的序列长度
spectrum_DSB=fft(y,n);
df=fs/n;%频率分辨率
f=[0:df:df*(length(spectrum_DSB)-1)]-fs/2;%FFT频率向量
%计算信号功率
p_baseband=(norm(m)^2)/length(m)
p_DSB=(norm(y)^2)/length(y)
%画出已调信号频谱
subplot(2,1,1);
plot(f,fftshift(abs(spectrum_baseband)),'b','LineWidth',3);
xlabel('frequency/Hz');title('Magnitude-spectrum of baseband');
subplot(2,1,2);
plot(f,fftshift(abs(spectrum_DSB)),'b','LineWidth',3);
10
xlabel('frequency/Hz');title('Magnitude-spectrum of DSB');
p_baseband =
0.5145
p_DSB =
0.2602
60Magnitude-spectrum of baseband40200-20-15-10-505101520frequency/Hz40Magnitude-spectrum of DSB3020100-20-15-10-505101520frequency/Hz 已知AWGN信道中噪声的比特信噪比为10dB,求噪声功率并绘出信道中传输的信号。clf
snr=10;%信噪比10dB
snr_lin=10^(snr/10);%分贝信噪比转换为线性信噪比
noise_power=p_DSB/snr_lin;
11
noise_std=sqrt(noise_power);
noise=randn(1,length(y))*noise_std;
signal_in_channel=y+noise;
subplot(2,1,1);
plot(t,signal_in_channel,'b')
xlabel('t');ylabel('DSB signal plus noise');axis([0,pi,-1,1]);
subplot(2,1,2);
plot(t,y,'r');
xlabel('t');ylabel('DSB signal');
1esion 0.5sulp la0ngis B-0.5SD-100.511.522.53t1l0.5angis B0SD-0.5-100.511.522.533.5t 调制解调
5.AM
12
10t)的10t)以及载波s(t)cos(【例4】画出基带信号m(t)cos(2t)和AM信号y(cos(2t)1)cos(频谱并计算基带信号和已调信号的功率。并比较该AM信号与例题3中的DSB信号的时域波形。
clf
%%计算抽样时间间隔
fh=1;%%调制信号带宽(Hz)
fs=20*fh;
ts=1/fs;
%%根据抽样时间间隔进行抽样
t=(0:ts:pi);%抽样时间间隔要足够小,要满足抽样定理。
m=cos(2*pi*t);
c=cos(10*pi*t);
y=(1+m).*c;%已调信号
%计算基带信号的傅立叶变换
13
n=2^nextpow2(length(t));%傅立叶变换的序列长度
spectrum_baseband=fft(m,n);
df=fs/n;%频率分辨率
f=[0:df:df*(length(spectrum_baseband)-1)]-fs/2;%FFT频率向量
%计算载波功率
n=2^nextpow2(length(t));%傅立叶变换的序列长度
spectrum_carrier=fft(c,n);
df=fs/n;%频率分辨率
f=[0:df:df*(length(spectrum_baseband)-1)]-fs/2;%FFT频率向量
%计算已调信号的频谱
n=2^nextpow2(length(t));%傅立叶变换的序列长度
spectrum_AM=fft(y,n);
df=fs/n;%频率分辨率
14
f=[0:df:df*(length(spectrum_AM)-1)]-fs/2;%FFT频率向量
%计算信号功率
p_baseband=(norm(m)^2)/length(m)
p_AM=(norm(y)^2)/length(y)
p_carrier=(norm(c)^2)/length(c)
%画出已调信号频谱
subplot(3,1,1);
plot(f,fftshift(abs(spectrum_baseband)),'b','LineWidth',3);
xlabel('frequency/Hz');title('Magnitude-spectrum of baseband');
subplot(3,1,2);
plot(f,fftshift(abs(spectrum_AM)),'b','LineWidth',3);
xlabel('frequency/Hz');title('Magnitude-spectrum of AM');
subplot(3,1,3);
15
plot(f,fftshift(abs(spectrum_carrier)),'b','LineWidth',3);
xlabel('frequency/Hz');title('Magnitude-spectrum of carrier');
p_baseband =
0.5168
p_AM =
0.8297
p_carrier =
0.5079
40Magnitude-spectrum of baseband200-10-8-6-4-20246810frequency/Hz40Magnitude-spectrum of AM200-10-8-6-4-20246810frequency/Hz40Magnitude-spectrum of carrier200-10-8-6-4-20246810frequency/Hz clf
DSB=m.*c;%DSB信号
16
envelop_DSB=m;%包络
envelop_AM=1+m;
subplot(2,1,1);
plot(t,DSB,'b')
hold on
plot(t,envelop_DSB,'r:');
plot(t,-envelop_DSB,'r:');
hold off
xlabel('t');
ylabel('DSB signal');
subplot(2,1,2);
plot(t,y,'b');
hold on;
17
plot(t,envelop_AM,'r:');
plot(t,-envelop_AM,'r:');
hold off
xlabel('t');
ylabel('AM signal');
1l0.5angis B0SD-0.5-100.511.522.533.5t21langis 0MA-1-200.511.522.533.5t 18