📄 gen_2fsk.m
字号:
%产生2fsk信号
function x=gen_2fsk(N)
%产生连续相位2FSK信号
%Set parameters
%N 产生的信号点长度
%初始参数
%fc 载波频率
%fp 频偏
%fd 低频频率
%type 'ncp'非连续相位fsk 'cp'连续相位fsk;
%fs 采样速率
fc=2000; %中心频率
delta=11; %频偏
fd=8; %低频信息
fs=6000; %采样频率
n0=floor(fs/fd/2); %计算每半个低频周期的采样点数
td=(1/(2*fd)-(1/fs*n0)); %半个低频周期与最后一个采样点的时间差
tdd=1/fs-td; %每半个周期的第一个采样点与前半个周期的时
% N=5120; %采样点数
phase=0; %初始相位
phase0=0;
flag=1;%标志位 0:下边频信号 1:上边频信号
%输入2fsk信号
x=zeros(1,N);
for i=1:N
if flag==0 %下边频信号->上边频信号
if (mod(i-1,n0)==0) %说明是边缘
if (i==1)
x(i)=0;
else
phase=2*pi*(fc-delta)*td+phase0; %更新相位
x(i)=sin(2*pi*(fc+delta)*tdd+phase);
phase=phase+2*pi*(fc+delta)*tdd;
flag=1;
end;
else
loc=mod(i-1,n0);
phase0=2*pi*(fc-delta)*loc/fs+phase;
x(i)=sin(phase0);
end;
%上边频信号->下边频信号
elseif mod(i-1,n0)==0
if (i==1)
x(i)=0;
else
phase=2*pi*(fc+delta)*td+phase0;
x(i)=sin(2*pi*(fc-delta)*tdd/fs+phase);
phase=phase+2*pi*(fc-delta)*tdd;
flag=0;
end;
else
loc=mod(i-1,n0);
phase0=2*pi*(fc+delta)*loc/fs+phase;
x(i)=sin(phase0);
end;
end;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -