<_whitenotifier-3>
[scopehal-apps] azonenberg opened issue #157: Clicking on/very close to a cursor when dual cursors are displayed should drag that cursor, vs clearing and placing a new one - https://git.io/JJF4Q
<_whitenotifier-3>
[scopehal-apps] azonenberg labeled issue #157: Clicking on/very close to a cursor when dual cursors are displayed should drag that cursor, vs clearing and placing a new one - https://git.io/JJF4Q
<_whitenotifier-3>
[scopehal-apps] azonenberg opened issue #158: WaveformArea: don't create Pango::FontDescription's all over the place, there should be one/a few globally w/ appearance set by preferences - https://git.io/JJF4F
<_whitenotifier-3>
[scopehal-apps] azonenberg labeled issue #158: WaveformArea: don't create Pango::FontDescription's all over the place, there should be one/a few globally w/ appearance set by preferences - https://git.io/JJF4F
<_whitenotifier-3>
[scopehal-apps] azonenberg labeled issue #158: WaveformArea: don't create Pango::FontDescription's all over the place, there should be one/a few globally w/ appearance set by preferences - https://git.io/JJF4F
<_whitenotifier-3>
[scopehal-apps] azonenberg labeled issue #158: WaveformArea: don't create Pango::FontDescription's all over the place, there should be one/a few globally w/ appearance set by preferences - https://git.io/JJF4F
<_whitenotifier-3>
[scopehal-apps] azonenberg opened issue #159: Make cursor colors configurable in preferences - https://git.io/JJF4b
<_whitenotifier-3>
[scopehal-apps] azonenberg labeled issue #159: Make cursor colors configurable in preferences - https://git.io/JJF4b
<_whitenotifier-3>
[scopehal-apps] azonenberg labeled issue #159: Make cursor colors configurable in preferences - https://git.io/JJF4b
<noopwafel>
azonenberg: agh. 38C in the humidities here would have me basically dying I think
<noopwafel>
not being in the office due to situation means no access to airco at all
<noopwafel>
so \o/
<azonenberg>
The humidity isn't that crazy here at least
<azonenberg>
Right now it's 1 in the morning and it's still 23C and 67% RH
<azonenberg>
Today was the hottest predicted day though. Tomorrow is only supposed to hit 30C
<azonenberg>
We do have AC though, which is good. The house i was renting when i first moved out west, and the apartment we were in during the construction, were not air conditioned
<noopwafel>
here we had 7 days with peak >30C, and it just gets hotter and hotter indoors as everything absorbs the heat :)
<azonenberg>
This place is, although the lab was not when i bought it because it was just a garage (I installed a separate HVAC system in the lab as part of the renovation)
<noopwafel>
and indeed, temps like 23C overnight mean things don't cool down.. much better this week though.
<_whitenotifier-3>
[scopehal] azonenberg pushed 1 commit to master [+0/-0/±3] https://git.io/JJFR3
<azonenberg>
noopwafel: we actually get huge swings from day to night around here though for some reason. More so than other places i've lived
<azonenberg>
this morning the temp went up by like 12C in 3 hours
<_whitenotifier-3>
[scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±7] https://git.io/JJFRZ
<_whitenotifier-3>
[scopehal-apps] azonenberg e28a749 - Lots of fixes to cursor handling. Normalized cursors so X1 is always before X2. Added value display to cursors.
<azonenberg>
how's this look? in particular should i keep the value highlights down at the bottom where they are, or move them to be where the cursor hits the waveform?
<noopwafel>
so I like having them at the bottom because it's usually out of the way of the area of interest
<noopwafel>
also nice!
<azonenberg>
also FFT displays can be scrolled/zoomed in the vertical axis vs being hard coded
<azonenberg>
and display values in dBm assuming a 50 ohm system, rather than abstract dB with no scale
<azonenberg>
Long term i think this should prob be a preference
<azonenberg>
i.e. bottom or at intersection point, user's choice
sorear has quit [Ping timeout: 244 seconds]
sorear has joined #scopehal
bvernoux has joined #scopehal
<bvernoux>
News of the day Analog Device has officially bought Maxim Semiconductor for 21Billions USD !!
<monochroma>
pretty soon we will just be buying parts from microchip and analog devices :P
<NeroTHz>
wonder if intel will spin off their fab devision at some point
<NeroTHz>
similar to what AMD did
<NeroTHz>
with them already trying to diversify and tape with other foundries too
* azonenberg
continues to believe that one day TSMC will stand for "The Semiconductor Manufacturing Company"
<azonenberg>
NeroTHz: from what i hear intel's fab is no longer as leading edge as it used to be. Wrt 7nm issues
<NeroTHz>
yeah, ever since their sturggles with 10nm they lost that edge
<azonenberg>
i've seen rumors of them even considering third party fabs
<NeroTHz>
it was their thing, intel 16 >> TSMC 14 etc
<NeroTHz>
I think they are already using third party for some of their stuff
<monochroma>
everyone loves a sidelobe to the face, right?
<NeroTHz>
hahaha yeah
<azonenberg>
NeroTHz: ping
<NeroTHz>
pong
<NeroTHz>
yeah, that´s some pretty shitty latency right there
<azonenberg>
So i'm working on making my CTLE actually be a bit more "proper"
<azonenberg>
using an actual pole-zero based transfer function
<azonenberg>
rather than a piecewise linear curve i had before
<azonenberg>
my understanding is that I want the zero frequency to be around the point where peaking begins, the first pole around the peak, and the second pole somewhere past the peak to provide attenuation of out-of-band signals
<azonenberg>
is that about right?
<NeroTHz>
one sec while I parse this information
<NeroTHz>
it sounds about right yes, but I´m no expert on equalizers
<azonenberg>
So then the actual transfer function is just (s-z1)*(s-z2) ... / (s-p1)*(s-p2)...
<azonenberg>
where in this case we have one zero and two poles
<azonenberg>
Apply a constant scaling factor to provide unity gain at DC (i.e. divide by the output of the unscaled transfer function with s=0)
<azonenberg>
S itself is 2*pi*frequency, since we care about rad/s rather than Hz
<azonenberg>
that also sound correct?
<NeroTHz>
yeah, sounds about right indeed
<azonenberg>
Ok
<azonenberg>
And then all of these quantities are complex numbers of course
<azonenberg>
So the part i'm stuck at is figuring out actual complex pole/zero values to produce a desired response
<azonenberg>
right now i'm setting the real part of them to zero and the complex part to -s(freq)
<azonenberg>
and that doesn't seem to be doing what i want
<azonenberg>
it's got the right general shape but i expected a flat part before the peaking starts. and of course the absolute values are waaay off
<azonenberg>
this example has Z1 at 2 GHz, P1 at 4 GHz, P2 at 8 GHz
<azonenberg>
and the imaginary part to -s(freq) i mean
<azonenberg>
What i want is flat response to 2 GHz, rising to some higher value at 4 GHz, then rolling off as you get toward 8 GHz
<azonenberg>
(these numbers being arbitrary and just for testing)
<NeroTHz>
it has been a long time since I did my laplace transforms and filter designs
<azonenberg>
well a long time is better than none whatsoever :P
<azonenberg>
my degree is in computer science and i dont even know what a laplace transform IS
<NeroTHz>
ah
<NeroTHz>
it´s like a more general fourier
<azonenberg>
i've taken a grand total of... two? electrical engineering classes lol
<NeroTHz>
fourier can be seen as a slice out of laplace
<azonenberg>
one was "internet protocols"
<azonenberg>
and the other was "advanced computer hardware design" which was a joke and involved such gems as building a 4-bit CPU in schematic capture, and finishing a partly implemented VHDL IDE hard drive controller
<azonenberg>
an IDE disk controller. On a PCI card containing four 10K gate Xilinx XC4000 series 350nm FPGAs plugged into a DEC Alpha
<azonenberg>
In... 2011? 2012?
<azonenberg>
the FPGAs were younger than my brother, but only by a few months :p
<NeroTHz>
I think. it´s been a while since I did mathing around. isn´t fourier laplace for s=i*omega?
<azonenberg>
Havent got a clue, lol
<azonenberg>
anyway so I think i have the transfer function itself right... I think
<azonenberg>
and I think i'm correct in that i'm setting the imaginary part of each pole/zero to -s for the target frequency
<azonenberg>
but i have no clue what to set the real part to
<NeroTHz>
I would say a good place to start is just some basic filter-design tutorials (like filter design asin ´how do I go from this to a laplace domain transfer function)
<azonenberg>
i tried putting a gain value there and it didn't make any sense
<NeroTHz>
because this is a part of signal processing that I was never any good at
<azonenberg>
is this laplace domain? because ultimately what i want is s-parameters
<azonenberg>
i.e. frequency domain magnitude/angle
<NeroTHz>
the reason it is usually designed in the laplace domain is because a lot of stuff can just be written as pole/zeros, and then you just fill in j*omega as s, and tada, you have your frequency-domain transferfunction
<NeroTHz>
now how to go from a frequency-domain transferfunction to a laplace domain? no clue
<azonenberg>
:p;
<azonenberg>
Lol *
<NeroTHz>
I´m almost inclined to suggest brute-forcing: have user fill in a number of poles/zeros, and then just try to minimize |H(f)-S(f)| of the filter you created. Might be some nice gradient-decent algorithm for it or something
<azonenberg>
i'm gonna have a higher level optimizer that tries to maximize eye opening
<azonenberg>
but it needs to output poles/zeroes as i think that would be the input for configuring an actual physical CTLE IIP
<azonenberg>
IP*
<NeroTHz>
which is in the end what adaptive filters kinda do, but the magic there is that they don´t actually know S(f), they only know M(f)*S(f) and M(f)*H(f) (with M(f) being the input signal), and try to minimize the difference between those two I think