MATLAB中PM信号的调制与解调并且加噪的代码
时间: 2023-08-03 18:07:23 浏览: 360
以下是在MATLAB中进行PM信号调制、解调并加噪声的代码:
```MATLAB
% 调制信号的生成
fc = 100; % 载波频率
fs = 1000; % 采样频率
t = 0 : 1/fs : 1; % 时间序列
fm = 10; % 基带信号频率
m = sinc(2*fm*(t-0.5)); % 基带信号
c = cos(2*pi*fc*t); % 载波信号
beta = 0.5; % 调制指数
pm = cos(2*pi*fc*t + beta*m); % PM调制信号
% 加噪声
snr = 10; % 信噪比
pm_noisy = awgn(pm, snr, 'measured'); % 加噪信号
% 调制信号的绘制
figure;
subplot(2,1,1);
plot(t, pm, 'b'); % 绘制原始调制信号
title('Original PM Signal');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
subplot(2,1,2);
plot(t, pm_noisy, 'r'); % 绘制加噪信号
title('PM Signal with Noise');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
% 调制信号的解调
fm_hat = diff(unwrap(angle(pm_noisy))); % 相位变化率
fc_hat = 2*pi*fc*ones(size(fm_hat)); % 载波频率
m_hat = fm_hat./fc_hat; % 解调后的基带信号
% 解调信号的绘制
figure;
subplot(2,1,1);
plot(t, m, 'b'); % 绘制原始基带信号
title('Original Baseband Signal');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
subplot(2,1,2);
plot(t(2:end), m_hat, 'r'); % 绘制解调后的基带信号
title('Demodulated Baseband Signal');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
```
这段代码首先生成了基带信号和载波信号,然后通过调制指数和基带信号生成PM调制信号,并绘制了调制信号的波形图。接着,使用MATLAB中的awgn函数在调制信号中加入了高斯白噪声,生成了加噪信号。然后,使用解调公式解调出基带信号,并绘制了解调信号的波形图。需要注意的是,加入噪声会使解调后的基带信号存在一定的误差,需要根据实际情况选择合适的信噪比。
阅读全文