Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Buffer processing with high and low pass filtering ?

Asked by I Made on 11 Mar 2013

I have a buffer named segmen that has < 512 x 490 int16 > values in it

r1c1 r1c2 r1c3 r1c4 r1c5 ... r1c490 (c1= column 1 r1=row 1)

r2c1 r2c2 r2c3 r2c4 r2c5 ... r2c490

.

.

.

r520c1 r2c2 r2c3 r2c4 r2c5 ... r2c490

I want to process it using formula like : (r1c1+r2c1)/2, (r1c1-r2c1)/2 -> low pass and high pass filter

i expect the output to be < 256 x 490 int 16>, but i do it wrong. Here is my code:

   f=wavread('tes.wav','native');
   v=[1/sqrt(2) 1/sqrt(2)]; %haar scaling function 
   w=[1/sqrt(2) -1/sqrt(2)]; %haar wavelet function
   if mod(length(f),2)~=0
       f=[f 0];
   end
   leftchanel=f(1:size(f),1);
   segment=buffer(leftchanel,512);
   d=length(segment);
   m=1:d/2;
   a1=segment(2*m-1).*v(1) + segment(2*m).*v(2);
   d1=segment(2*m-1).*w(1) + segment(2*m).*w(2);

Using that code what i got is < 1 x 256 int 16> but i expected < 256 x 490 int 16>, i need advise to correct my mistake please ?

0 Comments

I Made

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 11 Mar 2013
Edited by Walter Roberson on 11 Mar 2013
Accepted answer

hint:

A(2*k,:)

2 Comments

I Made on 11 Mar 2013

it was right to do r1c1+r2c1 , but it's not looping for r1c2+r2c2... hmm i think my loop is not perfect yet, am i correct?

I Made on 11 Mar 2013

wow thanks, i figured it out lol.

change my code into this:

a1=segment(2*m-1,:).*v(1) + segment(2*m,:).*v(2);
d1=segment(2*m-1,:).*w(1) + segment(2*m,:).*w(2);

stupid me T_T

Walter Roberson

Contact us