自适应滤波

自适应滤波存在于信号处理、控制、图像处理等许多不同领域,它是一种智能更有针对性的滤波方法,通常用于去噪。

%**************************************************************************************** % % 创建两个信号Mix_Signal_1 和信号 Mix_Signal_2 % %*************************************************************************************** Fs = 1000; %采样率 N = 1000; %采样点数 n = 0:N-1; t = 0:1/Fs:1-1/Fs; %时间序列 Signal_Original_1 =sin(2*pi*10*t)+sin(2*pi*20*t)+sin(2*pi*30*t); Noise_White_1 = [0.3*randn(1,500), rand(1,500)]; %前500点高斯分部白噪声,后500点均匀分布白噪声 Mix_Signal_1 = Signal_Original_1 + Noise_White_1; %构造的混合信号 Signal_Original_2 = [zeros(1,100), 20*ones(1,20), -2*ones(1,30), 5*ones(1,80), -5*ones(1,30), 9*ones(1,140), -4*ones(1,40), 3*ones(1,220), 12*ones(1,100), 5*ones(1,20), 25*ones(1,30), 7 *ones(1,190)]; Noise_White_2 = 0.5*randn(1,1000); %高斯白噪声 Mix_Signal_2 = Signal_Original_2 + Noise_White_2; %构造的混合信号

%**************************************************************************************** % % 信号Mix_Signal_1 和 Mix_Signal_2 分别作自适应滤波 % %*************************************************************************************** %混合信号 Mix_Signal_1 自适应滤波 figure(6); N=1000; %输入信号抽样点数N k=100; %时域抽头LMS算法滤波器阶数 u=0.001; %步长因子 %设置初值 yn_1=zeros(1,N); %output signal yn_1(1:k)=Mix_Signal_1(1:k); %将输入信号SignalAddNoise的前k个值作为输出yn_1的前k个值 w=zeros(1,k); %设置抽头加权初值 e=zeros(1,N); %误差信号 %用LMS算法迭代滤波 for i=(k+1):N XN=Mix_Signal_1((i-k+1):(i)); yn_1(i)=w*XN'; e(i)=Signal_Original_1(i)-yn_1(i); w=w+2*u*e(i)*XN; end subplot(4,1,1); plot(Mix_Signal_1); %Mix_Signal_1 原始信号 axis([k+1,1000,-4,4]); title('原始信号'); subplot(4,1,2); plot(yn_1); %Mix_Signal_1 自适应滤波后信号 axis([k+1,1000,-4,4]); title('自适应滤波后信号'); %混合信号 Mix_Signal_2 自适应滤波 N=1000; %输入信号抽样点数N k=500; %时域抽头LMS算法滤波器阶数 u=0.000011; %步长因子 %设置初值 yn_1=zeros(1,N); %output signal yn_1(1:k)=Mix_Signal_2(1:k); %将输入信号SignalAddNoise的前k个值作为输出yn_1的前k个值 w=zeros(1,k); %设置抽头加权初值 e=zeros(1,N); %误差信号 %用LMS算法迭代滤波 for i=(k+1):N XN=Mix_Signal_2((i-k+1):(i)); yn_1(i)=w*XN'; e(i)=Signal_Original_2(i)-yn_1(i); w=w+2*u*e(i)*XN; end subplot(4,1,3); plot(Mix_Signal_2); %Mix_Signal_1 原始信号 axis([k+1,1000,-10,30]); title('原始信号'); subplot(4,1,4); plot(yn_1); %Mix_Signal_1 自适应滤波后信号 axis([k+1,1000,-10,30]); title('自适应滤波后信号');


 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值