matlab 2fsk包络检波代码
时间: 2024-05-26 18:09:44 浏览: 188
fsk.zip_3dm_FSK调制解调_fsk解调_包络检波_包络检波 matlab
5星 · 资源好评率100%
MATLAB中实现2FSK包络检波的代码可以分为以下几个步骤:
1. 读取调制信号,将其进行解调。
2. 对解调后的信号进行带通滤波,得到包络信号。
3. 对包络信号进行门限检测,得到二进制序列。
下面是一个示例代码:
```matlab
% 读取调制信号
[sig, Fs] = audioread('fsk_signal.wav');
% 解调信号
f1 = 1000; % 第一个频率为1000Hz
f2 = 2000; % 第二个频率为2000Hz
t = linspace(0, length(sig)/Fs, length(sig));
sig1 = sin(2*pi*f1*t);
sig2 = sin(2*pi*f2*t);
demod_sig1 = sig .* sig1';
demod_sig2 = sig .* sig2';
demod_sig = demod_sig1 - demod_sig2;
% 带通滤波
fc = 1500; % 中心频率为1500Hz
Bw = 500; % 带宽为500Hz
[b, a] = butter(6, [fc-Bw/2, fc+Bw/2]/(Fs/2), 'bandpass');
envelope_sig = abs(filter(b, a, demod_sig));
% 门限检测
threshold = 0.5;
binary_seq = (envelope_sig > threshold);
% 显示结果
subplot(3, 1, 1);
plot(t, sig);
title('原始调制信号');
subplot(3, 1, 2);
plot(t, envelope_sig);
title('包络信号');
subplot(3, 1, 3);
plot(t, binary_seq);
title('二进制序列');
```
阅读全文