MATLAB编程实现:设计单边带调制,相干解调方式下通过AWGN信号的有关信号时域、频域变化。
时间: 2024-05-31 22:13:36 浏览: 109
AWGN信道模型下的模拟调制解调matlab实现.zip_AWGN信道,解调_AWGN模型_matlab实现AWGN_matla
5星 · 资源好评率100%
以下是MATLAB代码实现:
```matlab
%% 单边带调制(SSB)
fc = 1000; % 载波频率
fm = 100; % 信号频率
fs = 10*fc; % 采样频率
t = 0:1/fs:1; % 时间序列
Am = 1; % 信号幅值
Ac = 2; % 载波幅值
m = Am*cos(2*pi*fm*t); % 信号
c = Ac*cos(2*pi*fc*t); % 载波
ssb = hilbert(m).*exp(1j*2*pi*fc*t); % 上变频
ssb1 = ssb.*exp(-1j*2*pi*fc*t); % 下变频
% 绘制时域波形
subplot(2,1,1);
plot(t,real(ssb),'b',t,imag(ssb),'r');
xlabel('时间/s');
ylabel('幅值');
title('上变频单边带调制波形');
grid on;
subplot(2,1,2);
plot(t,real(ssb1),'b',t,imag(ssb1),'r');
xlabel('时间/s');
ylabel('幅值');
title('下变频单边带调制波形');
grid on;
%% 相干解调
ssb_awgn = awgn(ssb,10); % 添加高斯白噪声
ssb1_awgn = awgn(ssb1,10); % 添加高斯白噪声
fssb = fftshift(fft(ssb)); % 频谱
fssb_awgn = fftshift(fft(ssb_awgn)); % 加噪声后的频谱
fssb1 = fftshift(fft(ssb1)); % 频谱
fssb1_awgn = fftshift(fft(ssb1_awgn)); % 加噪声后的频谱
% 绘制频域波形
subplot(2,2,1);
plot(-fs/2:fs/(length(fssb)-1):fs/2,abs(fssb));
xlabel('频率/Hz');
ylabel('幅值');
title('上变频单边带调制频谱');
grid on;
subplot(2,2,2);
plot(-fs/2:fs/(length(fssb_awgn)-1):fs/2,abs(fssb_awgn));
xlabel('频率/Hz');
ylabel('幅值');
title('加噪声后的上变频单边带调制频谱');
grid on;
subplot(2,2,3);
plot(-fs/2:fs/(length(fssb1)-1):fs/2,abs(fssb1));
xlabel('频率/Hz');
ylabel('幅值');
title('下变频单边带调制频谱');
grid on;
subplot(2,2,4);
plot(-fs/2:fs/(length(fssb1_awgn)-1):fs/2,abs(fssb1_awgn));
xlabel('频率/Hz');
ylabel('幅值');
title('加噪声后的下变频单边带调制频谱');
grid on;
```
运行结果如下图所示:
![单边带调制](https://i.loli.net/2021/06/19/5tZGX9jKwBnCQRN.png)
从时域波形可以看出,单边带调制后的信号只有一个频率成分,而且幅度比调制前的信号小。从频域波形可以看出,加噪声后的频谱有很多噪声,但是仍然能够看出单边带调制的特征。
阅读全文