声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5861|回复: 11

[综合] 请问:在matlab中用什么函数画时频分析中的三维图

[复制链接]
tmzl 该用户已被删除
发表于 2006-3-27 14:16 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
回复
分享到:

使用道具 举报

发表于 2006-3-29 16:23 | 显示全部楼层
程序中多使用的imagesc这个函数作图
但是图是个平面图,色度的变化表示z值的大小
不知道立体的三维图怎样做?
有哪位高手指点一下?谢了
发表于 2006-3-31 08:14 | 显示全部楼层

回复:(tmzl)请问:在matlab中用什么函数画时频分析...

是做三维谱图吗?用waterfall不错
发表于 2006-5-13 22:53 | 显示全部楼层
surfl
发表于 2006-5-18 15:30 | 显示全部楼层
没有直接的函数画,需要自己编成。短时傅立叶变换,gabor变换和WD变换都可以
%%短时傅立叶变换
%解析信号x=exp(j*pi*k*t.^2)
clear,clc,close all
figure(1)
k=4;T=5;
fc=k*T;
fs=3*fc;
Ts=1/fs;
N=T/Ts;
x=zeros(1,N);
t=0:N-1;
x=exp(j*k*pi*(t*Ts).^2);
% x=awgn(x,-3,'measured');
subplot(221)
plot(t*Ts,real(x))
X=fft(x);
X=fftshift(X);
subplot(222)
plot((t-N/2)*fs/N,abs(X))
Nw=20;
L=Nw/2;
Tn=(N-Nw)/L+1;
nfft=32;
TF=zeros(Tn,nfft);
for i=1:Tn
    xw=x((i-1)*10+1:i*10+10);
    temp=fft(xw,nfft);
    temp=fftshift(temp);
    TF(i,:)=temp;
end
subplot(223)
fnew=((1:nfft)-nfft/2)*fs/nfft;
tnew=(1:Tn)*L*Ts;
[F,T]=meshgrid(fnew,tnew);
mesh(F,T,abs(TF))
subplot(224)
contour(F,T,abs(TF))

%用WD变换解析信号x=exp(j*pi*k*t.^2)
clear,close all
k=4;T=4;
fc=k*T;fs=4*fc;%采样频率大于4倍的信号宽度
Ts=1/fs;N=T/Ts;
x=zeros(1,N);
t=0:N-1;
x=exp(j*k*pi*(t*Ts).^2);
subplot(221),plot(t*Ts,real(x));
X=fftshift(fft(x));
subplot(222),plot((t-N/2)*fs/N,abs(X))
R=zeros(N);
for n=0:N-1
    M=min(n,N-1-n);
    for k=0:M
        R(n+1,k+1)=x(n+k+1)*conj(x(n-k+1));
    end
    for k=N-1:-1:N-M
        R(n+1,k+1)=conj(R(n+1,N-k+1));
    end
end
TF=zeros(N);
for n=0:N-1
   temp=fftshift(fft(R(n+1,:)));
   TF(n+1,:)=temp;
end
fnew=(t-N/2)*fs/2/N;
tnew=(0:N-1)*Ts;
[F,T]=meshgrid(fnew,tnew);
subplot(223),mesh(F,T,abs(TF))
subplot(224),contour(F,T,abs(TF))

[ 本帖最后由 yejet 于 2006-7-9 17:40 编辑 ]
发表于 2006-6-16 12:58 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-13 13:50 编辑

  我用mesh和surf、plot3试过,可是就是觉得不对

  [em04]
发表于 2006-6-16 20:24 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-13 13:50 编辑

  mesh 就可以 转一转就行啊~~ 有什么要求?
发表于 2006-6-20 15:52 | 显示全部楼层

回复:(zhyuer)没有直接的函数画,需要自己编成。短...

本帖最后由 wdhd 于 2016-9-13 13:50 编辑

  在短时傅立叶方法中,nfft取32有什么依据吗
发表于 2006-6-24 20:48 | 显示全部楼层
可参考matlab自带的有关STFT的演示程序!
发表于 2006-10-19 18:34 | 显示全部楼层
请问楼上的程序中NW是什么含义?
Nw=20;
L=Nw/2;
Tn=(N-Nw)/L+1;
nfft=32;
TF=zeros(Tn,nfft);
for i=1:Tn
    xw=x((i-1)*10+1:i*10+10);
    temp=fft(xw,nfft);
    temp=fftshift(temp);
    TF(i,:)=temp;
end
以上这段程序怎么解释?我也想弄个三维图,谢谢!
发表于 2006-10-19 22:03 | 显示全部楼层
http://forum.vibunion.com/forum/thread-28698-1-1.html
有程序下载,我自己编写的
发表于 2008-11-26 12:28 | 显示全部楼层

回复 5楼 zhyuer 的帖子

很不错!支持!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-30 02:11 , Processed in 0.076091 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表