七种滤波去噪⽅式
1巴特沃斯低通滤波器去噪
从图上可以看出巴特沃斯低通滤波器对信号⼀的滤波效果还是可以的,主要是因为有效的信号最⾼频率才30Hz,本程序将50Hz以上的信号全部滤除,通过的频率成分中仍然是有⽩噪声的。
对于信号⼆,滤波后的信号与没有加噪声的信号相⽐就有失真了,上升沿和下降沿的⾼频信号被滤除了。
2FIR低通滤波器去噪
3 移动平均滤波去噪
从上图可以看出,⽆论是对信号⼀还是对信号⼆,中值滤波的滤波效果都是很不错,特备是对于信号⼆,上升沿和下降失真⽐较的⼩。5 维纳滤波去噪
维纳滤波器属于现代滤波器,传统的滤波器只能滤除信号和⼲扰频带没有重叠的情况,当信号和⼲扰频带有重叠的时候传统滤波器将⽆能为⼒,这时就需要⽤到现代滤波器,现代滤波器利⽤信号和⼲扰的统计特征(如⾃相关函数、功率谱等)导出⼀套最佳估值算法,然后⽤硬件或软件予以实现。
维纳滤波是以均⽅误差最⼩( LMS(Least MeanSquare) 为准则的,它根据过去观测值和当前观测值来估计信号的当前值,因此它的解
6 ⾃适应滤波去噪
维纳滤波器参数是固定的,适合于平稳随机信号。卡尔曼滤波器参数是时变的,适合于⾮平稳随机信号。然⽽,只有在信号和噪声的统计特
本程序是基于LMS算法的⾃适应滤波,从上图可以看出,滤波效果也是很不错的,特别是对于信号⼆,上升沿有失真,下降沿保持还可以,最要的是得到的波形⼗分的平滑。由此可见⾃适应滤波极具使⽤价值。
7 ⼩波去噪
对于信号⼆,⼩波的去噪效果⾮常不错,虽然得到波形不是很平滑,但是上升沿和下降沿保持的⾮常⾼,基本可以看到棱⾓
nature欲是一款音乐睡眠的小程序。
。是通过模拟自然的声音,让您进入舒适的感觉中。nature欲是一款iPhone手机上的白噪音小程序。跟其他同类型软件类似,它也是通过播放一些特殊的音乐,比如大自然的声音,来达到放松身心目的。
对于睡眠音乐,在指导思想、创作手法、音乐风格方面都会与普通音乐大不相同,因为是为了缓解睡眠问题,提升睡眠质量而创作,所以具有明显的“平稳性”即作品表达的情绪、旋律、节奏都相对平稳。从音乐分类上来看,则以自然音、轻音乐、古典乐、白噪音、八音盒音乐为主。
bnet2 = mk_bnet(dag, node_sizes);
seed = 0;
rand('state', seed);
%随机初始化网络参数
bnet2CPD{C} = tabular_CPD(bnet2, C);
bnet2CPD{R} = tabular_CPD(bnet2, R);
bnet2CPD{S} = tabular_CPD(bnet2, S);
bnet2CPD{W} = tabular_CPD(bnet2, W);
bnet3 = learn_params(bnet2, samples);
CPT3 = cell(1,N);
for i=1:N
s=struct(bnet3CPD{i}); % violate object privacy
MATLAB中,论证加噪信号经FRFT变换、滤波后,有效滤除噪声中需要给信号加入高斯白噪声,不要以为轻易的产生一个随机矩阵直接加到信号中就可以喽。那样的噪声大小既不可控,又没有意义。下面是给信号xt加入信噪比为-10db的MATLAB程序段: SNR_db=-10; SNR=10^(SNR_db/10); %%%%%%%给LFM信号加高斯白噪声%%%%%%% %计算信号能量 sigpower=0; for i=1:length(xt) sigpower=sigpower+xt(1,i)^2;end%生成噪声 noisepower=sigpower/SNR;%所需噪声能量 noise=randn(1,length(xt));%产生均值为零,方差为一的随机高斯序列 noise=noise-repmat(mean(mean(noise)),1,length(xt));%让均值更接近于零%噪声校正 AWGNpower=0; for i=1:length(xt) AWGNpower=AWGNpower+noise(1,length(xt))^2;%生成噪声的能量end K=noisepower/AWGNpower;%所需噪声能量与实际生成噪声能量的比值 k=sqrt(K);%校正生成噪声加权值 snr=10log10(sigpower/sum((knoise)^2));%实际输出信噪比
简单写了一下,应该符合你的要求,具体的参数可以自己改
%main file
clc;
clear all;
A=01;
u=0005;
N=10;
t=linspace(-10,10,1000);
s=sawtooth(2pit,5);%triangle wave
noise=randn(1,1000);
x=s+Anoise;%add noise to triangle wave signal
[y e]=lms(x,s,u,N);
subplot(211);
plot(t,x);
title('original signal');
subplot(212);
plot(t,s,t,y);
title('LMS filter');
legend('taget','LMS filter out');
%%%file 2 LMS function
function[y,e]= lms(x,d,u,N)
M=length(x);
Y=zeros(1,M);
h=zeros(1,N);
e=zeros(1,M);
for n=N:M
xb=x(n:-1:n-N+1);
y(n)=hxb';
e(n)=d(n)-y(n);
h=h+2ue(n)xb;
end
在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。
根据awgn的实现代码可以知道“向已知信号添加某个信噪比(SNR)的高斯白噪声”,
即:awgn(x,snr,’measured’,'linear’),命令的作用是对原信号x添加信噪比(比值)为SNR的噪声,在添加之前先估计信号x的强度。
直接对原始信号添加噪声:
y=x+rand(length(x),1)
y=x+randn(length(x),1))
以上就是关于滤波器如何去除系统中的白噪音如何去除全部的内容,包括:滤波器如何去除系统中的白噪音如何去除、nature欲是什么小程序、如何用matlab得到白噪声的自相关函数和功率谱密度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)