花花 发表于 2009-5-24 22:34

短时傅里叶变换时选择窗函数总是出错

我在MATLAB里输入如下程序,总是出现这样的错误“??? Error using ==> feval
Argument must contain a string or function_handle.
Error in ==> window at 52
    w = feval(wname,N,varargin{:});“不知道是怎么回事?短时傅里叶变化时的传函数到底是怎么调用的?为什么我总是出错?请大家一定帮帮我了,我快被逼疯了。呜呜

程序如下:

sig1=fmlin(128,0,0.4);
sig2=fmlin(128,0.1,0.45);
sig=sig1+sig2;
figure(1)
plot(real(sig),'LineWidth',2);
hold on;
plot(imag(sig),'ro--');
legend('实部','虚部');
xlabel('时间 t');
ylabel('幅值 A');
h1=window(23,'gauss');
=tfrsp(sig,1:128,128,h1);
figure(2)
contour(t,f,trf);
xlabel('时间 t');
ylabel('频率 f');
h2=window(63,'gauss');
=tfrsp(sig,1:128,128.h2);
figure(3)
contour(t,f,tfr);
xlabel('时间 t');
ylabel('频率 f');

songzy41 发表于 2009-5-25 06:37

把程序改了一下,其中有些小错误已改,可以执行了。同时窗函数的调用,我用的是7.1版本的。
sig1=fmlin(128,0,0.4);
sig2=fmlin(128,0.1,0.45);
sig=sig1+sig2;
figure(1)
plot(real(sig),'LineWidth',2);
hold on;
plot(imag(sig),'ro--');
legend('实部','虚部');
xlabel('时间 t');
ylabel('幅值 A');
h1=window(@gausswin,23);
%h1=window(23,'gauss');
=tfrsp(sig,1:128,128,h1);
figure(2)
contour(t,f,tfr);
xlabel('时间 t');
ylabel('频率 f');
h2=window(@gausswin,63);
%h2=window(63,'gauss');
=tfrsp(sig,1:128,128,h2);
figure(3)
contour(t,f,tfr);
xlabel('时间 t');
ylabel('频率 f');

花花 发表于 2009-5-25 10:36

太谢谢您了,真的是出来了,好高兴!
页: [1]
查看完整版本: 短时傅里叶变换时选择窗函数总是出错