The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> laplace_nd filter question
https://designers-guide.org/forum/YaBB.pl?num=1140619245

Message started by svensl on Feb 22nd, 2006, 6:40am

Title: laplace_nd filter question
Post by svensl on Feb 22nd, 2006, 6:40am

I would like to simulate a VCO with a certain bandwidth to account for signal attenuation at higher modulation frequencies.
Thus, I replaced the idtmod() function with the following: phase= 2PI(laplace_nd(freq,{1},{0 ,1}) % 1 - 0.5). This works fine but when
wanting to implement 1/(1+s/bw), where bw is the 3-db frequency,  the simulator takes for ever to simulate. Furthermore, when using 1/(1+s) the 3dB bandwidth should be 1rad/sec but the modulation signal passes through un-attenuated. It should all be straight forward but I must be doing something wrong.

Thanks for any feedback.

Title: Re: laplace_nd filter question
Post by Marq on Mar 20th, 2006, 2:50am

My €0.02:

Just by reading the LRM 2.2, I would say that to have 1/(1+s) as a transfer function in the $laplace_nd system function, you would need to provide

phase= 2 * `PI * (laplace_nd(freq,{1},{1,1}) % 1 - 0.5)

so using {1,1} for the denominator. In your code, you would implement 1/s instead.

Title: Re: laplace_nd filter question
Post by Marq on Mar 20th, 2006, 4:11am

Then again, the difference between 1/s and 1/(1+s) is (nearly) absent for high frequencies, so that wouldn't explain why your signal passes through unattenuated -- assuming s>>1.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.