作业帮 > 综合 > 作业

matlab一维中值滤波的问题

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/30 11:38:52
matlab一维中值滤波的问题
程序 x=[.] %数据矩阵
y=medfilt1(x,n)
请问 这个n应该取多少
matlab一维中值滤波的问题
中值滤波是将每一点的值设置为该点某邻域窗口内的所有点的中值.这里的n就是领域的大小.
当n为偶数的时候,第k个点的滤波后的值是x(k-n/2)~x(k+(n/2)-1)的中位数
当n为奇数的时候,第k个点的滤波后的值是 x(k-(n-1)/2)~x(k+(n-1)/2)的中位数
至于n该取多少取决于你希望滤波的程度,n越大,滤波后的结果越平滑,原序列的细节就越少.matlab中n的默认值是3
再问: 我有2400个数据点 为什么我n取10的效果要比n取2400的效果好 并不是你说的n越大越好啊
再答: n越大越平滑,但是图像平滑不代表效果好 比如说你对2400个数据取n=2400,就是说数据的后半部分都是常数,而常数就是最平滑的曲线,但是却缺失了所有细节。 一般来说细节和平滑性是不能兼顾的,你希望更为平滑一些那就n取大一些,你希望保留更多的细节,那就n取小一些,具体n取值还是根据实际情况