热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

压缩感知稀疏基之离散哈特莱变换(DHT)和离散W变换

题目:压缩感知稀疏基之离散哈特莱变换(DHT)和离散W变换在前面的《压缩感知的常见稀疏基名称及离散傅里叶变换基》中提到了DWT,并没有提到离散哈特莱变换(DiscreteHa

题目:压缩感知稀疏基之离散哈特莱变换(DHT)和离散W变换

 

在前面的《压缩感知的常见稀疏基名称及离散傅里叶变换基》中提到了DWT,并没有提到离散哈特莱变换(Discrete Hartley Transform, DHT),但讨论正交变换理论下的稀疏基,比较常见的正交变换应该提一下的,虽然前面提到的DWT也不知道是不是指的离散W变换,因为一般情况下DWT是指的离散小波变换(DiscreteWavelet Transform, DWT),有时也指离散沃尔什变换(Discrete WalshTransform, DWT),不管它是不是指的离散W变换吧,这里都讨论一下吧,之所以把DHT和离散W变换放到一起是因为DHT是离散W变换的四种形式中的第一种形式。下面提到DWT即指离散W变换而不是离散小波变换等其它变换。

注:有时DHT也用来表示离散哈达玛变换(Discrete HadamardTransform DHT)。

一、离散哈特莱变换(Discrete Hartley Transform, DHT)

哈特莱是一个人名,英文为Hartley,有时音译为哈特利或哈特雷,他在1942年提出连续Hartley变换,42年后于1984年,Bracewell提出了离散Hartley变换(DHT)。

在这里,我直接将DHT公式给成正交变换的形式:


上面定义式中我直接将定标因子写为1/N的开方,这样保证DHT的变换矩阵HN直接是正交矩阵

观察发现矩阵HN不但是正交矩阵并且还是对称矩阵(转置与本身相等),因此逆矩阵与本身相等(正交矩阵的逆矩阵等于其转置),即DHT的逆变换与正变换形式相同。

DHT也有四种形式,上面给出的是第一种形式,其它参见维基百科【1】。

二、离散W变换(Discrete W Transform, DWT)

有关离散W变换,我一直想找出它的全中文名字,但我查了好久也没有找到,英文文献中是以DiscreteW Transform来表述的,中文文献中是以离散W变换来表述的。离散W变换是由王中德提出的,所以我猜这里的“W”应该是指其姓氏“王(Wang)”的首字母W,因此若要找出它的全中文名字应该是“离散王中德变换”,当然提出者也没有这么命名,这里纯属我自己推测了。

采用文献【2】中的定义,离散W变换定义如下:

其中α和β分别是时域和频率的参数,它们的取值可以是(0,0)、(1/2,0)、(0,1/2)、(1/2,1/2)中的任一个,也就是说DWT共有四种形式,依次为DWT-Ⅰ、DWT-Ⅱ、DWT-Ⅲ、DWT-IV。可以发现,当取(0,0)时的DWT-Ⅰ即为DHT(利用和差化积公式将求和里面的sin展开即可)。

DWT-Ⅳ不但可以得到信号整数倍的谐波,而且可以得到分数倍的谐波。

三、离散W变换奠基人王中德介绍

在网上搜索了“王中德”这个人,却搜不到任何有用信息,感觉如此关注于基础研究的人,无论是IEEE还是其它权威期刊上发表过很多文章,网上竟然没有他的信息,无论是正面的还是负面的。在网络如此发达的今天,哪怕是一个博导教授一般在百度百科里也有会的,不知道到底是为什么没有王先生的信息。最终我从两篇论文中找到了一些有关王中德的个人信息,总结如下:

王中德,1937年3月19日生于江苏南京,1960年毕业于云南大学物理系,毕业后在昆明物理所工作,1980年至1983年在美国亚利桑那(Arizona)大学电机系数字图像分析实验室进修,曾获美国国家自然科学基金,后来到北京邮电学院电信工程系工作。研究方向包括算法研究、信号处理、图像处理等。IEEE高级会员、美国数学学会会员、中国电子学会会员、中国物理学会会员。



四、如何得到DHT基和DWT基

(1)离散W变换

其实写一个通用的函数得到四种离散W变换的变换矩阵就已经得到了DHT的变换矩阵,所以这里先讨论DWT。

Matlab中有dwt函数,但并不是指的离散W变换,而是离散小波变换,谁让小波变换更牛更广一些呢,这里我给出一个离散W变换的Matlab函数:

function [ X ] = DWangT( x,dwt_type )
%DWangT Summary of this function goes here
%   Detailed explanation goes here
%   x is the input single
%   dwt_type decides DWangT types
%   X is the discrete W transform of x
N = length(x);
[x_rows,x_columns] = size(x);
if x_rows 
 

这里根据输入参数dwt_type的值决定是哪一种离散W变换。

若要得到得到离散W变换的变换矩阵,稍微把上面函数变一下形就可以了:

function [ WN ] = DWangTmtx( N,dwt_type )
%DWangTmtx Summary of this function goes here
%   Detailed explanation goes here
%   N is the dimension of WN
%   dwt_type decides DWangT types
%   WN is the Discrete W Transform matrix
[k,n] = meshgrid(0:N-1);
if dwt_type==2
    alpha = 1/2;
    beta = 0;
elseif dwt_type==3
    alpha = 0;
    beta = 1/2;
elseif dwt_type==4
    alpha = 1/2;
    beta = 1/2;
else
    alpha = 0;
    beta = 0;
end
WN = sqrt(2/N) * sin(pi/4 + 2*pi/N * (n+alpha) .* (k+beta));
end

(2)离散哈特莱变换

其实只要令上面的dwt_type=1即可得到DHT变换和DHT变换矩阵,这是还是单独给出DHT的变换函数:

function [ X ] = DHartleyT( x )
%DHartleyT Summary of this function goes here
%   Detailed explanation goes here
%   x is the input single
%   X is the discrete Hartley transform of x
N = length(x);
[x_rows,x_columns] = size(x);
if x_rows 
 

若要得到得到离散哈特莱变换的变换矩阵,稍微把上面函数变一下形就可以了:

function [ HN ] = DHartleyTmtx( N )
%DHartleyT Summary of this function goes here
%   Detailed explanation goes here
%   N is the dimension of WN
%   HN is the Discrete Hartley Transform matrix
[k,n] = meshgrid(0:N-1);
HN = sqrt(1/N)*(cos(2*pi/N*n.*k)+sin(2*pi/N*n.*k));
end

五、结语

离散W变换就说这么多吧,深层次的理解还没有多少,有新理解的话再发文。

 

参考文献:

【1】维基百科.离散哈特利转换,http://zh.wikipedia.org/zh-cn/離散哈特利轉換

【2】胡广书.数字信号处理理论、算法与实现(第三版)[M]. 北京:清华大学出版社,2012:351-352.


推荐阅读
author-avatar
闹闹依旧不闹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有