📄 fskdemode2.m
字号:
%经典谱估计直接法实现FSK信号的解调
%中频fc为15MHz,采样率fs为50MHz
%一个脉冲内5bit信息
%fs=n/tb,tb为码元宽度,n为一个码元内的采样点数
clear all;
fs=5.0e+007;
ts=1/fs;
tb=5e-006;%码元宽度5us
sample=tb/ts;%一个码元内采样250个点
fc=1.5e+007;
f1=fc+8/(tb);%1.66e+007,对应1
f2=fc-8/(tb);%1.34e+007,对应0
B=5.0e+006;
%对该输入信号FSK调制
Xin=[1,1,1,1,1,1,0,1,1,1];%randn(5,1)>0;
tt=(0:tb/sample:tb-(tb/sample));
t=[tt;tt+tb;tt+2*tb;tt+3*tb;tt+4*tb;tt+5*tb;tt+6*tb;tt+7*tb;tt+8*tb;tt+9*tb];
y=zeros(10,length(tt));
for i=1:10
y(i,:)=Xin(i)*cos(2*pi*f1*t(i,:))+~Xin(i)*cos(2*pi*f2*t(i,:));
end
t=reshape(t',length(tt)*10,1);
y=reshape(y',length(tt)*10,1);
%变换到基带
p1=cos(2*pi*fc*t-2*B*pi*t/2);
z=y.*p1;
%窗设计低通FIR滤波器
%假设信号带宽为3.5MHz
fs=3.22e+007;
fn=1.0e+007;%截止频率
Wn=fn/fs;
N=127;%低通FIR滤波器的阶数
K=FIR1(N,Wn);
H=zeros(1,2500);
Y=conv(z,K);
n=250;
%截取后320个点
for j=1:2500
H(j)=Y(j+63);
end
%长度为1250
%解调FSK信号
%谱估计:直接法
k1=floor(250*(f1-fc+B/2)/fs)
k2=floor(250*(f2-fc+B/2)/fs)
for i=1:10
for j=1:n
C(i,j)=H(j+(i-1)*n);
end
end
OUT=zeros(1,10);
for i=1:10
A=fft(C(i,:));
for j=1:n
Pxx(j)=(abs(A(j))^2)/n;
end
if(Pxx(k1)>Pxx(k2))
OUT(i)=1;
else
OUT(i)=0;
end
end
OUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -