-
概述
- 在现有的众多抑制窄带干扰的信号处理手段中,时域自适应陷波干扰抑制技术具有实现简单、抗干扰性能好等优点。IIR陷波器按照结构可以分为直接型和格型两种。相比自适应直接型IIR陷波器,自适应格型IIR陷波器不仅可以准确地控制滤波器的陷波频率,也可以准确地调整陷波器的带宽。
-
传递函数
-
二阶自适应IIR格型陷波器的传递函数H(z)为:
-
其中α与陷波带宽有关,β与陷波频率有关;对应的结构如下图所示:
-
Matlab算法实现
-
思路:通过rife算法估计出干扰频率,采用自适应滤波器IIR算法,滤除正弦波干扰信号
-
参考部分源码:
-
clc,clear,close all; f=200; %信号频率为 A=4; %设置正弦波幅值 N=1024; %采样点个数 n=0:N-1; %采样序列 fs=2000; %采样频率为 fs=2K ts=1/fs; %采样间隔 T=N*ts; %采样时间 m=-fs/2:(fs/N):(fs/2-(fs/N)); %其中fs/N为采样分辨率 % % % f1=20; s_n=sin(2*pi*f1*n*ts); subplot(4,2,1);plot(n*ts,s_n); title('原始信号:sin(2*pi*f1*n*ts)'); subplot(4,2,2);plot(m,abs(fftshift(fft(s_n)))); title('频谱分析'); SNR=10; s_n=awgn(s_n,SNR); %SNR参数,可参考awgn函数 subplot(4,2,3);plot(n*ts,s_n); title('原始信号+高斯噪声'); subplot(4,2,4);plot(m,abs(fftshift(fft(s_n)))); title('频谱分析'); i_n=A*sin(2*pi*f*n*ts); %生成正弦波信号,干扰信号 xn=s_n+i_n; %添加干扰信号 subplot(4,2,5);plot(n*ts,xn); title('原始信号+高斯噪声+窄带干扰') subplot(4,2,6);plot(m,abs(fftshift(fft(xn)))); title('频谱分析'); %%%使用rife算法进行频率估计 yw=abs(fft(xn)); %傅里叶变换 % subplot(4,1,4);plot(n,yw); [valueMax,posMax] = max(yw(1:N)); %得到谱线最大值与坐标 if( yw(posMax+1) >= yw(posMax-1)) %判断r的值 r=1; else r=-1; end
运行结果:
-
其中在频谱上200Hz高峰是干扰信号,20Hz的高峰是有用信号;通过4-2-6、4-2-8图片对比可以看到200Hz的干扰信号滤除了,保留了20Hz的有用信号。
-
参考源码链接:
自适应IIR格型滤波器的Matlab实现
于 2022-05-11 14:38:10 首次发布