在二元尺度上创建高斯小波矩阵

信息处理 matlab 小波
2022-02-11 22:23:29

我需要创建一个包含高斯小波函数的傅立叶系数的对角矩阵,但我不确定该怎么做。

目前,我正在使用函数ConstructHaarWaveletTransformationMatrix生成Haar 小波矩阵,并将二元尺度(2、4、8 和 16)的行作为变换:

M = 256
H = ConstructHaarWaveletTransformationMatrix(M);
fi = conj(dftmtx(M))/M;
H = fi*H;
H = H(4,:);
H = diag(H);

等等

我如何对高斯小波重复这个?是否有内置的MATLAB函数可以为我执行此操作?

作为参考,我在Compressed Sensing for Wideband Cognitive Radios的论文第 4 节中实现了算法。

我需要对一维信号进行边缘检测,其结构如下:

edges = [50, 120, 170, 200, 220, 224, 256];
levels = [24,3,30,0,36,0,0];
idxs = zeros(1,max(edges));
idxs(edges(1:end-1)+1) = 1;
psd = levels(cumsum(idxs)+1);

当我只是 wavdec 和微分矩阵时:

[y1,y2] = wavedec(psd, 0, 'haar');
z0 = gamma*y1.';

我得到了我想要的。

然而,重点是我想压缩地重新创建这个边缘信息(即通过求解线性程序)。

使用上面的矩阵会产生乱码的事实是我目前的症结所在。我想用别的东西代替它,看看它是否仍然有效。

1个回答

在这种情况下,问题是我在频域工作,但在时域实现算法。

我已经删除了时域中傅里叶矩阵的预乘,一切正常。