参照网址短时傅里叶变换
参照上述网址,尝试编写短时傅里叶变换得程序,为了加深对短时傅里叶计算过程的理解,也为后续的其他算法先打下基础。编程能力较差,虽然仿照,但可能依然由很多考虑不到。
function [s,f,t] = sftf(x,window,overlap,nfft,fs)
% x: 输入的一维数组
% window: 窗的类型,当输入为一整数时,默认使用hanning窗
% overlap:重叠的长度
% nfft:做一次傅里叶变换得长度
% fs:采样频率
% 默认参数设置
if nargin < 2 || isempty(window); window = hanning(256); end
if length(window) == 1; window = hanning(window); end
if nargin < 3 || isempty(overlap); overlap = floor(length(window)/2); end
if nargin < 4 || isempty(nfft); nfft = length(window); end
if nargin < 5 || isempty(fs); fs = 2; end
if length(window) > nfft; nfft = length(window); end
n = length(window);
step = n - overlap; %每次移动的步长
step_nums = ceil(abs(length(x)-overlap