Gabor 分解原理和代码实现

Gabor 分解

学一下Gabor分解:

基本概念:

在信号处理中,使用非正交的基函数对信号进行分解的一种方法。而傅里叶分析例如DFT则是使用正交的基函数进行分解。

临界采样的Gabor分解,离散分解表示成:
x ~ ( n ) = ∑ m = 1 M − 1 ∑ k = 0 K − 1 a ~ m k g ~ m k ( n ) a ~ m k = ∑ n = 0 L − 1 x ~ ( n ) w ~ m k ∗ ( n ) g ~ m k ( n ) = g ~ ( n − m K ) ∗ e j 2 π n k / K w ~ m k ∗ ( n ) = w ~ ( n − m K ) ∗ e j 2 π n k / K \begin{aligned} &\widetilde{x}(n)=\sum_{m=1}^{M-1}\sum_{k=0}^{K-1}{\widetilde{a}_{mk}\widetilde{g}_{mk}}(n) \\ &\widetilde{a}_{mk}=\sum_{n=0}^{L-1}\widetilde{x}(n)\widetilde{w}^*_{mk}(n) \\ &\widetilde{g}_{mk}(n)=\widetilde{g}(n - mK)*e^{j2\pi nk/K} \\ &\widetilde{w}^*_{mk}(n)=\widetilde{w}(n - mK)*e^{j2\pi nk/K} \end{aligned} x (n)=m=1M1k=0K1a mkg mk(n)a mk=n=0L1x (n)w mk(n)g mk(n)=g (nmK)ej2πnk/Kw mk(n)=w (nmK)ej2πnk/K

代码实现:

function [amk, w] = gabor_translater(x, g, M, K)
%gabor变换
% x:待分析的实数信号
% g:综合窗函数序列
% M:时域离散采样数
% K:频域离散采样数
% amk:gabor变换系数,复数矩阵
% w:分析窗函数
 
L = length(x);
G = zeros(L, L);
if L - M * K ~= 0 %不是临界Gabor变换
    amk = [];
    w = [];
else %是临界Gabor变换
    % 计算分析窗函数序列
    for mi = 0 : M - 1
        for ki = 0 : K - 1
            ind = (0 : L - 1) + mi * K;
            tL = find(ind > L - 1);
            if ~isempty(tL)
                ind(tL) = ind(tL) - L;
            end
            ti = find(ind < 0);
            if ~isempty(ti)
                ind(ti) = ind(ti) + L;
            end
            G(mi * K * ki + 1, :) = conj(g(ind + 1)).*exp(1i * 2 * pi *ki * (0 : L-1) / K);
        end
    end
    b = [1 zeros(1, L-1)]';
    w = real(G \ b); %求分析窗函数
    %计算Gabor系数
    amk = zeros(L, L);
    for mi = 0 : M -1
        for ki = 1 : K
            ind = (0 : L - 1) + mi * K;
            tL = find(ind > L - 1);
            if ~isempty(tL)
                ind(tL) = ind(tL) - L;
            end
            ti = find(ind < 0); %防止数组越界
            if ~isempty(ti)
                ind(ti) = ind(ti) + L;
            end
            wmk = w(ind + 1, 1)'.*exp(1i * 2 * pi * ki * (0 : L-1) / K);%综合窗函数
            amk(mi + 1, ki) = sum(x.*conj(wmk)); %Gabor变换分解系数
        end
    end
end
end

参考书籍:

《医学信号分析与处理》

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KPer_Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值