- refactored
- remove DC
This commit is contained in:
+16
-18
@@ -1,24 +1,22 @@
|
|||||||
function eval_blit()
|
function eval_blit()
|
||||||
|
|
||||||
sinc_use_lut = 0
|
sinc_use_lut = 1
|
||||||
|
|
||||||
L = 96000;
|
L = 96000;
|
||||||
fs = 48000;
|
fs = 48000;
|
||||||
fstart = 440;
|
fstart = 220;
|
||||||
fend = 440;
|
fend = 880;
|
||||||
df = (fend-fstart)/L
|
df = (fend-fstart)/L
|
||||||
|
|
||||||
# for saw
|
# for saw
|
||||||
rho = 0.95;
|
rho = 1.0;
|
||||||
|
|
||||||
nhw = 4096;
|
nhw = 4096;
|
||||||
Hw = kaiser(nhw, 8)';
|
Hw = kaiser(nhw, 8)';
|
||||||
|
|
||||||
max_m = fix((fs/fstart/2.0)) + 1
|
max_m = fix((fs/fstart/2.0)) + 1
|
||||||
|
|
||||||
sinc_table_calc = sinc_use_lut;
|
if sinc_use_lut == 1
|
||||||
|
|
||||||
if sinc_table_calc == 1
|
|
||||||
nharm = max_m
|
nharm = max_m
|
||||||
nsin = 1024;
|
nsin = 1024;
|
||||||
xx = (0:nsin)/nsin - 0.5;
|
xx = (0:nsin)/nsin - 0.5;
|
||||||
@@ -38,6 +36,7 @@ saw = 0.0;
|
|||||||
tri = 0.0;
|
tri = 0.0;
|
||||||
a = 1;
|
a = 1;
|
||||||
b = 1;
|
b = 1;
|
||||||
|
|
||||||
for n = 1:L,
|
for n = 1:L,
|
||||||
|
|
||||||
if x >= 0.5,
|
if x >= 0.5,
|
||||||
@@ -51,22 +50,18 @@ for n = 1:L,
|
|||||||
nn = (x+0.5)*nsin + 1;
|
nn = (x+0.5)*nsin + 1;
|
||||||
ni = fix(nn);
|
ni = fix(nn);
|
||||||
nf = nn - ni;
|
nf = nn - ni;
|
||||||
bbi = (bb(m, ni+1) - bb(m, ni))*nf + bb(m, ni); % Fractional delay (linear interpolation)
|
b = (bb(m, ni+1) - bb(m, ni))*nf + bb(m, ni); % Fractional delay (linear interpolation)
|
||||||
aai = (aa(ni+1) - aa(ni))*nf + aa(ni); % Fractional delay (linear interpolation)
|
a = (aa(ni+1) - aa(ni))*nf + aa(ni); % Fractional delay (linear interpolation)
|
||||||
if (aai ~= 0)
|
|
||||||
blit = fraq* bbi / aai * Hw(fix((x+0.5)*nhw)+1);
|
|
||||||
else
|
|
||||||
blit = fraq;
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
b = sin(m*x*pi);
|
b = sin(m*x*pi);
|
||||||
a = sin(x*pi);
|
a = sin(x*pi);
|
||||||
|
end
|
||||||
|
|
||||||
if (a ~= 0)
|
if (a ~= 0)
|
||||||
blit = fraq * b/a * Hw(fix((x+0.5)*nhw)+1);
|
blit = fraq * b/a * Hw(fix((x+0.5)*nhw)+1);
|
||||||
else
|
else
|
||||||
blit = fraq;
|
blit = fraq;
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
saw = rho*saw + (fraq - blit);
|
saw = rho*saw + (fraq - blit);
|
||||||
sqr = sqr + z*blit;
|
sqr = sqr + z*blit;
|
||||||
@@ -85,8 +80,11 @@ close all
|
|||||||
figure;
|
figure;
|
||||||
plot(1:L, vsaw, 1:L, vblit); grid;
|
plot(1:L, vsaw, 1:L, vblit); grid;
|
||||||
|
|
||||||
wavwrite(0.5*vtri, fs, 'tri.wav');
|
N_UNDC = fs/100;
|
||||||
wavwrite(0.5*vsqr, fs, 'sqr.wav');
|
|
||||||
wavwrite(0.5*vsaw, fs, 'saw.wav');
|
a, b = undcc(N_UNDC);
|
||||||
|
wavwrite(0.5*filter(b, a, vtri), fs, 'tri.wav');
|
||||||
|
wavwrite(0.5*filter(b, a, vsqr), fs, 'sqr.wav');
|
||||||
|
wavwrite(0.5*filter(b, a, vsaw), fs, 'saw.wav');
|
||||||
wavwrite(0.5*vblit, fs, 'blit.wav');
|
wavwrite(0.5*vblit, fs, 'blit.wav');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user