1
我有興趣推導離散小波變換用於超過50,000個數據點的降噪。我正在使用wmulden-matlab工具進行小波變換。在這個函數下,wfastmcd,另一個函數被調用,一次只需要50000個數據點。如果有人建議如何劃分數據點以獲取整個數據集的變換,或者是否有其他任何可用於這些計算的matlab工具,這將非常有幫助。matlab wmulden中的wfastmod離散小波變換
我有興趣推導離散小波變換用於超過50,000個數據點的降噪。我正在使用wmulden-matlab工具進行小波變換。在這個函數下,wfastmcd,另一個函數被調用,一次只需要50000個數據點。如果有人建議如何劃分數據點以獲取整個數據集的變換,或者是否有其他任何可用於這些計算的matlab工具,這將非常有幫助。matlab wmulden中的wfastmod離散小波變換
我已經使用for
循環來解決這個問題。
首先,我計算出有多少「步」需要採取我的信號,50000固定大小的窗口上,如:
MAX_SAMPLES = 50000;
% mySignalSize is the size of my samples vector.
steps = ceil(mySignalSize/MAX_SAMPLES);
在那之後,我申請了wmulden
功能「臺階」次,檢查每次如果我的步驟是不是比原來的信號矢量大小,如下所示:
% Wavelet fields
level = 5;
wname = 'sym4';
tptr = 'sqtwolog';
sorh = 's';
npc_app = 'heur';
npc_fin = 'heur';
den_signal = zeros(mySignalSize,1);
for i=1:steps
if (i*MAX_SAMPLES) <= mySignalSize
x_den = wmulden(originalSignal((((i-1) * MAX_SAMPLES) + 1) : (i*MAX_SAMPLES)), level, wname, npc_app, npc_fin, tptr, sorh);
den_signal((((i-1) * MAX_SAMPLES) + 1):i*MAX_SAMPLES) = x_den;
else
old_step = (((i-1) * MAX_SAMPLES) + 1);
new_step = mySignalSize - old_step;
last_step = old_step + new_step;
x_den = wmulden(originalSignal((((i-1) * MAX_SAMPLES) + 1) : last_step), level, wname, npc_app, npc_fin, tptr, sorh);
den_signal((((i-1) * MAX_SAMPLES) + 1):last_step) = x_den;
end
end
這應該做的伎倆。
考慮閱讀[this](http://stackoverflow.com/help/how-to-ask)以獲得最佳答案 – brainkz
在我的MATLAB中沒有'wfastmod',你的意思是'wfastmcd'嗎? –
是的,它是wfastmcd! – Mambo