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

时间:2015-03-10 19:11:23

标签: matlab loops fft wavelet

让我们考虑一下Page:

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);

我怎么能继续与这部分相关? enter image description here

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

1 个答案:

答案 0 :(得分:0)

您的总和仅取决于 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

希望有所帮助!