size - Error Matlab code -


i code subband coding, , delay signal code:

n = 18; %setting filter length [h0,h1,g0,g1] = firpr2chfb(n-1,0.4); % matlab function analysis/synthesis        num=20000; [x,fs,nbits] = wavread('sub1.wav',num); % analysis part % level 1 x0 = filter(h0,1,x); % lowpass filtering x1 = filter(h1,1,x); % highpass filtering  v0 = downsample(x0,2); % down-sampling, signal component v_0[n] v1= downsample(x1,2); % down-sampling, signal component v_1[n] % level 2 x2= v0; % selecting lowpass output level input level  x02 = filter(h0,1,x2); % lowpass filtering x12 = filter(h1,1,x2); % lowpass filtering v02= downsample(x02,2); % down-sampling v12= downsample(x12,2); % down-sampling v2= v12; % signal component v_2[n] % level 3 x3= v02; % selecting lowpass output level input level  x03 = filter(h0,1,x3); % lowpass filtering x13 = filter(h1,1,x3); % highpass filtering v03= downsample(x03,2); % down-sampling v13= downsample(x13,2); % down-sampling v3= v13; % signal component v_3[n] w13= [zeros(size(1:n-1)) v3(1:length(v3)-(n-1))] 

but receive error

error in ==> octavesubband @ 40 w13= [zeros(size(1:n-1))v3(1:length(v3)-(n-1))]; %inserting delay z^(-(n-))

i don't know fix it. please me. thanks

well starts looking @ size of array trying concatenate:

>> size(v3(1:length(v3)-(n-1)))  ans =          2483           1  >> size(zeros(size(1:n-1)))  ans =       1    17 

which suggest need transpose 1 of them:

w13= [zeros(size(1:n-1))'; v3(1:length(v3)-(n-1))]; 

or

w13= [zeros(size(1:n-1)) v3(1:length(v3)-(n-1))']; 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

qt - Errors in generated MOC files for QT5 from cmake -