2FSK的调制解调matlab
时间: 2023-10-16 15:27:04 浏览: 70
2FSK调制解调MATLAB 程序
4星 · 用户满意度95%
2FSK是一种频移键控调制方式,即基于数字信号的频率改变来传递信息。在2FSK中,使用两个不同的频率表示二进制数字0和1,调制信号和载波一起传输,接收端通过检测信号频率的变化来识别每个二进制数字。下面是2FSK调制和解调的Matlab代码示例:
```matlab
% 2FSK调制
fc = 100; % 载波频率
fs = 1000; % 采样频率
fb = 10; % 信号频率
t = 0:1/fs:1; % 时间序列
data = [1 0 1 1 0 0 1 0]; % 待传输的二进制数据
s = []; % 调制信号
for i = 1:length(data)
if data(i) == 0
s = [s sin(2*pi*fc*t+2*pi*fb*t)];
else
s = [s sin(2*pi*fc*t-2*pi*fb*t)];
end
end
plot(s); % 绘制调制信号图形
% 2FSK解调
x = s .* sin(2*pi*fc*t); % 接收信号
f1 = 2*fb; % 数字0对应的频率
f2 = -2*fb; % 数字1对应的频率
y1 = sin(2*pi*f1*t); % 参考信号1
y2 = sin(2*pi*f2*t); % 参考信号2
z1 = x .* y1; % 相乘
z2 = x .* y2; % 相乘
z1f = abs(fft(z1)); % 傅里叶变换
z2f = abs(fft(z2)); % 傅里叶变换
if z1f(2) > z2f(2) % 判断信号频率
result = [1 0 1 1 0 0 1 0];
else
result = [0 1 0 0 1 1 0 1];
end
disp(result); % 输出解调结果
```
阅读全文