cpfsk的matlab程序
时间: 2023-07-27 12:04:33 浏览: 464
CPFSK(Continuous Phase Frequency Shift Keying,连续相位频率移键控) 是一种数字调制技术,常用于无线通信系统中。下面是一个简单的CPFSK的MATLAB程序示例:
```matlab
% 设置参数
fs = 100: % 采样率(赫兹)
Ts = 1/fs % 采样周期(秒)
fc = 10 % 载波频率(赫兹)
sps = 10 % 每个符号所用样本数
Tb = sps*Ts % 比特周期(秒)
% 生成源比特流
bits = [0 1 0 1 1 0 0 1]
N = length(bits) % 比特流长度
% 使用带限制的基带脉冲生成调制信号
t = 0:Ts:N*Tb-Ts % 时域
phi = 2*pi*bits/Tb % 每个比特的相位
s = sin(2*pi*fc*t + phi) % CPFSK信号
% 数据显示
subplot(2,1,1)
stem(t, bits, 'filled')
xlabel('时间(秒)')
ylabel('比特值')
title('源比特流')
subplot(2,1,2)
plot(t, s)
xlabel('时间(秒)')
ylabel('信号幅度')
title('CPFSK调制信号')
% 解调
bits_hat = zeros(1, N) % 初始化解调结果
for i = 1:N
phi_hat = unwrap(angle(s((i-1)*sps+1:i*sps))) % 解调相位
bits_hat(i) = sign(phi_hat(end)/Tb - phi(i)) % 定义解调规则
end
% 解调结果显示
figure
stem(t, bits_hat, 'filled')
xlabel('时间(秒)')
ylabel('比特值')
title('解调比特流')
```
这个程序首先设定了一些参数,如采样率(fs)、载波频率(fc)、每个比特的样本数(sps)等。然后生成源比特流(bits),并根据每个比特的相位生成CPFSK信号(s)。程序还提供了一些绘图以显示源比特流、调制信号以及解调比特流。
解调的过程是通过计算每个样本点附近的相位来确定解调比特流(bits_hat),最后将结果绘制出来。
阅读全文