Dr. Ron Rubinstein的KSVDBOX13工具箱我已经安装成功了,运行DEMO也OK,ksvddemo代码如下:% dictionary dimensions
n = 20;
m = 50;
% number of examples
L = 1500;
% sparsity of each example
k = 3;
% noise power (dB)
snr = 20;
%% generate random dictionary and data %%
D = normcols(randn(n,m));
Gamma = zeros(m,L);
for i = 1:L
p = randperm(m);
Gamma(p(1:k),i) = randn(k,1);
end
X = D*Gamma;
X = normcols(X) + 10^(-snr/20)*normcols(randn(n,L));
%% run k-svd training %%
params.data = X;
params.Tdata = k;
params.dictsize = m;
params.iternum = 30;
params.memusage = 'high';
[Dksvd,g,err] = ksvd(params,'');
第一、上例中的初始化字典是n*m=20*50matrix,那么我要处理的信号是一维的,比如是一个1*1024的序列,请问这个初始化的字典我要怎么生成,随意取吗?
第二、number of examples ----L,第一中的1*1024的序列,它的L=1024?
第三、有劳大牛能否举个简单例子,说明下该工具箱要怎么使用?
请各位大牛知道,刚刚学信号稀疏表示,不懂得实在太多,但是坚持学习,总会有收获!谢谢
n = 20;
m = 50;
% number of examples
L = 1500;
% sparsity of each example
k = 3;
% noise power (dB)
snr = 20;
%% generate random dictionary and data %%
D = normcols(randn(n,m));
Gamma = zeros(m,L);
for i = 1:L
p = randperm(m);
Gamma(p(1:k),i) = randn(k,1);
end
X = D*Gamma;
X = normcols(X) + 10^(-snr/20)*normcols(randn(n,L));
%% run k-svd training %%
params.data = X;
params.Tdata = k;
params.dictsize = m;
params.iternum = 30;
params.memusage = 'high';
[Dksvd,g,err] = ksvd(params,'');
第一、上例中的初始化字典是n*m=20*50matrix,那么我要处理的信号是一维的,比如是一个1*1024的序列,请问这个初始化的字典我要怎么生成,随意取吗?
第二、number of examples ----L,第一中的1*1024的序列,它的L=1024?
第三、有劳大牛能否举个简单例子,说明下该工具箱要怎么使用?
请各位大牛知道,刚刚学信号稀疏表示,不懂得实在太多,但是坚持学习,总会有收获!谢谢