平均滤波器不能滤除信号中的脉冲噪声,而中值滤波器可以消除部分脉冲噪声
中值滤波器的原理:
按照样本的幅值排序,然后选择其中的中值,作为滤波器的输出

代码实现如下:

clear all; clf
N=200;
n=0:N-1;%产生200个脉冲噪声,生成脉冲噪声数组
for m=1:N,d=randn(1, 1);if d >= 0.95,noise(m)=-1.5;elsenoise(m)=0;end
end%画噪声信号
subplot(511);
t=0:1:N-1;
plot(t, noise);
title('噪声信号');%画原信号
x=[2*cos(pi*n(1:100)/256) zeros(1, 100)];
subplot(512);
t=0:1:N-1;
plot(t, x);
title('原信号');%画噪声信号+原信号
y1=x+noise;
subplot(513);
t=0:1:N-1;
plot(t, y1);
title('噪声信号+原信号');%画均值滤波后的信号
z2=average(15, y1);
subplot(514);
t=0:1:N-1;
plot(t, z2);
title('均值滤波后的信号');%对y1(-2) 到 y1(3) 进行中值滤波,得到z1(1)
z1(1)=median([0 0 y1(1)  y1(2) y1(3)]);
%对y1(-1) 到 y1(4) 进行中值滤波,得到z1(2)
z1(2)=median([0 y1(1)  y1(2) y1(3) y1(4)]);
%对y1(197) 到 y1(201) 进行中值滤波,得到z1(199)
z1(N-1)=median([y1(N-3)  y1(N-2)  y1(N-1)  y1(N)  0]);
%对y1(198) 到 y1(202) 进行中值滤波,得到z1(200)
z1(N)=median([y1(N-2)  y1(N-1)  y1(N)  0  0]);
%对y1(1) 到 y1(200) 进行中值滤波,得到其他值z1(3)到z1(198)
for k=3:N-2,z1(k)=median([y1(k-2)  y1(k-1)  y1(k)  y1(k+1) y1(k+2)]);
end%画中值滤波后的信号
subplot(515);
t=0:1:N-1;
plot(t, z1);
title('中值滤波后的信号');function y=average(M, x)b=1/M*ones(1, M);y=filter(b, 1, x);
end

可以看出中值滤波比平均滤波效果好一些

这里不得不补充说明:中值滤波的好坏取决于脉冲噪声的宽度,如果生成的脉冲宽度很窄,那么中值滤波的效果就会很好。(因为脉冲噪声信号的生成是随机的,所以中值滤波的效果也不能保证。)

运行多此后总会生成一个比较适合中值滤波处理的脉冲噪声

matlab 实现中值滤波相关推荐

  1. matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...

    由于种种原因,图像在生成.传输.变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化.噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法.线性滤波方法一般具有低通特性,而 ...

  2. 【图像去噪】基于matlab自适应中值滤波图像去噪【含Matlab 1156期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab自适应中值滤波图像去噪[含Matlab 1156期] (https://download.csdn.net/d ...

  3. matlab图像处理-中值滤波原理

    中值滤波原理   中值滤波本质上是一种统计排序滤波器.对于原图像中某点(i,j),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为(i,j)点的响应.   中值不同于均值,是指排序队列中位于中 ...

  4. matlab实现中值滤波程序,中值滤波流程(matlab平滑滤波和中值滤波程序)

    matlab平滑滤波和中值滤波程序 glRasterPos2i(100,100); //定位当前光标 glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'H'); //写 ...

  5. matlab实现 中值滤波去除基线漂移,快速中值滤波在滤除心电信号基线漂移中的应用...

    [摘要]文中给出了一种非线性的滤除心电信号基线漂移的滤波方法,把基于排序统计理论的快速中值滤波方法应用于处理心电信号,通过多次对心电信号中选择的窗口数据进行排序,然后取中值的方法来达到滤波的效果.试验 ...

  6. matlab实现中值滤波程序,中值滤波matlab程序

    中值滤波3*3滤波窗口 程序如下: >> i=imread('Winter.jpg'); %读入图像 subplot(2,2,1); imshow(i); %显示原始图像 title('o ...

  7. MATLAB自适应中值滤波

    % 自适应中值滤波 clc,clear,close all % 清理命令区.清理工作区.关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 [file ...

  8. matlab 中medfilt2报错,Matlab图像处理——中值滤波medfilt2问题解决

    程序: I=imread('13.jpg');%读入图像 imshow(I); h=imnoise(I,'salt & pepper');%为I图片叠加椒盐噪声噪声 figure;imshow ...

  9. FPGA中值滤波实现并Modelsim仿真,与MATLAB中值滤波进行对比

    文章目录 一.中值滤波算法 二.FPGA实现中值滤波 2.1 3*3窗口的生成 2.2 排序模块 2.3中值滤波模块 2.4 整体RTL图 三.modeslim仿真 四.matlab中值滤波 五.效果 ...

最新文章

  1. 设计模式之C#实现---- ProtoType
  2. 他676分考上清华却没微信,看到他的手机后大家沉默了
  3. Path Sum II leetcode java
  4. Linux 操作系统原理 — 网络 I/O 虚拟化
  5. logical_not torch
  6. vc怎么查看c源码的汇编语言,VC++代码的汇编分析(一)
  7. (剑指Offer)面试题10:二进制中1的个数
  8. Java爬虫抓取网页
  9. CentOS利用crontab执行计划任务
  10. vue-router之路由属性配置说明
  11. java jar包示例_Java包getSpecificationVersion()方法和示例
  12. 【读书笔记】the TeXBook 1
  13. 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...
  14. SEO学习步骤--SEO入门第一章
  15. 安卓4.4不支持touchend事件解决办法
  16. 人工智能python的缺点_浅谈人工智能的优缺点及使用环境
  17. H3C官方培训课件大全
  18. python-爬取贴吧的时候表情的处理。
  19. java web 站内信 设计
  20. Android4.4电池电量命令行查看

热门文章

  1. selenium 爬虫
  2. linux输出根目录下的文件名
  3. 28377D中CPU2操作EMIF1要点
  4. redhat linux防火墙状态,RedHat Linux下iptables防火墙设置
  5. IE9 input 上传文件
  6. SAP 如何重开固定资产会计年度
  7. JAVA高级面试总结
  8. GD32实战7__中断
  9. 鲜果RSS服务关闭,RSS阅读依旧不灭
  10. python集合输出_Python之集合