FSK调制是基本的数字频带传输,本文将大致介绍FSK,并以4FSK为例,利用相干解调的方法,做一个matlab仿真。
参考教材:《通信原理(第二版)》 李晓峰 周宁 邵怀宗 朱立东 编著
一、2FSK基本原理
1.2FSK
2FSK利用两个频率(f1和f2)的正弦波来传送符号1和0,其信号可以表述为
实现电路可以是简单的电子开关。
其实,2FSK信号是两个频率的正弦波的交错组合,可以表示为
式中,A为载波的振幅,m(t)为符号序列的单极性矩形NRZ基带信号,
为反相信号,这表明2FSK信号可以看作两路互补的OOK信号的叠加。
2.相位连续性
由之前的公式产生的信号在1和0码转换处很可能是不连续的,不连续的信号会占据很多频带。产生连续香味的FSK信号的一种方法是合理选择,
的取值,可以用桑德FSK信号参数
另一种方法是按照模拟FM的方法,通过压控振荡器(VCO) 来产生,如图所示,信号可以表示为
其中,
是调频器的频偏常量。
3.包络检波法
2FSK常用的解调方法是包络检波法,属于非相干解调,接收框图如下图所示,它实际上是工作在和
上的两个互补的OOK接收系统的组合。该系统的要点是
(1)上支路接收的的部分,下支路接收的是
的部分。必须满足
,两个BPF才能分离开两路OOK信号。
(2)上、下支路包络检波器的输出和
是互补对称的 。
(3)两支路的抽样值分别是和
,判决准则为
4.误码率
假定AWGN信道中噪声双边功率谱密度为,该接收系统的误码率为
其中,,是2FSK信号的平均比特能量。
5.带宽
2FSK信号的带宽定义为:两个频峰外侧边缘间的距离,即
的理论最小间距是
,结合基带信号的理论最小带宽为
,因此2FSK信号的最小带宽为
。
二、MFSK基本原理
1.MFSK表达式
MFSK是多元频移键控的简称,信号可以表示为
通常规定等间距,最小频率间隔为
。
2.MFSK解调
MFSK解调通常采用包络检波法,接收框图如下:
在本代码中,采用的是相干借解调法,相干解调步骤如下:
首先讲4FSK信号进行混频,即乘上各路载波,混频后再经过低通滤波器,经过低通滤波器后的波形如下:
此时峰值就是信号0、1、2、3各自出现的位置,此时我们在经过抽样判决,将它们所在位置画成方波,最后通过相加得到原来的波形。
三、4FSK调制及相干解调matlab代码
clear ; % 清除所有变量
close all; % 关闭所有窗口
clc; % 清屏
%% 基本参数
% N=4; % 调制阶数
M=100; % 产生符号数
L=100; % 每码元复制L次,每个码元采样次数
Ts=0.001; % 每个码元的宽度,即码元的持续时间
R=1/Ts; % 码元速率1K
dt=Ts/L; % 采样间隔
TotalT=M*Ts; % 总时间
t=0:dt:TotalT-dt; % 时间
Fs=1/dt; % 采样间隔的倒数即采样频率
%% 确定传输信号
wave=randi([0, 3], 1, M); %产生发送比特数据;
%% 画出基带信号图形
figure(1)
fz=ones(1,L); % 定义复制的次数L,L为每码元的采样点数
x1=wave(fz,:); % 将原来wave的第一行复制L次,称为L*M的矩阵
jidai=reshape(x1,1,L*M);% 产生单极性不归零矩形脉冲波形,将刚得到的L*M矩阵,按列重新排列形成1*(L*M)的矩阵
subplot(2,2,1)
plot(t,jidai);
title("基带信号波形") % 标题
xlabel('时间'); % x轴标签
ylabel('幅度'); % y轴标签
%% 4FSK调制
modulated_signal = zeros(1, length(t)); % 初始化调制信号
fre1=2500;
f1= fre1;
f2= fre1+125;
f3= fre1+250;
f4= fre1+375;
for i = 1:M
% 根据每个元素值选择相应的频率
switch wave(i)
case 0
freq = f1;
case 1
freq =f2;
case 2
freq =f3;
case 3
freq =f4;
otherwise
error('Invalid input data');
end
% 生成调制信号
modulated_signal((i - 1) * L + 1:i * L) = cos(2 * pi * freq * t((i - 1) * L + 1:i * L));
end
%% 画出调制后的图像和频谱图
%画出4FSK图像
subplot(2,2,3)
plot(t,modulated_signal,'b',t,(jidai-1.5),'r');
title("4FSK信号波形") % 标题
xlabel('时间'); % x轴标签
ylabel('幅度'); % y轴标签
%画出频谱图
%信源频谱
T=t(end); % 时间
df=1/T; % 频谱分辨率
N=length(modulated_signal); % 采样长度
f=(-N/2:N/2-1)*df; % 频率范围
mf=fftshift(abs(fft(jidai)));%对信源信号采用快速傅里叶变换并移到矩阵中心
subplot(2,2,2)
plot(f,mf) % 绘制信源频谱波形
axis([-0,10000,-0.1,15000]);
title("基带信号频谱") % 标题
xlabel('频率/Hz'); % x轴标签
ylabel('幅度'); % y轴标签
grid;
%4FSK信号频谱
sf=fftshift(abs(fft(modulated_signal)));% 对2FSK信号采用快速傅里叶变换并将0-fs频谱移动到-fs/2-fs/2
subplot(2,2,4)
plot(f,sf) % 绘制调制信号频谱
axis([-0,10000,-0.1,1500]);
title("4FSK信号频谱") % 标题
xlabel('频率/Hz'); % x轴标签
ylabel('幅度'); % y轴标签
grid;
完整代码移步 4FSK信号调制-matlab-MFSK-相干解调-通信原理进行下载~