kevin19821 发表于 2007-8-14 20:18

这几句话错哪里了?

t=0:dt:8191*dt;
Wd=rectwin(8192);
fsai=(exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-12)*Wd';
exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-12为1*8192,Wd'也为1*8192的,怎么总是说
??? Error using ==> *
Inner matrix dimensions must agree.
Error in ==> D:\MATLAB6p51\work\xiaobobao.m
On line 16==> fsai=(exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-12)*Wd';

请高手指教,我同学说应该用hann(8192),用hann时候到是没有错误,,但是要的频率不符合要求,目的要是fsai为接近矩形的那种窗的

[ 本帖最后由 zhlong 于 2007-8-15 10:49 编辑 ]

zhlong 发表于 2007-8-14 20:26

fsai=(exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-12)*Wd';

后面的*要用点乘吧。

kevin19821 发表于 2007-8-14 20:28

点乘改了还是有错误,应该是不能选择矩形窗,应该用汉宁窗,但是我就搞不懂了,汉宁窗边界处有波纹的

zhlong 发表于 2007-8-14 20:28

楼主这个问题属于matlab的问题,matlab版的eight版主总结了很多常见程序出错问题,楼主可以参考一下。http://forum.vibunion.com/forum/thread-46001-1-1.html

zhlong 发表于 2007-8-14 20:31

回复 #3 kevin19821 的帖子

楼主把参数都给齐一下吧,便于大家给你调试。

kevin19821 发表于 2007-8-14 20:38

汉宁窗的选择问题吧

kevin19821 发表于 2007-8-14 20:38

好的
clc
clear all
fs=4096;
dt=1/fs;
t=0:dt:8191*dt;
Wd=rectwin(8192)
s=3*sin(2*pi*50*t)+2*sin(2*pi*100*t)+0.5*sin(2*pi*150*t);
fs1=fft(s);
subplot(311)
%j=7,s=127
% subplot(311);
% plot(f-fs/2,abs())
m=140;
n=160;
B=n-m;
fsai=(exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-12).*Wd';
f1=fft(fsai);
subplot(312)
N=8192;
f=fs*(0:N-1)./N;
plot(f-fs/2,abs());

[ 本帖最后由 kevin19821 于 2007-8-14 20:42 编辑 ]

kevin19821 发表于 2007-8-14 20:45

clc
clear all
fs=4096;
dt=1/fs;
t=0:dt:8191*dt;
Wd=rectwin(8192)
s=3*sin(2*pi*50*t)+2*sin(2*pi*100*t)+0.5*sin(2*pi*150*t);
fs1=fft(s);
subplot(311)
%j=7,s=127
% subplot(311);
% plot(f-fs/2,abs())
m=140;
n=160;
B=n-m;
fsai=(exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-12).*Wd';
f1=fft(fsai);
subplot(312)
N=8192;
f=fs*(0:N-1)./N;
plot(f-fs/2,abs());
% s(1:1./fs:(m-1)*fs./N)=0;
% s(n*fs./N:1./fs:N*fs./N)=0;
N=length(s)
W=f1.*fs1;
subplot(313)
f=fs*(0:N-1)./N;
plot(f-fs/2,abs());
Wt=ifft(W);
subplot(313)
就是由于f1的频谱图中两边有衰减,结果使得滤波后的结果50HZ和100HZ也有的,怎么能把f1的频谱变成矩形就行

[ 本帖最后由 zhlong 于 2007-8-14 21:01 编辑 ]

kevin19821 发表于 2007-8-14 21:09

顶,这个是谐波小波包的程序,麻烦大家了,知道的回个话呀

zhlong 发表于 2007-8-14 21:30

回复 #9 kevin19821 的帖子

楼主是要滤掉50和100Hz分量吧

kevin19821 发表于 2007-8-14 21:47

我现在知道了,我在定频率范围的时候,定为140-160了,加了汉林窗,还是不行,把频率范围定为145-152就可以提取150HZ的频率,由于汉林窗两边有波动,难免会把50和100HZ的频率带进去

zhlong 发表于 2007-8-14 21:50

回复 #11 kevin19821 的帖子

对哈,应该是频域矩形窗都有一个过渡段造成的。

kevin19821 发表于 2007-8-15 07:53

以上为谐波小波包分解程序,有用的可以参考的

zhlong 发表于 2007-8-15 07:58

回复 #13 kevin19821 的帖子

楼主可以将信息更完善一些么,谢谢!
页: [1]
查看完整版本: 这几句话错哪里了?