我有一個信號,它是一個數組(長度爲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