Megha-

> I had one question. In functions like butter (for
filters) we declare a variable Wn

> (the cut off frequency). ex: [B,A] = BUTTER(N,Wn). In this Wn value is between
0

> and 1, where 1 means half of sampling rate. What I am not understanding is
where is

> it getting sample rate value from. I saw some codes and in that the sample
rate

> value is not declared before using the command. Directly the command is used.
Where

> is it getting sample rate value from?

> What I understand is suppose I have to run that filter design on an AIC. And
AIC is

> set at some sampling rate ex 48KHz. Then the code is understanding that sample
rate

> and setting Wn accordingly. Kindly correct me if I am wrong.

If your actual sampling rate is 48 kHz, and you want lowpass Butterworth filter
with

2 kHz cutoff, then set Wn = 0.0833.

Digital filters don't "know" the actual analog sampling rate; they only know
the

Z-plane unit circle, or 0 to 1 as you mention. In this example, if you vary
the

sampling rate (reprogram the AIC) then the filter cutoff is always
0.0833*fs/2.

-Jeff

> Jeff Brower wrote:

>

> Megha-

> > I tried getting more material on maxflat but I am not getting much. I

> > am not understanding what exactly SOS and G stand for.

> > If I want coeff for IIRCAS51 (cascaded IIR filter design with biquads

> > qith 5 coefficients) I want 3 coeff for zero (numerator) and 2 for

> > poles (denominator). I am not getting how to get those. i am not

> > understanding what does what stand for.

> Maxflat() is for Butterworth IIR filter design. It's one option --
you

> also might want Chebyshev or elliptic design.Another MATLAB function
for

> converting direct-form transfer function to cascade of biquad sections
is

> tf2sos(). Here are some pages that might give you some clues:

> http://www.math.psu.edu/local_doc/matlab/toolbox/signal/tf2sos.html

>
http://www.ee.ic.ac.uk/pcheung/teaching/ee3_Study_Project/iir_lab2.pdf-Jeff

>

> > Jeff Brower wrote:

> >

> > Megha-

> > > This is in continuation to my previous mail. I also tried

> > with a breakpoint at my

> > > next statement after fltoq15. If I run that. It stops in

> > between and gives the

> > > error:

> > > Trouble running Target CPU: Attempted write to ROM at

> > Addr:0x00ffff, Page:0

> > > I guess it is because of the infinite loop thing. Kindly

> > reply and suggest

> > > something.Waiting for your reply.Your code is trying to

> > write somwhere in mem locations 0x8000-0xffff, which are

> > external Flash as you mentioned before. Writing directly to

> > Flash area won't work

> > (although there is a way, which involves a series of Flash

> > chip-specific commands).

> > You have to check the C code ptr and array address values

> > just before the breakpoint

> > to see why they are not pointing at onchip or offchip

> > SRAM.Also, did you see the c55x group thread about IIR

> > cascade fixed-point filters? I've

> > included a copy of the latest message below. If you're not

> > subscribed to the c55x

> > group, you should. C55xx devices are the next generation

> > after C54xx -- both 16-bit

> > fixed-point.-Jeff

> > -------- Original Message --------

> > Subject: Re: [c55x] IIR filter coefficients in iircas5 dsplib

> >

> > Date: Tue, 16 May 2006 08:37:25 +0200

> > From: Christian Narvaez

> > To: c... thanks Misan, thanks RK:

> > indeed this was the problem... I have successfully

> > implemented the

> > filter now.CNnasim ahmed ha scritto:

> > > hi christian,

> > > u r trying to get q14 fixed point format but dsplib

> > > has q15 format, i suggest u to use both in same format . u

> > can

> > > multiply with 2^15 . And two q15 multiplication results

> > q2.30. here 2

> > > sign bit presents so u hav to modify that according to ur

> > desired

> > > output format. i hope it will help u , if u hav any prob u

> > can send me

> > > message.

> > >

> > > regards misan

> > >

> > > */Christian Narvaez /* wrote:

> > >

> > > Hi,

> > > I am having a problem trying to implement an IIR filter on

> > an TI c55x.

> > > I have calculated the filter on matlab getting the

> > following

> > > coefficients for 2 second order sections:

> > >

> > > SOS

> > > 1.0000 1.6854 1.0000 1.0000 -1.7197 0.8565

> > > 1.0000 -1.9999 1.0000 1.0000 -1.8899 0.9250

> > > G

> > > 1.0000

> > > 0.1041

> > > 1.0000

> > >

> > > Simulations perform as expected.

> > > Since the coefficients are between ]-2..2[ I transform the

> > SOS matrix

> > > as SOS_fix = SOS*2^14:

> > >

> > > SOS_fix

> > > 16384 27614 16384 16384 -28175 14033

> > > 16384 -32766 16384 16384 -30964 15155

> > >

> > > The question is: can I run this coefficients on iircas5 of

> > the TI

> > > dsplib? I know dsplib is Q.15 while my coefficients are

> > Q.14, but I

> > > suppose this is not a problem if the filter's input is

> > small

> > > enough not

> > > to cause any overflow. Unfortunately this does not work,

> > the

> > > output is

> > > completely wrong.

> > >

> > > The second think I tried was to multiply the numerator

> > > coefficients of

> > > the second section of the filter by 0.1041 (according to

> > G), before

> > > converting them to Q.14, getting this:

> > >

> > > SOS_fix_G

> > > 16384 27614 16384 16384 -28175 14033

> > > 1706 -3412 1706 16384 -30964 15155

> > >

> > > But this also does not work.

> > >

> > > Does anyone have any idea how I should convert my

> > coefficients in

> > > order

> > > to work with iircas5?

> > >

> > > Thanks.

> > >

> > > Christian

> >

> >

# Re: [Fwd: Re: code working on simulator but not on device?]

Started by ●May 16, 2006