计算给定离散时间序列的离散 S 变换

calculate discrete S transform for given discrete time series

让我们考虑以下页面:

http://djj.ee.ntu.edu.tw/S_Transform.pdf

段落 2.3 离散 S 变换

假设我们已经对信号 x 进行了采样,并且给定采样频率 fs,我已经使用以下代码计算了离散傅里叶变换

function y=DFT(x);
N=length(x);
D=zeros(N,N);
for k=1:N
    for n=1: N
        D(k,n)=exp((-j*(k-1)*2*pi*(n-1))/N);
    end
end
y=D*x'/N;
end

并开始估计离散 S 变换

function [S]=discrete_s_transform(x,fs);
%compute discrete  s transform
%fs-sampling frequency 
N=length(x); % length of signal
T=1/fs; % sampling period
Y=DFT(X);

我怎样才能继续与这部分相关?

显然循环不是实现的问题,只是它们从 1 到 N 而不是 0 到 N-1,因为 matlab 向量是基于 1 的,但是主要代码呢?乘法到指数?你能帮我完成 S 变换吗?

您的总和仅取决于 m,因此我假设定义了其他参数以及函数 H((m+n)/(NT))。通过 for 循环最简单的是:

function [S]=discrete_s_transform(x);
N=length(x); % length of signal
S=0;
m=0;
for i=1:N
S=S+H((m+n)/(NT))*exp(a)*exp(b*m/N);
m=m+1; 
end

希望对您有所帮助!