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