《通信电子线路》顾宝良 编著附录Matlab程序A.2.1 幅度调制

《通信电子线路》顾宝良 编著附录Matlab程序A.2.1 幅度调制

  • 1. 订正之后的程序
  • 2. 实验结果
  • 3. 教科书中需要订正的地方

1. 订正之后的程序

% 《通信电子线路》顾宝良 编著附录Matlab程序
% A.2.1 幅度调制
% 例题 A.2.1 双边带调制
clear
clf
echo on
f0=1e3;
fc=5e4;
fs=8e5;
t0=1/f0;
ts=1/fs;
snr=10;
ma=0.8;
t=[0:ts:t0];
df=200;
snr_lin=10^(snr/10);
m=cos(2*pi*f0*t);
c=cos(2*pi*fc*t);
m_n=m/max(abs(m));
[M,m,df1]=fftseq(m,ts,df);
M=M/fs;
f=[0:df1:df1*(length(m)-1)]-fs/2;
u=(1+ma*m_n).*c;
[U,u1,df1]=fftseq(u,ts,df);
U=U/fs;
signal_power=(u(1:length(t)));
pmn=(m(1:length(t)))/(max(abs(m)))^2;
eta=(ma^2*pmn)/(1+ma^2*pmn);
noise_power=eta*signal_power/snr_lin;
noise_std=sqrt(noise_power);
noise=noise_std.*randn(1,length(u));
r=u+noise;
[R,r,df1]=fftseq(r,ts,df);
R=R/fs;

signal_power

eta

figure(1)
subplot(2,1,1)
plot(t*1000,m(1:length(t)))
axis([0 1 -1 1])
xlabel('T(ms)')
title('消息信号(时域)')

subplot(2,1,2)
plot(t*1000,c(1:length(t)))
axis([0 1 -1 1])
xlabel('T(ms)')
title('载波信号(时域)')

figure(2)
subplot(2,2,1:2)
plot(t,u(1:length(t)))
xlabel('T')
title('已调信号(时域)')

subplot(2,2,3)
plot(f,abs(fftshift(M)))
axis([-1e4 1e4 0 6e-4])
xlabel('Frequency(Hz)')
title('消息信号频谱')
subplot(2,2,4)
plot(f,abs(fftshift(U)))
axis([-1e5 1e5 0 6e-4])
title('已调信号频谱')
xlabel('Frequency(Hz)')

2. 实验结果

《通信电子线路》顾宝良 编著附录Matlab程序A.2.1 幅度调制_第1张图片

《通信电子线路》顾宝良 编著附录Matlab程序A.2.1 幅度调制_第2张图片

3. 教科书中需要订正的地方

1,spower
2,u - 〉u1
3,* -〉.* 点成
3,figure(1)

你可能感兴趣的:(《通信电子线路》顾宝良 编著附录Matlab程序A.2.1 幅度调制)