【发布时间】:2020-07-30 17:03:42
【问题描述】:
抱歉,我知道有很多这样的问题,但我似乎无法终生解决为什么我没有得到相同的结果。
以下是取自here的 MATLAB 脚本
M = 33; % window length
R = (M-1)/2; % hop size
N = 3*M; % overlap-add span
w = hamming(M); % window
z = zeros(N,1);
% plot(z,'-k');
hold on;
s = z;
for so=0:R:N-M
ndx = so+1:so+M; % current window location
s(ndx) = s(ndx) + w; % window overlap-add
wzp = z;
wzp(ndx) = w; % for plot only
plot(wzp,'--ok'); % plot just this window
end
plot(s,'ok'); hold off; % plot window overlap-add
这给了我下面的情节
这是我根据MATLAB代码写的python代码。
M = 33 # window length
R = (M-1)/2 # hop size
N = 3*M # overlap-add span
w = signal.windows.hamming(M) # window
w = np.expand_dims(w, axis = 1)
z = np.zeros((N,1))
plt.plot(z,'-k')
s = z
for so in np.arange(0,N-M+1,R):
s[int(so):int(so+M)] = np.add(s[int(so):int(so+M)],w ) # window overlap-add
wzp = z
wzp[int(so):int(so+M)] = w # for plot only
plt.plot(wzp,'--ob') # plot just this window
plt.plot(s,'or') # plot window overlap-add
这给了我下面的图片
【问题讨论】:
标签: python matlab signal-processing