matlab求双边频谱,短时傅里叶变换tfrstft函数怎么显示双边频谱(需要负频率频谱)...

% 时频分析工具箱测试使用

clc

clear

close all

% 构造一个简单信号

T=1;%1s

fs =1024;

N=fs*T;

ts = T/N;

t = 0:ts:N*ts;

yt=exp(-j*70*sin(3*pi*t))+1

%yt = exp(-j*70*sin(3*pi*t))+exp(j*90*pi*t)+exp(-j*90*pi*t);

%yt = yt - mean(yt);

%画原始信号

figure

plot(t, yt)

title('原始信号')

%

% Hilbert变换得到解析信号,对于Wigner-Ville时频分布,这是必须的

yh=yt;

% yh = hilbert(yt);

%

%傅里叶

n=0:N;

df=fs*n/N;

Gaa=fft(yh);

figure

plot(df,abs(Gaa));

dff=linspace(-150,150,1024);

%

% 短时傅里叶变换

[B, F, T, P] = spectrogram(yh,32,16,dff,fs);   % B是F大小行T大小列的频率峰值,P是对应的能量谱密度

figure

imagesc(T,[-150,150],abs(B));

%

%%短时傅里叶变换

tfr = tfrstft(yh.', 1:length(yh),500); % 1024为频率分辨率,就是想把频率轴分多细

figure

imagesc(t, [0 fs], abs(tfr));

axis([0,1024*ts,-200,200]);

title('短时傅里叶时频图')

%

figure

%tfrstft(yh(:)); % 利用交互界面绘制时频图

96405af08fb589d27c59b0e395999219.png

spectram.jpg (34.36 KB, 下载次数: 1)

spectrogram结果图

2019-10-12 14:48 上传

92365f014a2a6a0046ca636ec3a2883c.png

tfrstft.jpg (26.27 KB, 下载次数: 1)

tfrstft结果图

2019-10-12 14:48 上传

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值