⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen_2fsk.m

📁 生成fsk调制信号
💻 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 + -