通信抗干扰matlab的代码
时间: 2023-10-25 14:10:14 浏览: 25
以下是一个简单的通信抗干扰MATLAB代码,使用低通滤波器和高斯白噪声生成器来模拟通信信号和干扰信号的影响:
```matlab
% 定义信号参数
fs = 1000; % 采样率
t = 0:1/fs:1; % 时间向量
f1 = 10; % 信号频率
f2 = 100; % 干扰频率
A = 1; % 信号幅度
SNR = 10; % 信噪比
% 生成信号和干扰信号
signal = A*sin(2*pi*f1*t); % 信号
noise = randn(size(t)); % 高斯白噪声
interference = sin(2*pi*f2*t); % 干扰信号
% 加入干扰信号
noisy_signal = signal + interference;
% 低通滤波
fc = 50; % 截止频率
[b,a] = butter(6,fc/(fs/2)); % 6阶低通滤波器
filtered_signal = filter(b,a,noisy_signal);
% 添加噪声
noise_power = (norm(signal)/sqrt(length(signal))) / (10^(SNR/20)); % 计算噪声功率
noisy_filtered_signal = filtered_signal + noise_power*noise;
% 绘制信号和干扰信号
figure;
subplot(2,1,1);
plot(t,signal,'b',t,interference,'r');
xlabel('时间 (s)');
ylabel('振幅');
legend('信号','干扰信号');
title('信号和干扰信号');
% 绘制滤波后的信号和添加噪声后的信号
subplot(2,1,2);
plot(t,filtered_signal,'b',t,noisy_filtered_signal,'r');
xlabel('时间 (s)');
ylabel('振幅');
legend('滤波后的信号','添加噪声后的信号');
title('滤波后的信号和添加噪声后的信号');
```
该代码生成一个10 Hz正弦信号和100 Hz正弦干扰信号,然后将它们相加并通过一个6阶低通滤波器进行滤波。最后,根据所选的信噪比添加高斯白噪声。绘制结果包括信号和干扰信号以及滤波后的信号和添加噪声后的信号。