Re: RE: Mathmatica program crystal filter
- To: mathgroup at smc.vnet.net
- Subject: [mg131820] Re: RE: Mathmatica program crystal filter
- From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
- Date: Wed, 9 Oct 2013 22:12:07 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <53377.97.121.215.213.1381259106.squirrel@cu.imt.net>
I am not quite sure to have understood you correctly. You should have given an example of a desired form of the expression/graphics you are after. However, here is your input: db = {-1, -3, -10, -20, -30, -40, -50, -60, -70, -80}; freq1 = {3.39407, 3.39397, 3.39385, 3.39369, 3.39348, 3.39325, 3.39298, 3.39266, 3.39246, 3.39229}; freq2 = {3.39602, 3.39610, 3.39622, 3.39640, 3.39660, 3.39684, 3.39711, 3.39750, 3.39763, 3.39785}; This transforms the db data into the powers of 10: dbExp = Power[10, #] & /@ db // N {0.1, 0.001, 1.*10^-10, 1.*10^-20, 1.*10^-30, 1.*10^-40, 1.*10^-50, 1.*10^-60, 1.*10^-70, 1.*10^-80} This makes the corresponding lists, such that later the former db will show up along the vertical axis: lst1 = Transpose[{freq1, dbExp}]; lst2 = Transpose[{freq2, dbExp}]; and this builds the plot. Try it ListLogPlot[{lst1, lst2}, Frame -> True, FrameLabel -> {Style["Frequency", 16], Style["Level", 16]}] Hope this is what you want. Have fun, Alexei Alexei BOULBITCH, Dr., habil. IEE S.A. ZAE Weiergewan, 11, rue Edmond Reuter, L-5326 Contern, LUXEMBOURG Office phone : +352-2454-2566 Office fax: +352-2454-3566 mobile phone: +49 151 52 40 66 44 e-mail: alexei.boulbitch at iee.lu -----Original Message----- From: James L. Fisher [mailto:jlfisher at imt.net] Sent: Tuesday, October 08, 2013 9:05 PM To: Alexei Boulbitch Subject: [mg131820] Mathmatica program crystal filter Hi and thanks for your input. I think a point was left out of the data [0 db, 3.395 Mhz] The db scale should be a log scale. The db scale should be vertical. Can you fix it please? I appreciate the help very much. Thanks James I have some data I want to plot:: db = {-1, -3, -10, -20, -30, -40, -50, -60, -70, -80} freq1 = {3.39407, 3.39397, 3.39385, 3.39369, 3.39348, 3.39325, 3.39298, 3.39266, 3.39246, 3.39229} freq2 = {3.39602, 3.39610, 3.39622, 3.39640, 3.39660, 3.39684, 3.39711, 3.39750, 3.39763, 3.39785} The db is the log plot and the freq1 and freq2 are linear. This plot is of a crystal filter with a center frequency of 3.395 [0 db] and shows the shape of the filter in db loss as you get away from the center freq on the high freq side and the low freq side [above and below 3.395Mhz]. I hope to eventually overlay other crystal filters on top of this plot [multiple overlays] to compare with this filter. How can I set this up to display this single plot and also multiple plots? I assume ListLogLinearPlot is the best/simplest way to do this. Feel free to arrange the input data if there is a better way to do this. Here is a link of the data I want to eventually plot. This is not the only data I want to plot http://www.qsl.net/g3oou/iffilters2.html Thanks for any help James Math 6.0 Hi, James, I did not catch, why do you need to go for ListLogLinearPlot, if the data you gave varies in a limited way. Try first this: db = {-1, -3, -10, -20, -30, -40, -50, -60, -70, -80}; freq1 = {3.39407, 3.39397, 3.39385, 3.39369, 3.39348, 3.39325, 3.39298, 3.39266, 3.39246, 3.39229}; freq2 = {3.39602, 3.39610, 3.39622, 3.39640, 3.39660, 3.39684, 3.39711, 3.39750, 3.39763, 3.39785}; lst1 = Transpose[{db, freq1}]; lst2 = Transpose[{db, freq2}]; ListPlot[{lst1, lst2}] Or this: Show[{ ListPlot[{lst1, lst2}], ListLinePlot[{lst1, lst2}] }] Have fun, Alexei Alexei BOULBITCH, Dr., habil. IEE S.A. ZAE Weiergewan, 11, rue Edmond Reuter, L-5326 Contern, LUXEMBOURG Office phone : +352-2454-2566 Office fax: +352-2454-3566 mobile phone: +49 151 52 40 66 44 e-mail: alexei.boulbitch at iee.lu