已知基带信号m(t)=sin(10πt)+sin(30πt),载波为c(t)=cos(2000πt),请编写matlab 代码代码对基带进行进行AM调制,并分别作出3种调幅系数(m>1,m=1,m<1)下的AM信号的时域波形和幅度频谱图,编写Matlab代码实现对AM调制信号的相干解调,并作出图形。
时间: 2024-03-24 19:39:19 浏览: 87
matlab_根据M值的改变可以产生2、4、8、16PSK数字调制基带信号_且成形滤波器可任选升余弦、根升余弦、高斯
根据AM调制的公式,AM信号表达式为:
s(t) = (1 + m(t)) * c(t)
其中,m(t)为基带信号,c(t)为载波信号。
Matlab代码实现:
```
%% AM调制信号的生成
% 设置参数
fs = 100000; % 采样率
t = 0:1/fs:0.1; % 时间序列
fc = 20000; % 载波频率
m1 = 1.5; % 调幅系数1
m2 = 1; % 调幅系数2
m3 = 0.5; % 调幅系数3
% 生成基带信号
mt = sin(10*pi*t) + sin(30*pi*t);
% 生成载波信号
ct = cos(2*pi*fc*t);
% 生成AM调制信号
st1 = (1 + m1*mt) .* ct;
st2 = (1 + m2*mt) .* ct;
st3 = (1 + m3*mt) .* ct;
%% 时域波形和幅度频谱图
% 绘制调幅系数1的时域波形和幅度频谱图
figure(1)
subplot(2,1,1)
plot(t, st1)
xlabel('时间/s')
ylabel('幅值')
title('调幅系数1时域波形')
subplot(2,1,2)
freq = (-fs/2:fs/length(st1):fs/2-fs/length(st1));
plot(freq, abs(fftshift(fft(st1))))
xlabel('频率/Hz')
ylabel('幅值')
title('调幅系数1幅度频谱图')
% 绘制调幅系数2的时域波形和幅度频谱图
figure(2)
subplot(2,1,1)
plot(t, st2)
xlabel('时间/s')
ylabel('幅值')
title('调幅系数2时域波形')
subplot(2,1,2)
freq = (-fs/2:fs/length(st2):fs/2-fs/length(st2));
plot(freq, abs(fftshift(fft(st2))))
xlabel('频率/Hz')
ylabel('幅值')
title('调幅系数2幅度频谱图')
% 绘制调幅系数3的时域波形和幅度频谱图
figure(3)
subplot(2,1,1)
plot(t, st3)
xlabel('时间/s')
ylabel('幅值')
title('调幅系数3时域波形')
subplot(2,1,2)
freq = (-fs/2:fs/length(st3):fs/2-fs/length(st3));
plot(freq, abs(fftshift(fft(st3))))
xlabel('频率/Hz')
ylabel('幅值')
title('调幅系数3幅度频谱图')
%% 相干解调
% 生成参考信号
ct_ref = cos(2*pi*fc*t);
% 实现相干解调
mt_demod1 = st1 .* ct_ref;
mt_demod2 = st2 .* ct_ref;
mt_demod3 = st3 .* ct_ref;
% 绘制解调后的基带信号
figure(4)
subplot(3,1,1)
plot(t, mt_demod1)
xlabel('时间/s')
ylabel('幅值')
title('调幅系数1解调后的基带信号')
subplot(3,1,2)
plot(t, mt_demod2)
xlabel('时间/s')
ylabel('幅值')
title('调幅系数2解调后的基带信号')
subplot(3,1,3)
plot(t, mt_demod3)
xlabel('时间/s')
ylabel('幅值')
title('调幅系数3解调后的基带信号')
```
运行以上代码,可以得到3种调幅系数下的AM信号的时域波形和幅度频谱图,以及解调后的基带信号。
阅读全文