FSK解调matlab代码
时间: 2023-07-03 12:23:58 浏览: 108
以下是一个简单的FSK解调Matlab代码示例:
```matlab
% 生成FSK信号
fs = 10000; % 采样率
f1 = 1000; % 第一个频率
f2 = 2000; % 第二个频率
t = 0:1/fs:1; % 时间向量
msg = [0 1 0 1 1 0 1 0]; % 待发送的二进制消息
modulated = fskmod(msg,f1,f2,fs); % 生成FSK信号
% 加入噪声
SNR = 10; % 信噪比
noisy = awgn(modulated, SNR, 'measured'); % 加入高斯白噪声
% 解调FSK信号
freqsep = f2-f1; % 频率间隔
nsamp = 16; % 采样率
[b,a] = butter(6, freqsep/(2*fs), 'low'); % 低通滤波器
filtered = filter(b, a, noisy); % 滤波
t = 0:nsamp:length(filtered)-1; % 采样时间
samples = filtered(t+1); % 采样
demodulated = fskdemod(samples,f1,freqsep,nsamp,fs); % 解调
% 显示结果
subplot(3,1,1);
plot(t,modulated);
title('Modulated Signal');
subplot(3,1,2);
plot(t,filtered);
title('Filtered Signal');
subplot(3,1,3);
plot(t,demodulated);
title('Demodulated Signal');
```
这个代码生成了一个包含二进制消息的FSK信号,并加入了高斯白噪声。然后,它使用一个低通滤波器和采样器解调信号,并显示了原始FSK信号,滤波信号和解调信号。
阅读全文