error= sum(abs(at-st1))/length(st1); % 计算 FSK_filt 的误码率 % 显示误码率信噪比0-10变化,计算误码率并做图
时间: 2024-02-25 19:57:13 浏览: 71
zf.zip_ZF_ZF误码率_信噪比_发射功率_天线误码率
以下是计算FSK_filt的误码率,并绘制误码率随信噪比变化的图表的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 = 0:1:10; % 信噪比范围
error = zeros(1,length(SNR)); % 误码率数组
for i = 1:length(SNR)
noisy = awgn(modulated, SNR(i), 'measured'); % 加入高斯白噪声
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); % 解调
error(i) = sum(abs(msg-demodulated))/length(msg); % 计算误码率
end
% 绘制图表
plot(SNR, error);
title('Error Rate vs. SNR');
xlabel('SNR (dB)');
ylabel('Error Rate');
```
这个代码生成了一个包含二进制消息的FSK信号,并计算了信噪比范围内的误码率。然后,它绘制了误码率随信噪比变化的图表。
阅读全文