This project focuses on second-order section behavior. We care about these dynamics for building more general filter responses, since any 1 dimension filter (like time) can be factored into a sequence of first and second-order resposes. Second order behavior means that effectively we can have both complex as well as real roots.
The silicon cochlea is an example of a neuromorphic system. It simulates wave propagation in the fluid and the basilar membrane of biological cochleas. We model this active fluid--dynamic system with a cascade of second--order sections. The response at any point in the signal path is the compound effect of all the preceeding sections.
We will observe wave propagation in the silicon cochlea and relate it to the frequency response of the individual sections. We will also measure the compound transfer functions and understand how they arise from the individual transfer functions. We will explore some of the linear effects in the circuit (i.e., the behavior of the circuit for small--signal input amplitudes), and some of the nonlinear effects in the cochlea, including how the nonlinearities in the amplifiers from which the circuit is built decrease the gain (i.e., Q) of the circuit as the amplitude of the input increases. This is a form of gain control which effectively increases the dynamic range of the cochlea.
Second-order behavior, particularly bandpass type behavior, is the foundation for first stage of processing in the human cochlea, in particular, the mechanical dynamics of the basilar membrane due to pressure changes. We will talk some of cochlear responses through this project, as our starting point for getting into biological computation.
We will be getting a bigger dose of vectorization in this project. Vectorization simply means that the drawn lines can represent a single signal or a bus of signals. As a result, the blocks need to account for this change by typically having multiple parallel elements represented by the one single block.
This week is also about getting another week to dig into circuit basics and get better intuition on circuit approaches. We will add Floating-Gate (FG) circuits into the mix this week, opening up additional questions on circuits.
In both cases, you will be showing, experimentally as well as verifying with the Xcos simulation, the behavior of a single LPF block, as well as showing the operation of a vector input / vector output of at least 4, that should be exponentially spaced corner frequencies.
Initial questions to consider
First, we will look at a Low-Pass Filter (LPF) block, classically referred to as a Diff2 block (in the AVLSI chapters) that forms the basis for a tunable second-order LPF block. You should build this circuit using FG OTA block, particularly given the resulting wider linear range. You need to then program the resulting offset voltage near zero, although being precise is not essential in this case.
You will want to address what, if any, are the effects besides improved linearity, using the FG OTA block.
Program the resulting Low-Pass filter block to nearly the same center frequency, but for three different values of Q (at least two are 1 or greater). Make a single plot of these three responses to compare the result for different Q. You will want to program the devices to a frequency in the audio range, roughly between 100Hz and 4kHz (you can choose); remember that the typical load capacitance in routing is in the 100fF to 2pF range. We would recommend using an input amplitude of 50-100mV.
You should also take one response for two larger input amplitudes for a particular tau and Q, ideally the highest Q of the three above. You should make a single plot of the three responses you have.
Next, we will measure the frequency response of our second-order section using the lock-in amplifier. Measure the frequency response of this second-order section at a single t, but at two diffent values of Q. You should use a small input, that is around 100 mV peak-to-peak. Make a plot of these two curves: one which is the magnitude of the two responses (log-log). Verify that the height of the peak approaches Q.
Next, for your higher Q value from the previous measurement, repeat the frequency response for a large amplitude (say 1V peak-to-peak). Comment on how the frequency response has changed, and give a reason why this curve could change?
A Bandpass Filter Block based on C4 OTA topology
Second, we will look at a Band-Pass Filter (BPF) block. The topology we will use, invented and developed at GT, is called the Capacitively Coupled Current Conveyer (C4), and uses a unique design to create a bandpass response using two OTA devices.
A bank of bandpass filters with exponentially spaced center frequencies and a moderate Q peak. The C4 is the bandpass filter of choice. Since only a single C4 stage will be used, the high frequency the roll offs will not be as steep as they would be with coupling between the sections.
Repeat the experiments for the LPF experiment for this BPF experiment, including the step response for different values of Q and amplitude as well as frequency response for the circuit for different values of Q and amplitude.
A Bandpass Filter Bank based on C4 OTA topology
Finally, we will be looking at compiling a bank (i.e. 4 or more) of these BPF blocks. We should have one input and multiple outputs in the overall structure. This type of filter bank models the human cochlea. Specifically, it models the effects of the basilar membrane without fluid coupling and before the action of the hair cells. We are going to use the audio ports for the input and output of this function, as well as on-chip switching capability to be able to hear a particular output.
Initially demonstrate the behavior of the system by taking the bank of elements with a step function input, say at a moderate input amplitude (like 100-200mV) and look at the result on each tap. You could also do a frequency sweep and measure the result through all 4 of the taps. You will want the spacing to be exponential between the elements, say between 100Hz and 4kHz.
Finally, run a speech waveform through your filterblocks and store the result, using sound files that you choose to use. We have some audio cables for this experiment. Would be good to listen the resulting waveforms as well as analyze the resulting input and output.