matlab用相干检波解调DSBSC 方法对信号进行调制该信号,设低通滤波器的截止 频率为100Hz,增益为2,画出原始信号和解调信号。 (2)假设调制信号通过AWGN信道,信噪比为20dB, 画出解调后的信号与原始信号。
时间: 2024-05-26 18:16:34 浏览: 81
利用matlab对am,dsb,ssb,ask,fsk,bpsk信号进行正交调制解调仿真,并在不同信噪比条件下对其数字信号
5星 · 资源好评率100%
首先,我们需要生成一个调制信号,假设原始信号为一个频率为10Hz的正弦波,采样频率为1kHz,信号时长为1秒:
```matlab
fs = 1000; % 采样频率
t = 0:1/fs:1-1/fs; % 时间向量
f = 10; % 原始信号频率
x = sin(2*pi*f*t); % 原始信号
```
接下来,我们需要进行DSBSC调制,这里选择使用AM调制的方式:
```matlab
fc = 100; % 载波频率
Ac = 1; % 载波幅度
m = 2; % 调制指数
y = (Ac + m*x).*cos(2*pi*fc*t); % 调制信号
```
接下来,我们需要进行相干检波解调,这里选择使用包络检波的方式:
```matlab
z = y.*cos(2*pi*fc*t); % 相乘
[b, a] = butter(2, 2*100/fs); % 低通滤波器设计
z_filtered = filter(b, a, z); % 低通滤波
z_demod = abs(hilbert(z_filtered)); % 包络检波
```
接下来,我们可以绘制原始信号、调制信号和解调信号:
```matlab
subplot(3,1,1)
plot(t, x)
xlabel('Time (s)')
ylabel('Amplitude')
title('Original Signal')
subplot(3,1,2)
plot(t, y)
xlabel('Time (s)')
ylabel('Amplitude')
title('Modulated Signal')
subplot(3,1,3)
plot(t, z_demod)
xlabel('Time (s)')
ylabel('Amplitude')
title('Demodulated Signal')
```
得到的图像如下:
![DSBSC调制和解调](https://img-blog.csdnimg.cn/20211013100926745.png)
接下来,我们需要加入AWGN信道,信噪比为20dB:
```matlab
SNR = 20; % 信噪比
Ps = mean(abs(z_demod).^2); % 解调信号的平均功率
Pn = Ps/(10^(SNR/10)); % 计算噪声功率
n = sqrt(Pn)*randn(size(z_demod)); % 生成噪声
z_noisy = z_demod + n; % 加入噪声
```
最后,我们可以绘制加入噪声后的解调信号和原始信号:
```matlab
subplot(2,1,1)
plot(t, x)
xlabel('Time (s)')
ylabel('Amplitude')
title('Original Signal')
subplot(2,1,2)
plot(t, z_noisy)
xlabel('Time (s)')
ylabel('Amplitude')
title('Demodulated Signal with AWGN')
```
得到的图像如下:
![加入AWGN后的解调信号和原始信号](https://img-blog.csdnimg.cn/20211013100948797.png)
阅读全文