【发布时间】:2018-11-26 13:13:26
【问题描述】:
我有以下类,其中包含计算信号傅立叶变换的函数。
函数有效,但如果在使用dft 方法后尝试调用obj.x_k,则向量为空。
有人知道为什么吗?
classdef DFT
properties
x_in
len
x_k
ix_k
end
methods
% Konstruktor
function obj = DFT(in_v)
obj.len = length(in_v);
obj.x_in = in_v;
obj.x_k = zeros(1,obj.len);
obj.ix_k = zeros(1,obj.len);
end
%Berechnet diskrete Fourier Transformation eines Signals
function dft(obj)
i=sqrt(-1);
for j=0:obj.len-1
for l=0:obj.len-1
obj.x_k(j+1)=obj.x_k(j+1)+(obj.x_in(l+1)*exp((-i)*2*pi*j*l/obj.len));
end
end
for j = 0:obj.len-1
sprintf('x%d: %f + %fi', j+1,obj.x_k(j+1), obj.x_k(j+1)/1i)
end
obj.x_k
end
%Berechnet inverse diskrete Fourier Transformation eines Signals
function inversedft(obj)
i=sqrt(-1);
for n=0:obj.len-1
for k=0:obj.len-1
obj.ix_k(n+1)=(obj.ix_k(n+1)+(obj.x_in(k+1)*exp(i*2*pi*k*n/obj.len)));
end
end
obj.ix_k = 1/obj.len*obj.ix_k;
for k = 0:obj.len-1
sprintf('ix%d: %f + %fi', k+1,obj.ix_k(k+1), obj.ix_k(k+1)/1i)
end
end
end
end
【问题讨论】: