我是靠谱客的博主 粗犷花瓣,最近开发中收集的这篇文章主要介绍自适应滤波器提取单频信号实验2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

function adaptive_filter2(f1,Delta) 
length=2000; 
M=100;     %滤波器的阶数M 
Ts=0.0001; %采样间隔
A=1;        %幅值
B=2; 

f2=f1+Delta; % f2频率
phase=pi/4; 
noise=randn(1,length); %高斯白噪声,方差为1,偏差为0
k=1:length; 

F1=A*cos(2*pi*f1*k*Ts+phase); 
F2=B*cos(2*pi*f2*k*Ts);
F=F1+F2;
X=noise+F1+F2;               %输入滤波器的总信号
u1=0.0001;                   %μ的取值,u越小收敛越慢效果越好,u较大容易出现震荡现象
u2=0.0001; 

Weights1=zeros(1,M); %权重矩阵
Weights2=zeros(1,M);

Y1=zeros(1,length);
Y2=zeros(1,length);
error1=zeros(1,length);
error2=zeros(1,length);

for n=M:length 
    x=X(n:-1:n-M+1); 
    Y1(n)=x*Weights1';%转置
    error1(n)=F1(n)-Y1(n); 
    Weights1=Weights1+2*u1.*error1(n).*x; 
end 

for n=M:length 
    x=X(n:-1:n-M+1); 
    Y2(n)=x*Weights2';
    error2(n)=F2(n)-Y2(n); 
    Weights2=Weights2+2*u2.*error2(n).*x; 
end

figure(1);
subplot(4,1,1); 
plot(F1); 
title( '原始信号波形  F1'); 
subplot(4,1,2); 
plot(F2); 
title( '原始信号波形  F2');
subplot(4,1,3);
title( '混合信号波形  F(F=F1+F2)');
plot(F);
subplot(4,1,4); 
plot(X); 
title( '混合信号宽带干扰波形  X(X=S+F1+F2)'); 

figure(2);
subplot(4,1,1); 
plot(Y1); 
title( '滤波结果 y1')
subplot(4,1,2); 
plot(error1); 
title( '提取的单频信号波形  F1 的误差error1 ');
subplot(4,1,3); 
plot(Y2); 
title( '滤波结果 y2')
subplot(4,1,4); 
plot(error2); 
title( '提取的单频信号波形  F2 的误差error2')

最后

以上就是粗犷花瓣为你收集整理的自适应滤波器提取单频信号实验2的全部内容,希望文章能够帮你解决自适应滤波器提取单频信号实验2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部