2fsk的matlab仿真程序
时间: 2023-10-16 14:26:35 浏览: 43
以下是2FSK的MATLAB仿真程序示例:
```matlab
%% 2FSK仿真程序
% 设定参数
f1 = 1000; % 第一个频率
f2 = 2000; % 第二个频率
Fs = 8000; % 采样率
T = 1/Fs; % 采样间隔
dur = 1; % 信号持续时间
A = 1; % 信号幅度
fc = 3000; % 载波频率
Ac = 1; % 载波幅度
dev_freq = 500; % 频率偏移量
% 生成调频信号
t = 0:T:(dur-T);
s1 = A*sin(2*pi*f1*t);
s2 = A*sin(2*pi*f2*t);
s_fsk = A*sin(2*pi*(f1+dev_freq*(s2-s1)/(2*(f2-f1)))*t);
% 生成载波信号
c = Ac*sin(2*pi*fc*t);
% 调制
s_mod = s_fsk.*c;
% 绘制调制信号
figure(1);
subplot(3,1,1);
plot(t,s_fsk);
title('调频信号');
xlabel('时间(秒)');
ylabel('幅度');
subplot(3,1,2);
plot(t,c);
title('载波信号');
xlabel('时间(秒)');
ylabel('幅度');
subplot(3,1,3);
plot(t,s_mod);
title('调制后信号');
xlabel('时间(秒)');
ylabel('幅度');
% 解调
% 频率解调
s_demod = diff(s_mod).*c(1:end-1);
s_demod = filter(ones(1,10)/10,1,s_demod); % 低通滤波
s_demod = s_demod-mean(s_demod); % 去掉直流分量
% 绘制解调后信号
figure(2);
subplot(2,1,1);
plot(t,s_mod);
title('调制后信号');
xlabel('时间(秒)');
ylabel('幅度');
subplot(2,1,2);
plot(t(1:end-1),s_demod);
title('解调后信号');
xlabel('时间(秒)');
ylabel('幅度');
```
该程序生成了一个2FSK调制信号,并进行了频率解调。可以通过修改参数来进行不同的仿真实验。