GMSK调制、解调的matlab代码
时间: 2023-08-05 08:02:48 浏览: 103
GMSK matlab 调制代码
5星 · 资源好评率100%
以下是一个简单的GMSK调制和解调的MATLAB程序:
调制:
```matlab
% 参数设置
fc = 1000; % 载波频率
fm = 100; % 调制信号频率
Fs = 10000; % 采样率
T = 1/Fs; % 采样间隔
t = 0:T:1-T; % 时间序列
BT = 0.5; % 带限时间常数
% 调制信号
m = cos(2*pi*fm*t); % 调制信号
% GMSK调制
kf = 2*pi*BT; % 调制指数
phi = zeros(size(t)); % 初始相位为0
for n = 2:length(t)
phi(n) = phi(n-1) + 2*pi*fc*T + kf*m(n)*cos(phi(n-1));
end
s = cos(phi); % GMSK信号
% 时域图像
figure
subplot(2,1,1)
plot(t,m)
xlabel('时间(s)')
ylabel('幅值')
title('调制信号')
subplot(2,1,2)
plot(t,s)
xlabel('时间(s)')
ylabel('幅值')
title('GMSK信号')
```
解调:
```matlab
% GMSK解调
phi_diff = diff(phi); % 相位差分
phi_diff = [phi_diff(1), phi_diff]; % 补充第一项
m_hat = diff(unwrap(phi_diff)); % 解调信号
% 时域图像
figure
subplot(2,1,1)
plot(t,s)
xlabel('时间(s)')
ylabel('幅值')
title('GMSK信号')
subplot(2,1,2)
plot(t(1:end-1),m_hat)
xlabel('时间(s)')
ylabel('幅值')
title('解调信号')
```
需要注意的是,GMSK调制的关键在于将调制信号的相位进行频移,而解调时需要对相位进行差分和反向差分,得到解调信号。
阅读全文