msk调制解调matlab程序
时间: 2023-07-30 13:08:10 浏览: 143
以下是一个简单的MSK调制和解调的MATLAB程序:
调制:
```matlab
% 参数设置
fc = 1000; % 载波频率
fm = 100; % 调制信号频率
Fs = 10000; % 采样率
T = 1/Fs; % 采样间隔
t = 0:T:1-T; % 时间序列
% 调制信号
m = cos(2*pi*fm*t); % 调制信号
m_int = cumsum(m)*T; % 积分得到调制信号的相位
% MSK调制
kf = pi/(2*T); % 调制指数
phi = 2*pi*fc*t + kf*m_int; % 调制信号的相位
s = cos(phi); % MSK信号
% 时域图像
figure
subplot(2,1,1)
plot(t,m)
xlabel('时间(s)')
ylabel('幅值')
title('调制信号')
subplot(2,1,2)
plot(t,s)
xlabel('时间(s)')
ylabel('幅值')
title('MSK信号')
```
解调:
```matlab
% MSK解调
phi_diff = diff(phi); % 相位差分
phi_diff = [phi_diff(1), phi_diff]; % 补充第一项
m_hat = sign(phi_diff); % 赋值为1或-1
% 时域图像
figure
subplot(2,1,1)
plot(t,s)
xlabel('时间(s)')
ylabel('幅值')
title('MSK信号')
subplot(2,1,2)
plot(t,m_hat)
xlabel('时间(s)')
ylabel('幅值')
title('解调信号')
```
需要注意的是,MSK调制的关键在于将调制信号的相位进行积分。解调时,可以通过计算相位差分并取符号得到解调信号。
阅读全文