t = 0:0.0001:0.05; m = sin(10*pi*t) + sin(30*pi*t); fc = 2000; c = cos(2*pi*fc*t); usb = m.*c - imag(hilbert(m)).*sin(2*pi*fc*t); lsb = m.*c + imag(hilbert(m)).*sin(2*pi*fc*t); subplot(2,2,1); plot(t,usb); title('上边带调制信号时域波形'); subplot(2,2,2); plot(t,lsb); title('下边带调制信号时域波形'); fs = 1/(t(2)-t(1)); N = length(t); f = linspace(-fs/2,fs/2,N); usb_fft = fftshift(fft(usb))/N; lsb_fft = fftshift(fft(lsb))/N; subplot(2,2,3); plot(f,abs(usb_fft)); title('上边带调制信号幅度频谱图'); subplot(2,2,4); plot(f,abs(lsb_fft)); title('下边带调制信号幅度频谱图');请扩展以上MATLAB语言实现对SSB调制信号的相干解调,并作出图形
时间: 2023-12-16 12:06:15 浏览: 214
临界 t 值计算器:快速获取临界 t 值的工具-matlab开发
好的,以下是扩展后的MATLAB代码实现:
```matlab
t = 0:0.0001:0.05;
m = sin(10*pi*t) + sin(30*pi*t);
fc = 2000;
c = cos(2*pi*fc*t);
% 上边带调制信号
usb = m.*c - imag(hilbert(m)).*sin(2*pi*fc*t);
% 下边带调制信号
lsb = m.*c + imag(hilbert(m)).*sin(2*pi*fc*t);
% 相干解调
usb_demod = usb.*cos(2*pi*fc*t);
lsb_demod = lsb.*cos(2*pi*fc*t);
% 绘制时域波形图
figure;
subplot(2,2,1);
plot(t,usb_demod);
title('上边带调制信号相干解调后时域波形');
subplot(2,2,2);
plot(t,lsb_demod);
title('下边带调制信号相干解调后时域波形');
% 绘制幅度频谱图
fs = 1/(t(2)-t(1));
N = length(t);
f = linspace(-fs/2,fs/2,N);
usb_demod_fft = fftshift(fft(usb_demod))/N;
lsb_demod_fft = fftshift(fft(lsb_demod))/N;
subplot(2,2,3);
plot(f,abs(usb_demod_fft));
title('上边带调制信号相干解调后幅度频谱图');
subplot(2,2,4);
plot(f,abs(lsb_demod_fft));
title('下边带调制信号相干解调后幅度频谱图');
```
运行以上代码,会得到一个包含四个图形的窗口,分别为:上边带调制信号相干解调后时域波形图、下边带调制信号相干解调后时域波形图、上边带调制信号相干解调后幅度频谱图和下边带调制信号相干解调后幅度频谱图。
其中,相干解调的过程是将解调信号与原始载波信号相乘,这里的原始载波信号即为 `cos(2*pi*fc*t)`。在绘制时域波形图时,我们绘制的是相干解调后的信号的时域波形;在绘制幅度频谱图时,我们绘制的是相干解调后的信号的幅度频谱图。
阅读全文