subplot(231);
subplot(231);什么意思啊?帮忙:handshake help subplot就是用来画子图的
这是最基本的绘图指令,你该找本MATLAB的书来看看吧
有个问题,请教!
当FFT加窗时计算幅值时,所乘的恢复系数怎么来的? 如果我输入信号是cos(4*pi*f0*t+pi/3)+cos(2*pi*f0*t+pi/6)为什么用上面程序得出来的初始相位还是60°?另外“angle(y(6))*180/pi %求信号初时相位。频率坐标f为,所以谱线y中第6根谱线和信号x对应。”怎么解释?程序运行后的幅频谱图中根本看不到0.06HZ的频谱! 本帖最后由 wdhd 于 2016-6-3 10:14 编辑
原帖由 eguang8116 于 2008-4-2 15:12 发表
那如果频率分辨率很小的话,是不是就可以不用通过频谱校正了呢?
只要信号频率是频率分辨率的整数倍,就能直接从谱图上得到幅值和初始相角。频率分辨率的大小是相对的,信号频率不是频率分辨率的整数倍时,为了得到信号的幅值和初始相角,就得用频谱校正法。 本帖最后由 wdhd 于 2016-6-3 10:14 编辑
原帖由 rocky_ding 于 2008-4-24 09:53 发表
如果我输入信号是cos(4*pi*f0*t+pi/3)+cos(2*pi*f0*t+pi/6)为什么用上面程序得出来的初始相位还是60°?
另外“angle(y(6))*180/pi %求信号初时相位。频率坐标f为,所以谱线y ...
在楼主的信号中是两个频率,而zhlong的程序只对一个频率计算出初始相角。只要稍修改一下,增加
angle(y(11))*180/pi
就能得到0.02时的初始相角:
ans =
30.0000
ans =
60.0000 本帖最后由 wdhd 于 2016-6-3 10:14 编辑
原帖由 完治 于 2008-4-15 11:26 发表
当FFT加窗时计算幅值时,所乘的恢复系数怎么来的?
请参看“加窗频谱分析的恢复系数及其求法” 汕头大学学报 2003 18(3) 相位的计算对故障诊断和模态参数识别,都有很大的用处啊! 本帖最后由 wdhd 于 2016-6-3 10:14 编辑
原帖由 songzy41 于 2008-5-7 09:08 发表
请参看“加窗频谱分析的恢复系数及其求法” 汕头大学学报 2003 18(3)
加窗频谱分析的恢复系数及其求法<---这份文档不知哪位可以提供啊,网上有的都不能下载阿 告诉我email地址,我可发送给你。 本帖最后由 wdhd 于 2016-6-3 10:15 编辑
原帖由 songzy41 于 2008-5-7 16:57 发表
告诉我email地址,我可发送给你。
jnny_cn@live.com
非常感谢您的帮助,这几天真是从您这里学了很多
我在做频谱校正时加hanning窗时程序出错,恳请高人指点一下
先谢过了!t=0:0.00001:0.02;
leng=length(t);
for m=1:leng
if t(m)<0.00167
v(m)=0;
elseif ((t(m)>=0.00167)&(t(m)<0.01))
v(m)=sin(2*pi*50*t(m));
elseif ((t(m)>=0.01)&(t(m)<0.01167))
v(m)=0;
elseif t(m)>=0.01167
v(m)=sin(2*pi*50*t(m));
end
end
plot(t,v);grid;
N=2000;
w=hanning(2000);v=v.*w';
y=fft(v,N);
mag=abs(y)*2/N;
f=(0:length(y)-1)'*100000/length(y);
figure;
plot(f(1:N/2),mag(1:N/2));
axis();
xlabel('频率(Hz)');ylabel('幅值');
grid;
出错信息为:??? Error using ==> times
Matrix dimensions must agree.
Error in ==> hanshu at 16
w=hanning(2000);v=v.*w'; 把语句
w=hanning(2000);v=v.*w';
应改为
w=hanning(2001);v=v.*w';