已知基带信号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 22:39:46 浏览: 102
以下是对基带信号进行AM调制以及相干解调的Matlab代码:
```matlab
% 基带信号
t = 0:0.0001:0.1;
mt = sin(10*pi*t) + sin(30*pi*t);
% 载波信号
fc = 2000;
ct = cos(2*pi*fc*t);
% 调制指数
m1 = 0.5; % m < 1
m2 = 1; % m = 1
m3 = 2; % m > 1
% AM调制
s1 = (1 + m1*mt).*ct;
s2 = (1 + m2*mt).*ct;
s3 = (1 + m3*mt).*ct;
% 时域波形图
subplot(3,1,1);
plot(t, s1);
title('时域波形图 (m < 1)');
xlabel('时间 (s)');
ylabel('幅度');
subplot(3,1,2);
plot(t, s2);
title('时域波形图 (m = 1)');
xlabel('时间 (s)');
ylabel('幅度');
subplot(3,1,3);
plot(t, s3);
title('时域波形图 (m > 1)');
xlabel('时间 (s)');
ylabel('幅度');
% 幅度频谱图
Fs = 10000;
L = length(s1);
f = Fs*(0:(L/2))/L;
S1 = abs(fft(s1)/L);
S2 = abs(fft(s2)/L);
S3 = abs(fft(s3)/L);
subplot(3,1,1);
plot(f, 2*S1(1:(L/2)+1));
title('幅度频谱图 (m < 1)');
xlabel('频率 (Hz)');
ylabel('幅度');
subplot(3,1,2);
plot(f, 2*S2(1:(L/2)+1));
title('幅度频谱图 (m = 1)');
xlabel('频率 (Hz)');
ylabel('幅度');
subplot(3,1,3);
plot(f, 2*S3(1:(L/2)+1));
title('幅度频谱图 (m > 1)');
xlabel('频率 (Hz)');
ylabel('幅度');
% 相干解调
sr1 = s1 .* ct;
sr2 = s2 .* ct;
sr3 = s3 .* ct;
% 低通滤波
[b, a] = butter(6, 2*fc/Fs, 'low');
r1 = filter(b, a, sr1);
r2 = filter(b, a, sr2);
r3 = filter(b, a, sr3);
% 解调后的信号的时域波形图
figure();
subplot(3,1,1);
plot(t, r1);
title('解调后的信号 (m < 1)');
xlabel('时间 (s)');
ylabel('幅度');
subplot(3,1,2);
plot(t, r2);
title('解调后的信号 (m = 1)');
xlabel('时间 (s)');
ylabel('幅度');
subplot(3,1,3);
plot(t, r3);
title('解调后的信号 (m > 1)');
xlabel('时间 (s)');
ylabel('幅度');
```
运行以上代码将会得到3个子图,分别是3种调幅系数下的AM信号的时域波形图和幅度频谱图,以及解调后的信号的时域波形图。
阅读全文