% 基带信号 t = 0:0.0001:0.05; m = sin(10*pi*t) + sin(30*pi*t); % 希尔伯特变换 mh = imag(hilbert(m)); % 载波 fc = 2000; c = cos(2*pi*fc*t); % SSB调制 usb = m.*c - mh.*sin(2*pi*fc*t); lsb = m.*c + mh.*sin(2*pi*fc*t);编写Matlab代码实现对SSB调制信号的相干解调,并作出图形。
时间: 2023-07-23 21:42:05 浏览: 220
好的,以下是Matlab代码实现对SSB调制信号的相干解调,并作出图形:
```matlab
t = 0:0.0001:0.05;
m = sin(10*pi*t) + sin(30*pi*t);
mh = imag(hilbert(m));
fc = 2000;
c = cos(2*pi*fc*t);
usb = m.*c - mh.*sin(2*pi*fc*t);
lsb = m.*c + mh.*sin(2*pi*fc*t);
% 相干解调
usb_demod = usb .* (2*c);
lsb_demod = lsb .* (2*c);
% 低通滤波
[b,a] = butter(5, 50/(2*fc));
usb_demod_filtered = filter(b,a,usb_demod);
lsb_demod_filtered = filter(b,a,lsb_demod);
% 作图
subplot(2,1,1);
plot(t,usb_demod_filtered);
title('USB调制信号相干解调后的输出');
subplot(2,1,2);
plot(t,lsb_demod_filtered);
title('LSB调制信号相干解调后的输出');
```
解释一下代码:
首先,我们生成了一个基带信号 m,然后进行 Hilbert 变换得到 m 的希尔伯特变换 mh。接着,我们生成了一个载波信号 c,并将基带信号和希尔伯特变换相乘,得到 USB 和 LSB 调制信号。
接下来,我们进行了相干解调。对于 USB 调制信号,我们将其与 2c 相乘,得到的结果就是需要解调的信号。对于 LSB 调制信号,同样的方法得到需要解调的信号。然后,我们对这两个信号进行了低通滤波,得到最终的解调输出。
最后,我们用 subplot 分别作出了 USB 调制信号相干解调后的输出和 LSB 调制信号相干解调后的输出的图形。
阅读全文