微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
本节目录
一、载波频率调制(FSK)的产生
二、载波频率调制(FSK)的解调
三、载波频率调制(FSK)的Matlab仿真
四、Matlab源码
本节内容
一、载波频率调制(FSK)的产生
载波频率调制,又称为频移键控FSK。
M个等能量、频率不同的正交信号波形,信号表达式:
等效低通信号波形:
上式中,E是每个符号的能量
Δf是相继两个频率之间的频率间隔,Δf=f(m)-f(m-1)
波形的特征是具有相等的能量及互相关系数
当Δf时1/(2T)的倍数时候,信号是正交的,也就是要保证信号的正交性,必须满足相继频率之间的最小频率间隔是1/(2T)。
二、载波频率调制(FSK)的解调
FSK信号经过awgn信道传输,每个信号在通过信道传输都产生延迟,解调器输入端的滤波后接收的信号表达式:
θm表示第m个信号由于传输延时而产生的相移,n(t)表示加性带通噪声。
MFSK解调常用的方式为非相干解调,原理框图
在非相干解调中,每个信号波形有两个相关器,总共有2M个相关器。
在检测器输入的2M个样本表达式:
上式中nkc和nks表示采样输出中的高斯噪声分量。
最佳检测器,又称为平方律检测器,当传输信号波形等概率时,通过计算平方包络(rk)^2= (rkc)^2+ (rks)2,并选出对应于{(rk)2}的最大值的信号。
MFSK信号的最佳包络检测器的符号差错概率表达式:
二进制FSK的差错概率,即M=2时,表达式
当M>2时,比特差错概率与符号差错概率的关系
三、载波频率调制(FSK)的Matlab仿真
matlab代码示例:
利用Matlab绘制4-FSK调制0:3的调制信号波形以及频谱图。
载波频率为4Hz,符号持续时间为1,每个符号内采样60个点。
从图中可以看出载波频率4Hz的两边,分布了对应符号0,1,3,2的频率2.5Hz,3.5Hz,4.5Hz,5.5Hz。
四、Matlab源码
clear all;
clc;
close all;
%4-FSK
M=4;
%符号持续时间
T=1;
%FSK的频率间隔
deltaf=1/T;
%采样频率
fs=60;
%采样时间间隔
ts=1/fs;
%一个符合周期的时间矢量
t=0:ts:T;
%载波频率
fc=4;
%消息序列
msg=[0 1 3 2 randi([0 M-1],1,10000-M)];
%4-FSK调制
msgmod=fskmod(msg,M,deltaf,fs,fs);
%消息序列时间矢量
t1=0:ts:length(msg)-ts;
%载波调制
y=real(msgmod.*exp(j*2*pi*fc*t1));
subplot(2,1,1);
plot(t1(1:4*fs),y(1:4*fs));
axis([0 4 -1.5 1.5]);
title('4FSK调制信号波形');
xlabel('时间');
ylabel('振幅');
%调制信号长度
ly=length(y);
freq=[-fs/2:fs/ly:fs/2-fs/ly];
%调制信号频谱
Syy=10*log10(fftshift(abs(fft(y)/fs)));
subplot(2,1,2);
plot(freq,Syy);
title('4FSK调制信号频谱');
xlabel('频率');
ylabel('幅度');