使用MATLAB我將Matching Pursuit應用於近似信號。我的問題是,我很難想象所選原子的時頻表示。我正在嘗試製作類似於以下圖像的Wigner圖(source)。匹配追蹤原子的MATLAB Wigner圖
我都看着小波工具箱,信號處理工具箱以及開源的時頻工具箱,但我可能只是使用了錯誤的參數,因爲我與信號處理經驗是相當有限。
例
使用this data我的目標是從上面複製的情節。
% fit the signal using MP
itermax = 50;
signal = load('signal.txt');
dict = wmpdictionary(length(signal));
[signal_fit, r, coeff, iopt, qual, X] = wmpalg('OMP', signal, dict, ...
'itermax', itermax);
% wigner plot of the simulated signal
tfrwv(signal_fit) % wigner-ville function from time-frequency toolbox
% wigner plot of each atom
atoms = full(dict(:, iopt)) % selected atoms
for i = 1:itermax
tfrwv(atoms(:, i))
end
不幸的是,沒有一個結果圖接近目標可視化。請注意,在這個例子中,我使用tfrwv
和標準參數,這些標準參數隨着它打開的GUI進行調整。
我非常感謝您的幫助。
更新
我想我現在已經明白,一個需要使用的Gabor原子得到斑點與形狀類似拉伸高斯。不幸的是,在Signal Processing Toolbox的預定義字典中沒有Gabor函數。然而,this question幫我實現所需的字典,這樣,我得到原子看起來頗爲相似,例如:
由於我的情節接近,但還不完善,還存在兩個問題打開:
- 我們在第一個例子中看到的所有斑點都可以單獨由Gabor原子建模,還是我需要另一個函數字典?
- 我該如何將獨立的imagesc圖組合成一個可視化圖?
也許你可以使用圖像的標題來編寫自己的可視化代碼,而不是使用'tfrwv'。 「熱圖中的每個像素(頂部)代表一個原子(根據水平位置以時間爲中心並且頻率與高度相對應的小波)。像素的顏色給出對應的小波原子與信號的內積(底部)。」你已經有了你的原子,所以現在你只需要拿出內部產品。 – Cecilia
感謝您的評論。繪製原子不是我認爲的主要問題。請參閱我目前狀態的更新。 – imant