数字信号处理基于matlab数字信号离散序列短时傅里叶变换含Matlab源码 1545期

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字信号处理基于matlab数字信号离散序列短时傅里叶变换含Matlab源码 1545期相关的知识,希望对你有一定的参考价值。

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【数字信号处理】基于matlab数字信号离散序列短时傅里叶变换【含Matlab源码 1545期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、离散序列短时傅里叶变换简介




三、部分源代码

%%
%   tfrstft
%   功能:实现离散序列的短时傅里叶变换,是tftoolbox工具箱中的函数
%   格式:
%       [tfr, t, f] = tfrstft(x):计算时间序列x的短时傅里叶变换,参数tfr为短时傅里叶变换系数,t为系数tfr对应
%                                   的时刻,f为归一化频率向量。
%       [tfr, t, f] = tfrstft(x, t):计算对应时刻t的短时傅里叶变换。
%       [tfr, t, f] = tfrstft(x, t, n):计算n点对应时刻t的短时傅里叶变换。
%       [tfr, t, f] = tfrstft(x, t, n, h):参数h为归一化频率平滑窗。
%       [tfr, t, f] = tfrstft(x, t, n, h, trace):trace显示算法进度
%       说明:x为信号
%                    t 为时间(缺省为 1:length(x));
%                    n为频率数(缺省值为 length(x));
%                    h为频率滑窗,h归一化为单位能量(缺省值为 hamming(n/4));
%                    trace为非零,则显示算法的进度(缺省值为0);
%                    tfr为时频分解(为复数值),频率轴观察范围为 -0.5~0.5%                    f为归一化频率。

%% 例题
% 构建一个256点仿真信号x(N),采样频率为256Hz,在区间(30,80)(140,190)内正弦信号的频率分别为32Hz和64Hz,采用tfrstft对其进行时频分析
clc;
clear;
FS = 256;               %采样频率
Ts = 1/FS;              %时间间隔
N = 256;                %信号长度
pt = 0*Ts:Ts:(N-1)*Ts;      %信号的时间间隔序列
t1 = zeros(N,1); t2 = zeros(N,1);
t1(30:80) = pt(30:80); t2(140:190) = pt(140:190);
f1 = 32; f2 = 64;       % 不同区间正弦信号的频率,根据采样频率可以计算得到归一化频率分别为32/256=0.12564/256=0.25
x = sin(2*pi*f1.*t1) + sin(2*pi*f2.*t2);        %构建仿真信号
figure(1)
plot(pt, x);            %画出仿真信号的时域波形图
xlabel('时间');ylabel('幅值');
title('仿真信号时域波形图');
figure(2)
subplot(211)
[tfr, t, f] = tfrstft(x);        %进行短时傅里叶变化,Hamming窗长度采用默认长度65
pcolor(t, f(1:N/2,1),abs(tfr([1:N/2],:)));
colorbar;       %加上能量映射条
xlabel('采样点数');ylabel('归一化频率');title('时频分布图');
subplot(212)
t = (t-1)*Ts;   %横坐标为时间
f = f*FS;       %纵坐标为实际频率 
pcolor(t, f(1:N/2,1),abs(tfr([1:N/2],:)));
xlabel('时间');ylabel('频率');
colorbar;       %加上能量映射条




四、运行结果


五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]高彦彦,张晶,李莉,贾英茜.基于GUI的《数字信号处理》教学演示系统的设计[J].教育教学论坛. 2019,(48)
[5]李俊,张淑玲,帅晶.基于Matlab GUI界面的数字信号处理辅助教学系统[J].信息通信. 2020,(08)
[6]王冰,魏志恒,王文斌,戴源廷,赵俣钧.基于同步压缩变换的阶比分析法在城市轨道交通车辆轴承故障诊断中的应用[J].城市轨道交通研究. 2021,24(07)

以上是关于数字信号处理基于matlab数字信号离散序列短时傅里叶变换含Matlab源码 1545期的主要内容,如果未能解决你的问题,请参考以下文章

图像隐写基于matlab GUI DCT数字水印嵌入与提取含Matlab源码 1323期

数字信号处理序列傅里叶变换 ( 狄义赫利条件 | 序列傅里叶变换定义 )

数字信号处理序列傅里叶变换 ( 狄义赫利条件 | 序列傅里叶变换定义 )

语音隐写基于DCT+DWT音频数字水印嵌入提取matlab源码含GUI

数字信号入门笔记4—离散傅里叶变换

数字信号处理序列傅里叶变换 ( 序列傅里叶变换与反变换 | 序列绝对可和 与 存在傅里叶变换之间的关系 | 序列傅里叶变换性质 )