gmsk调制 matlab
时间: 2023-09-24 19:08:02 浏览: 100
以下是使用matlab进行gmsk调制的示例代码:
%% GMSK调制
clear;clc;
% 定义参数
fbit = 1000; % 比特率
fs = 4*fbit; % 采样率
Tb = 1/fbit; % 比特时间
Ts = 1/fs; % 采样时间
fc = 2*fbit; % 载频频率
BT = 0.5; % 带限时间常数
M = 2; % 二进制调制
L = 10; % 过渡带长度
% 生成随机比特序列
Nbits = 1000;
bits = randi([0,1],1,Nbits);
% 二进制转换成十进制
data = bi2de(reshape(bits,[length(bits)/log2(M),log2(M)]),'left-msb');
% 生成调制信号
[bt, t] = gausspulse((-L*Ts):Ts:(L*Ts), fc, BT);
s = zeros(1,length(bits)*fs);
for i = 1:length(bits)
phase = cumsum(data(i)*bt)/fs;
s(((i-1)*fs+1):(i*fs)) = sqrt(2/Tb)*cos(2*pi*fc*t+phase);
end
% 显示结果
figure;
subplot(2,1,1);
plot(t,bt);
title('高斯脉冲');
xlabel('时间/s');
ylabel('幅度');
subplot(2,1,2);
plot(s);
title('GMSK调制信号');
xlabel('采样点');
ylabel('幅度');
阅读全文