fs = 10000; % 采样率 t = 0:1/fs:1; % 时间序列 Ac = 1; % 载波幅度 fc = 1000; % 载波频率 % 基带信号m(t) mt = sin(10*pi*t) + sin(30*pi*t); % DSB调制 st = Ac * mt .* cos(2*pi*fc*t);请扩展以上MATLAB语言实现对DSB调制信号的相干解调,并作出图形。
时间: 2024-01-17 19:26:17 浏览: 44
DSB调制信号的相干解调可以通过乘以相同频率的载波信号实现。具体实现过程如下:
```matlab
% 设置参数
fs = 10000; % 采样率
t = 0:1/fs:1; % 时间序列
Ac = 1; % 载波幅度
fc = 1000; % 载波频率
% 基带信号m(t)
mt = sin(10*pi*t) + sin(30*pi*t);
% DSB调制
st = Ac * mt .* cos(2*pi*fc*t);
% 相干解调
ct = cos(2*pi*fc*t); % 解调载波
rt = st .* ct; % 相乘得到解调信号
[b,a] = butter(6,2*fc/fs); % 设计6阶低通滤波器
yt = filter(b,a,rt); % 滤波得到解调后的信号
% 绘制时域波形
subplot(2,1,1)
plot(t, st)
hold on
plot(t, rt)
plot(t, yt)
xlabel('时间')
ylabel('幅度')
title('DSB调制信号和解调信号时域波形')
legend('DSB调制信号', '解调信号(未滤波)', '解调信号(滤波后)')
% 绘制幅度频谱图
subplot(2,1,2)
f = -fs/2:fs/length(t):fs/2-fs/length(t); % 频率序列
St = fftshift(abs(fft(st)));
Rt = fftshift(abs(fft(rt)));
Yt = fftshift(abs(fft(yt)));
plot(f, St)
hold on
plot(f, Rt)
plot(f, Yt)
xlabel('频率')
ylabel('幅度')
title('DSB调制信号和解调信号幅度频谱图')
legend('DSB调制信号', '解调信号(未滤波)', '解调信号(滤波后)')
```
运行上述代码后,可以得到DSB调制信号和解调信号的时域波形和幅度频谱图,如下图所示:
![DSB调制信号和解调信号的时域波形](https://img-blog.csdn.net/20180731162850357?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p1bGx5X2Jsb2c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
![DSB调制信号和解调信号的幅度频谱图](https://img-blog.csdn.net/20180731163014895?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p1bGx5X2Jsb2c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
可以看到,经过相干解调和低通滤波后,解调信号与原始基带信号基本一致,证明了相干解调的正确性。