声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1842|回复: 4

[图像处理] Winger-ville源程序分解信号

[复制链接]
发表于 2012-12-25 10:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
% Wigner-Ville分布计算程序
function[WVD,t,f]=SWWignerVille(Sig,SampFreq,FreqBins,GLen,HLen)
%  Sig      : 输入信号
%  FreqBins : 频率轴划分区间数(默认值:512)
%  SampFreq : 信号的采集频率
%  alfa     : 窗函数控制参数
%  GLen     : 窗函数g的长度(默认值:FreqBins/5)
%  HLen     : 窗函数h的长度(默认值:FreqBins/4)
%  WVD      :   SWWigner-Ville计算结果
if (nargin<1),
    error('At least 1 input required');
end;
% Sig=hilbert(real(Sig));    % 计算信号的解析信号
SigLen=length(Sig);        % 获取信号的长度
if (nargin<2),
    SampFreq=1;
elseif (nargin<3),
    FreqBins=512;
elseif (nargin<4),
    GLen=floor(FreqBins/5);   
    HLen=floor(FreqBins/4);
end;
FreqBins=2^nextpow2(FreqBins);
FreqBins=min(FreqBins,SigLen);
GLen=GLen+1-rem(GLen,2);
HLen=HLen+1-rem(HLen,2);
GWin=window(@gausswin,GLen);
HWin=window(@gausswin,HLen);
Lg=(GLen-1)/2;
Lh=(HLen-1)/2;
HWin=HWin/HWin(Lh+1);
WVD=zeros(FreqBins,SigLen);
wait=waitbar(0,'Under calculation,please wait...');
for kk=1:SigLen,
    waitbar(kk/SigLen,wait);
    MTau=min([kk+Lg-1,SigLen-kk+Lg,round(FreqBins/2)-1,Lh]);
    k=-min([Lg,SigLen-kk]):min([Lg,kk-1]);
    SubG=GWin(Lg+1+k);
    SubG=SubG/sum(SubG);
    WVD(1,kk)=sum(SubG.*Sig(kk-k).*conj(Sig(kk-k)));  %
    for tau=1:MTau,
      k=-min([Lg,SigLen-kk-tau]):min([Lg,kk-tau-1]);
      SubG=GWin(Lg+1+k);
      SubG=SubG/sum(SubG);
      R=sum(SubG.*Sig(kk+tau-k).*conj(Sig(kk-tau-k)));
      WVD(1+tau,kk)=HWin(Lh+tau+1)*R;
      R=sum(SubG.*Sig(kk-tau-k).*conj(Sig(kk+tau-k)));
      WVD(FreqBins+1-tau,kk)=HWin(Lh-tau+1)*R;
    end;   
end;
close(wait);
WVD=fft(WVD);
f=linspace(0,0.5,FreqBins)*SampFreq;
t=(0:(SigLen-1))/SampFreq;
set(gcf,'position',[20 100 500 430]);
set(gcf,'color','w');
axes('position',[10 45 53 50]);
mesh(t,f,abs(WVD));
axis([min(t) max(t) min(f) max(f)]);
colorbar;
xlabel('t/s');
ylabel('f/Hz');
title('平滑伪Wigner-Ville分布');

为什么我应用这个做出的图是这样的呢?
为什么我的纵坐标不是20HZ二是0.2水能给改一下?





2012-12-25_100659.png
回复
分享到:

使用道具 举报

发表于 2012-12-25 16:43 | 显示全部楼层
都没看到你怎么调用的这个程序。我想你只是直接调用,并没有做其他设置,所以出这样的结果。
在没有设置采样频率的情况下,直接调用这个程序的结果就是这样---归一化频率后的结果:默认情况下直接调用时采样频率被默认为1,另外分析频率受采样定理的限制,这样一来最后出来的结果都在0.5Hz之内。如果你是利用的时频分析的工具箱操作的话,会有选项栏让重新设置采样频率,这样输入正确的采样频率就能输出正确的结果。
补充:没有必要贴上你的Wigner-Ville分布计算程序,如果不是你自己编写的,如果只是从时频分析工具箱中找到的话。另外,在发帖前请搜索相关的内容!最后,建议删帖!

评分

1

查看全部评分

发表于 2012-12-28 21:55 | 显示全部楼层
用工具包就可以,没有这样麻烦
 楼主| 发表于 2012-12-29 12:03 | 显示全部楼层
发表于 2013-1-5 21:10 | 显示全部楼层
没有数据,怎么仿呢?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 20:54 , Processed in 0.071322 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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