数字信号处理 --信号的平滑去噪

        数字信号处理应用的一个常见例子是从被加性噪声污染的信号中移除噪声。假定信号s[n]被噪声d[n]所污染,得到一个含有噪声的信号x[n]=s[n]+d[n]。我们需要对x[n]进行运算,产生一个合理的逼近s[n],对时刻n的样本求平均,产生输出信号是一种简单有效的方法。

三点滑动平均的信号。

% Signal Smoothing by Averaging
clf;
R = 51;
d = 0.8*(rand(R,1) - 0.5); % 产生随机噪声
m = 0:R-1;
s = 2*m.*(0.9.^m); % 产生未被污染的信号
x = s + d'; %产生被噪声污染的信号
subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
title('原始信号、噪声、污染的信号');
legend('噪声','原始信号','污染的信号');
x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];
y = (x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--');
legend( '滤波后的信号','原始信号');
xlabel('Time index n');ylabel('Amplitude');
title('原始信号、滤波后的信号');

fb954a909b0f402db77bec942234aa75.png

五点滑动平均的信号。

% Signal Smoothing by Averaging
clf;
R = 51;
d = 0.8*(rand(R,1) - 0.5); 
m = 0:R-1;
s = 2*m.*(0.9.^m); 
x = s + d'; 
subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
title('原始信号、噪声、污染的信号');
legend('噪声','原始信号','污染的信号');
x1 = [0 0 0 0 x];
x2 = [0 0 0 x 0];
x3 = [0 0 x 0 0];
x4 = [0 x 0 0 0];
x5 = [x 0 0 0 0];
y = (x1 + x2 + x3 + x4 + x5)/5;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--');
legend( '滤波后的信号','原始信号');
xlabel('Time index n');ylabel('Amplitude');
title('原始信号、滤波后的信号');

99f171194a20457f997a5d18b3d0c335.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值