• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Matlab
  • 标签: matlab  stft  wvd  fft  

资源简介

短时傅里叶变换的matlab实现,有详尽的注释,方便学习理解

资源截图

代码片段和文件信息

function [S W T] = stft(signalnscnovfswin)
%短时傅里叶变换的实现
% Input        
%       signal      - 输入信号
%       nsc         - 信号切片的大小
%       nov         - 重叠信号的大小
%       fs          - 采样频率
%       win         - 窗的类型,包括矩形窗,三角窗,汉宁窗,海明窗
% Output
%       S           - 时间频率矩阵,每一列式一个时间切片的FFT
%       W           - 频率标度
%       T           - 时间标度
    if nargin < 5
        win = ‘hamming‘;
    end
  % 信号处理,信号切片
    if strcmp(win‘boxcar‘)
        h = boxcar(nsc); 
    end
    if strcmp(win‘triang‘)
        h = triang(nsc); 
    end
    if strcmp(win‘hanning‘)
        h = hanning(nsc ‘periodic‘); 
    end
    if strcmp(win‘hamming‘)
        h = hamming(nsc ‘periodic‘); 
    end                             % 窗函数
    L = length(signal);             % 信号长度
    nst = nsc-nov;                  % 信号切片移动步长
    ncl = fix( (L-nsc)/nst ) + 1;   % 信号切片的个数,对应时间

评论

共有 条评论