Some simulation results are presented in this post that may be of interest to layout of RFMW circuits as well as to the design of the MIC or MMIC circuitry. What has been done here, is to simulate a microstrip with fixed width and varying length. The source impedance is 50 Ohm and the load impedance is 50 Ohms. What it shows is, that in layout for example, if the width is constant ( and designed for 50 Ohms) the length of a microstrip ( where alpha = 0) causes a very small change in the peak voltage across the load. However, the angle of the voltage changes significantly. This has implications for interconnecting devices using microstrip and phase issues ( if important). Your comments are welcome. Please visit the Signal Processing Group Inc website at www.signalpro.biz for other interesting items.
A compensation filter for a CIC filter was required. We chose to use the free software tool OCTAVE to help us do this. Here is the sequence of tasks that were done. (Be aware that a compensation filter filter design is not trivial unless you have been doing it for a long while. )
1.0) Design the CIC filter. 2) Measure the droop of the filter . (3) Use the inverse response of the CIC filter to synthesize the compensation filter. (4) Use the frequency response of the inverse filter to generate a frequency – magnitude table. ( Much like a piecewise linear SPICE signal). This table consists of frequency – magnitude pairs for the compensation filter you want. (5) Use this table as the input to the function fir2(n,f,m) in Octave. This function provides the coefficients of the filter you need. However, the trick is to choose the right “n”; It took us a while to get the value of n right for our purposes. You will have to choose yours however you wish. (6) Run fir2 and take the results ( say “b”) and generate the impulse response of the filter from it using another OCTAVE function called impz(). The input argument is the “b” you just got from fir2. Once you have the impulse response use the freqz function in Octave to simulate the filter you just designed. Once you have the frequency magnitude characteristic of the new filter you can do a multiplot using the plot function from OCTAVE. This allows you to compare the two filters. i.e. the filter you wanted and the filter you designed.
You can make adjustments by using multiple runs of the above sequence until you get the best filter you can get, An example of the multiplot is shown below. The blue line is the original filter and the orange line is the one we got from using the sequence quoted above. Please visit the Signal Processing Group Inc website for more info and contact information.
Octave is GNU ( read public domain free CAD tool). It can be downloaded from the Octave website. We downloaded the latest version and the following is our experience with it. (1) Installation: Installation was not too painful but had to be done multiple times until we succeeded. Takes a few minutes but when it works its really fine.
(2) Execute: This was really difficult to do. After installation a couple of Icons appear on the desktop. One for “CLI” and one for “GUI” Neither of them work. Its pure frustration initially before we realized these icons were never going to work. So we went back to the system and traced where the binaries were– also a fairly hard path — and ran octave from there. It did run but it ran in a shell using command lines.
(3) Utilities: Octave core does not have the scripts we wanted to run like FFT, IFFT etc. These and most other scripts all are in octave “packages”. So we tried to get these packages to run but it took a significant amount of time ( and with significant help from Google) to finally load the packages we wanted. After that we could use the program.
We still have not stress tested the program but I am happy to report that Octave is now running on our machine.
Is it worth all this trouble? I think it is. For the price you pay for it i.e $0.0, and the capability you get once the initial teething problems are over it surely is worth it.
The competitor to Octave is of course MATLAB but MATLAB is very expensive so if you do not have the money to pay for MATLAB you might try OCTAVE. Please visit the Signal Processing Group Inc website for more technical info.