2015-03-10 6 views
0

considérons suivante Page:discret calculate S transform pour les séries temps discret donné

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

paragraphe 2.3 La Discrète transformée en S

Disons que nous avons la version échantillonnée du signal x et donné la fréquence d'échantillonnage fs, i sont calculés transformée de Fourier discrète en utilisant le code suivant

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 

et a commencé à estimer S discret transformer

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

comment puis-je continuer lié à cette partie? enter image description here

clairement les boucles ne sont pas problème à mettre en œuvre, juste qu'ils vont de 1 à N au lieu de 0 à N-1 en raison des vecteurs de Matlab sont 1 base, mais qu'en est-code principal? Multiplication exponentielle? coudl vous s'il vous plaît aidez-moi à finir S transformer?

Répondre

0

Votre somme dépend uniquement de m donc je suppose que d'autres paramètres ainsi que la fonction H((m+n)/(NT)) sont définis. Par l'intermédiaire de for-loops le plus simple est:

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 

Hope that helps!

+0

mais S devrait être matrice bidimensionnelle n'est ce pas? –

+0

Vous pouvez faire une boucle sur 'jT' et 'n/(NT)' pour obtenir une représentation 2D où chaque élément doit être additionné sur 'm' mais en général S n'est pas nécessaire pour être un tableau 2D selon 2.14 – madbitloman

+0

il y a un point, jT généralement j signifie nombre complexe donc –