- 空间
function [y] = hsolpsave(x,h,N)
% High-speed Overlap-Save method of block convolutions using FFT
% --------------------------------------------------------------
% [y] = hsolpsav(x,h,N)
% y = output sequence
% x = input sequence
% h = impulse response
% N = block length (must be a power of two)
%
T = 1;
while T<N,T = T*2;end
if T ~= N
N = 2^(ceil(log10(N)/log10(2)));
end
Lenx = length(x);
M = length(h);
M1 = M-1;
L = N-M1
H = fft(h,N);
x = [zeros(1,M1),x,zeros(1,N-1)]
K = floor((M1+Lenx-1)/L)+1; % 块数K = 向下取整( (N-1)/L ) + 1
y = zeros(K,N);
for k = 0:K-1
xk = fft(x(k*L+1:k*L+N));
y(k+1,:) = real(ifft(xk.*H));
end
y = y(:,M:N)';
y = y(:)';
收藏于 2013-08-28
来自于百度空间