我有一个信号,它是一个数组(长度为m),并且我有一个类型为salt和papper的噪音。我已经应用了低通滤波器(LPF),并取得了非常好的结果。不过,我想对信号应用中值滤波器,并与LPF的结果进行比较)。如何在Matlab上将中值滤波器应用于信号(数组)?
我知道功能是medfilt1(X,N)
,但不知道N代表什么。
函数是:y = medfilt1(X,X,BLKSZ,DIM)
我想将它应用到一个数组raw_Signal <5000x1double>
。
对于葛X raw_Signal
我用
N=3 %the default number
BLKSZ= 5
DIM = 1 %apply the filter to the rows
函数的输出是经滤波的信号,但我不理解输入的N很好。任何人都可以用一个例子向我解释。
好吧,其实我误解了N与BLKSZ。其实我不知道这是什么BLKSZ,但我知道什么是N. 你能解释一下BLKSZ是什么吗?它与CPU的内存有什么关系? –
您是否阅读过文档? ** y = medfilt1(x,n,blksz)使用for循环一次计算blksz(块大小)输出采样。**它进一步描述计算blksz输出采样将需要N×blksize的工作矩阵。 blksize默认是长度(x)(换句话说,计算一遍中的所有输出样本)。如果这会挂断您的机器,或者无法完成,请按照上述说明选择blksize。 – Peter