Skip to content

Commit ae6e161

Browse files
author
wangwei
committed
add cola_check and webrtc window
1 parent fc55c7b commit ae6e161

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

COLA_check.m

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
% # COLA check:
2+
% # from scipy import signal
3+
% # print(signal.check_COLA(signal.windows.hamming(400,sym=False),400,300))
4+
% #
5+
frameLength = 256;
6+
overlap = 128;
7+
inc = frameLength - overlap;
8+
N_FFT = 512;
9+
10+
window = sqrt(hamming(frameLength+1));
11+
window = window(1:frameLength);
12+
% window = KaiserBesselDerived(1.5,256);
13+
14+
win = zeros(1,inc*9+overlap)';
15+
frameNum = fix((length(win)-overlap)/inc);
16+
win_ind = zeros(frameNum,length(win));
17+
figure,
18+
for n = 1:frameNum
19+
win_ind(n,(n-1)*inc+1:(n-1)*inc+frameLength) = window.^2;
20+
hold on,plot(win_ind(n,:))
21+
end
22+
win_sum = sum(win_ind); % overlap-add window
23+
hold on,plot(win_sum);

KaiserBesselDerived.m

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2+
% webrtc window
3+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4+
function window = KaiserBesselDerived(alpha,length)
5+
6+
half = fix((length + 1) / 2);
7+
sum = 0.0;
8+
window = zeros(1,length);
9+
10+
for i = 0: half
11+
12+
r = (4.0 * i) / length - 1.0;
13+
sum = sum + I0(pi * alpha * sqrt(1.0 - r * r));
14+
window(i+1) = sum;
15+
end
16+
i = length - 1:-1:half;
17+
% for i = length - 1; i >= half; --i)
18+
19+
window(length - i) = sqrt(window(length - i) / sum);
20+
window(i+1) = window(length - i);
21+
% end
22+
if (mod(length,2) == 1)
23+
24+
window(half - 1) = sqrt(window(half - 1) / sum);
25+
end
26+
27+
end
28+
function i0 = I0(x)
29+
30+
y = x / 3.75;
31+
32+
y = y*y;
33+
i0 = 1.0 + y * (3.5156229 + y * (3.0899424 + y * (1.2067492 + y * (0.2659732 + y * (0.360768e-1 + y * 0.45813e-2)))));
34+
end

0 commit comments

Comments
 (0)