You are not authenticated, login.
text: sort by
tags: modified
type: chronology
{524} is owned by tlh24.
hide / / print
ref: -0 tags: GFlowNet Bengio probabilty modelling reinforcement learing date: 10-29-2023 19:17 gmt revision:3 [2] [1] [0] [head]

GFlowNet Tutorial

  • It's basically like RL, only treating the reward as a scaled unnormalized probability or 'flow'.
  • Unlike RL, GFN are constructive, only add elements (actions), which means the resulting graph is either a DAG or tree. (No state aliasing)
  • Also unlike RL / REINFORCE / Actor-critic, the objective is to match forward and reverse flows, both parameterized by NNs. Hence, rather than BPTT or unrolls, information propagation is via the reverse policy model. This forward-backward difference based loss is reminiscent of self-supervised Barlow Twins, BYOL, Siamese networks, or [1][2]. Bengio even has a paper talking about it [3].
    • The fact that it works well means that it must be doing some sort of useful regularization, which is super interesting.
    • Or it just means there are N+1 ways of skinning the cat!
  • Adopting a TD(λ) TD(\lambda) approach of sampling trajectories for reward back-propagation improves convergence/generalization. Really not that different from RL..
  • At least 4 different objectives (losses):
    • Matching per-state in and out flow
    • Matching per-state forward and backward flow
    • Matching whole-trajectory forward and backward flow
    • Subsampling whole-trajectory and matching their flow.

hide / / print
ref: -0 tags: convolutional neural networks audio feature extraction vocals keras tensor flow fourier date: 02-18-2019 21:40 gmt revision:3 [2] [1] [0] [head]

Audio AI: isolating vocals from stereo music using Convolutional Neural Networks

  • Ale Koretzky
  • Fairly standard CNN, but use a binary STFT mask to isolate vocals from instruments.
    • Get Fourier-type time-domain artifacts as a results; but it sounds reasonable.
    • Didn't realize it until this paper / blog post: stacked conv layers combine channels.
    • E.g. Input size 513*25*16 513 * 25 * 16 (512 freq channels + DC, 25 time slices, 16 filter channels) into a 3x3 Conv2D -> 3*3*16+16=1603 * 3 * 16 + 16 = 160 total parameters (filter weights and bias).
    • If this is followed by a second Conv2D layer of the same parameters, the layer acts as a 'normal' fully connected network in the channel dimension.
    • This means there are (3*3*16)*16+16=2320(3 * 3 * 16) * 16 + 16 = 2320 parameters.
      • Each input channel from the previous conv layer has independent weights -- they are not shared -- whereas the spatial weights are shared.
      • Hence, same number of input channels and output channels (in this case; doesn't have to be).
      • This, naturally, falls out of spatial weight sharing, which might be obvious in retrospect; of course it doesn't make sense to share non-spatial weights.
      • See also: https://datascience.stackexchange.com/questions/17064/number-of-parameters-for-convolution-layers
  • Synthesized a large training set via acapella youtube videos plus instrument tabs .. that looked like a lot of work!
    • Need a karaoke database here.
  • Authors wrapped this into a realtime extraction toolkit.

hide / / print
ref: -0 tags: David Kleinfeld cortical vasculature laser surgery network occlusion flow date: 09-23-2016 06:35 gmt revision:1 [0] [head]

Heller Lecture - Prof. David Kleinfeld

  • Also mentions the use of LIBS + q-switched laser for precisely drilling holes in the scull. Seems to work!
    • Use 20ns delay .. seems like there is still spectral broadening.
    • "Turn neuroscience into an industrial process, not an art form" After doing many surgeries, agreed!
  • Vasodiliation & vasoconstriction is very highly regulated; there is not enough blood to go around.
    • Vessels distant from a energetic / stimulated site will (net) constrict.
  • Vascular network is most entirely closed-loop, and not tree-like at all -- you can occlude one artery, or one capillary, and the network will route around the occlusion.
    • The density of the angio-architecture in the brain is unique in this.
  • Tested micro-occlusions by injecting rose bengal, which releases free radicals on light exposure (532nm, 0.5mw), causing coagulation.
  • "Blood flow on the surface arteriole network is insensitive to single occlusions"
  • Penetrating arterioles and venules are largely stubs -- single unbranching vessels, which again renders some immunity to blockage.
  • However! Occlusion of a penetrating arteriole retards flow within a 400 - 600um cylinder (larger than a cortical column!)
  • Occulsion of many penetrating vessels, unsurprisingly, leads to large swaths of dead cortex, "UBOS" in MRI parlance (unidentified bright objects).
  • Death and depolarizing depression can be effectively prevented by excitotoxicity inhibitors -- MK801 in the slides (NMDA blocker, systemically)

hide / / print
ref: -0 tags: winslow Tresco 2010 BBB histology immune response microelectrodes date: 04-19-2013 23:25 gmt revision:0 [head]

PMID-19963267 Quantitative analysis of the tissue response to chronically implanted microwire electrodes in rat cortex.

  • Winslow BD, Tresco PA.
  • The spatial distribution of biomarkers associated with the foreign body response to insulated microwires placed in rat cerebral cortex was analyzed 2, 4, and 12 weeks after implantation using quantitative methods.
  • We found no evidence that reactive gliosis increases over time or that neuronal loss is progressive, we did find evidence of persistent inflammation and enhanced BBB permeability at the electrode brain tissue interface that extended over the 3 month indwelling period and that exhibited more animal to animal variability at 3 months than at 2 and 4 weeks.

hide / / print
ref: Kim-2004.05 tags: histology electrode immune response Tresco hollow fiber membranes GFAP vimentin ED1 date: 01-28-2013 03:08 gmt revision:7 [6] [5] [4] [3] [2] [1] [head]

PMID-14741588[0] Chronic response of adult rat brain tissue to implants anchored to the skull.

  • The increase in tissue reactivity observed with transcranially implanted HFMs may be influenced by several mechanisms including chronic contact with the meninges and possibly motion of the device within brain tissue.
  • Broadly speaking, our results suggest that any biomaterial, biosensor or device that is anchored to the skull and in chronic contact with meningeal tissue will have a higher level of tissue reactivity than the same material completely implanted within brain tissue.
  • See also [1]
  • Could slice through the hollow fiber membrane for histology. (as we shall).
  • Good list of references.


[0] Kim YT, Hitchcock RW, Bridge MJ, Tresco PA, Chronic response of adult rat brain tissue to implants anchored to the skull.Biomaterials 25:12, 2229-37 (2004 May)
[1] Biran R, Martin DC, Tresco PA, The brain tissue response to implanted silicon microelectrode arrays is increased when the device is tethered to the skull.J Biomed Mater Res A 82:1, 169-78 (2007 Jul)

hide / / print
ref: Harrison-2003.06 tags: CMOS amplifier headstage electrophysiology neural_recording low_power chopper Reid Harrison date: 01-16-2012 04:43 gmt revision:12 [11] [10] [9] [8] [7] [6] [head]

IEEE-1201998 (pdf) A low-power low-noise CMOS amplifier for neural recording applications

  • detail novel MOS-bipolar pseudoresistor element to permit amplification of low-frequency signals down to milihertz range.
  • 80 microwatt spike amplifier in 0.16mm^2 silicon with 1.5 um CMOS, 1 microwatt EEG amplifier
  • input-referred noise of 2.2uV RMS.
  • has a nice graph comparing the power vs. noise for a number of other published designs
  • i doubt the low-frequency amplification really matters for neural recording, though certainly it matters for EEG.
    • they give an equation for the noise efficiency factor (NEF), as well as much detailed background.
    • NEF better than any prev. reported. Theoretical limit is 2.9 for this topology; they measure 4.8
  • does not compare well to Medtronic amp: http://www.eetimes.com/news/design/showArticle.jhtml?articleID=197005915
    • 2 microwatt! @ 1.8V
    • chopper-stabilized
    • not sure what they are going to use it for - the battery will be killed it it has to telemeter anything!
    • need to find the report for this.
  • tutorial on chopper-stabilized amplifiers -- they have nearly constant noise v.s. frequency, and very low input/output offset.
  • References: {1056} Single unit recording capabilities of a 100 microelectrode array. Nordhausen CT, Maynard EM, Normann RA.
  • [5] see {1041}
  • [9] {1042}
  • [12] {1043}

Harrison, R.R. and Charles, C. A low-power low-noise CMOS amplifier for neural recording applications Solid-State Circuits, IEEE Journal of 38 6 958 - 965 (2003)

hide / / print
ref: Holleman-2007.08 tags: amplifier recording NEF low noise original date: 01-15-2012 22:08 gmt revision:1 [0] [head]

IEEE-4353193 (pdf) A Sub-Microwatt Low-Noise Amplifier for Neural Recording

  • 0.805 uA from a 1V supply, gain of 36dB and 44db.
  • open loop amplfier, pass band between 0.3 and 4.7 kHz.
  • 3.5 uV rms input referred noise.
  • NEF 1.8


Holleman, J. and Otis, B. Engineering in Medicine and Biology Society, 2007. EMBS 2007. 29th Annual International Conference of the IEEE 3930 -3933 (2007)

hide / / print
ref: Wyler-1980.08 tags: Wyler operant conditioning fast slow pyramidal tract neurons BMI date: 01-07-2012 22:09 gmt revision:3 [2] [1] [0] [head]

PMID-7409057[0] Operant control of precentral neurons: comparison of fast and slow pyramidal tract neurons.

  • Slow PTN (neurons with antidromic latency > 2ms) are pratically all well controlled in his operant-conditioning task;
  • Fast (< 2ms, mean 1.2ms latency) have a more highly variable firing rates and ISIs.
  • "[I]t appears that the majority of error from fast PT cells was generated by ISIS less than 30 ms, whereas the majority of error for slow PT cells was represented in ISIS greater than 60 ms."
    • Ok, trivial observation, but still interesting.


[0] Wyler AR, Burchiel KJ, Robbins CA, Operant control of precentral neurons: comparison of fast and slow pyramidal tract neurons.Exp Neurol 69:2, 430-3 (1980 Aug)

hide / / print
ref: Harrison-2009.08 tags: low power ASIC wireless neural recording Reid Harrison Shenoy date: 01-03-2012 00:55 gmt revision:2 [1] [0] [head]

IEEE-5061585 (pdf) Wireless Neural Recording With Single Low-Power Integrated Circuit

  • 100 channels, with threshold spike extraction.
  • 900Mhz FSK transmit coil.
  • Inductive power and data link.


Harrison, R.R. and Kier, R.J. and Chestek, C.A. and Gilja, V. and Nuyujukian, P. and Ryu, S. and Greger, B. and Solzbacher, F. and Shenoy, K.V. Wireless Neural Recording With Single Low-Power Integrated Circuit Neural Systems and Rehabilitation Engineering, IEEE Transactions on 17 4 322 -329 (2009)

hide / / print
ref: Harris-2009.06 tags: Bartholow 1874 Mary experiment stimulation ICMS date: 12-29-2011 05:13 gmt revision:2 [1] [0] [head]

PMID-19286295[0] Probing the human brain with stimulating electrodes: The story of Roberts Bartholow’s (1874) experiment on Mary Rafferty

  • Excellent review / history.
  • Actual citation: Experimental investigations into the functions of the human brain" The American Journal of the medical Sciences 1874
  • Actual subject: Marry Rafferty
  • Around his time people were shifting from using intuition and observation to direct treatment to using empiricism & science, especially from work on laboratory animals.
  • One of the innovations that could not be tolerated by his colleagues was the "physiological investigations of drugs by the destruction of animal life." He was a bit of an outsider, and not terribly well liked.
  • Before then the cortex was seen to be insensitive to stimulation of any kind.
  • Ferrier 1974b: in the striatum all movements are integrated which are differentiated in the cortex" -- striatal stimulation produces general contraction, not specific contraction.
  • Ferrier 1873 was the first to discover that AC stimulation yielded more prolonged and natural movements than DC.
  • The Dura mater is extremely sensitive to pain.
  • Mary Rafferty seems to have had a tumor (he calls it an ulcer) in the meninges (epithelioma).
  • He probably spread infection into her brain through the stimulating needles.


[0] Harris LJ, Almerigi JB, Probing the human brain with stimulating electrodes: the story of Roberts Bartholow's (1874) experiment on Mary Rafferty.Brain Cogn 70:1, 92-115 (2009 Jun)

hide / / print
ref: -0 tags: video games education learning flow work date: 12-13-2010 04:31 gmt revision:2 [1] [0] [head]

Learning by Playing: Video Games in the Classroom

  • My initial reaction was very skeptical and critical:
    • Video games are pleasurable and addictive because they are not like real life; the problems (more accurately, puzzles) posed always have some solution, again unlike the real world.
    • A purpose of education is to convey both information about the world and strategies for understanding it / succeeding in it (or, perhaps more relevantly, strategies what not to do -- see iatrogenic science). The less the learning environment reflects the real world, the less the students learn.
      • Up to a point, of course - part of the role of education is to render hierarchical something that was arrived at very randomly and haphazardly so as to be easier to remember and use. The learning environment has to reflect the William-James-ish pragmatic balance between too simple and too complex.
  • Video games, I initially thought and still feel, reflect less of the real world and its attendant frustrations, hence are inferior for learning about said thing.
    • Upon further thought: perhaps the increase in engagement & flow more than compensates for decreased realism? By the end of the article, I was thinking this. Maybe we should just re-engineer our working environment so that all tasks can be re-framed as addictive, pleasureable games. We've been changing the environment forever, and have already gone a bit down this path, so why not? If such is to occur (as I anticipate it will), these kids will be well prepared.
    • The whole purpose of being here is to .. well, enjoy it .. if the kids like doing these things, and they are later equally able to lead productive lives, there is no problem.
  • Playing video games is not the same as learning how to force yourself to study something that you don't understand, something that heretofore you saw no interest in. Games must be designed carefully to afford such choices, so that the players do not blindly follow the task-trail laid out by the designers. Elementary school students of course should explore microcosms with the due understanding that eventually the same processes will/can be applied to the real non-designed exploration that is life...
  • The question at hand (video games in education) is hence isomorphic (or at least related) to a much deeper question: is viewing life a game, a thing to be optimized and solved, a good philosophy? (even the question shows how deeply ingrained the ideas of valuation are!). I say no.

hide / / print
ref: notes-0 tags: nordic nrf24L01 state diagram flowchart SPI blackfin date: 06-25-2008 02:44 gmt revision:7 [6] [5] [4] [3] [2] [1] [head]


The goal is to use a nRF24L01 to make an asymmetrical, bidirectional link. The outgoing bandwidth should be maximized, ~1.5mbps, and the incoming bandwidth can be much smaller, ~17kbps, though on both channels we want guaranteed latency, < 4ms for the outgoing data, and < 10ms for the incoming data. Furthermore, the processor that is being used to run this, a blackfin BF532, does not seem to play well when both SPI DMA is enabled and most CPU time is being spent in SPORT ISR reading samples & processing them. Fortunately, the SPI port and SPORT can be run synchronously (provided the SPI port is clocked fast enough), allowing the processor to run one 'thread' e.g. no interrupts. It seem that with high-priority interrupts, the DMA engine is not able to service the SPI perfectly, and without DMA, data comes out of the SPI in drips and drabs, and cannot keep the radio's fifo full. Hence, must program a synchronous radio controller, where states are stored in variables and not in the program counter (PC register, saved upon interrupt, etc).

As in other postings on the nRF24L01, the plan is to keep the transmit fifo full for most of the 4ms allowed by the free-running pll, then transition back into either standby-I mode, or send a status packet. The status packet is always acknowledged by the primary receiver with a command packet, and this allows both synchronization and incoming bandwidth. Therefore, there are 4 classes of transfers:

  1. just a status packet. After uploading, wait for TX_DS IRQ, transition to RX mode, wait for RX_DR irq, clear ce, read in the packet, and set back to TX mode.
  2. one data packet + status packet. There are timeouts on both the transmission of data packets and status packets; in this case, both have been exceeded. Here TX data state is entered, the packet is uploaded, CE is asserted, send the status packet, wait for IRQ from both packets. This requires a transition from tx data CE high state to tx status CSN low state.
  3. many data packets and one status packet. This is the same as above, only the data transmission was triggered by a full threshold in the outgoing packet queue (in processor ram). In this case, two packets are uploaded to the radio before waiting for a TX_DS IRQ, and, at the end of the process, we have to wait for two TX_DS IRQs after uploading the data packet.
  4. many data packets. This is straightforward - upload 2 packets, wait for 1 TX_DS IRQ, {upload another, wait for IRQ}(until packets are gone), wait for final IRQ, set CE low.

screenshot of the derived code working (yea, my USB logic analyzer only runs on windows..yeck):

old versions:

hide / / print
ref: engineering notes-0 tags: bluetooth CSR NXP headset radio telemetry 802.11 zigbee low-power date: 12-12-2007 06:10 gmt revision:26 [25] [24] [23] [22] [21] [20] [head]

the contenders:

  • NXP BGB210S, a 4th generation chip from Philip's spin-off NXP.
    • 3 x 5 x 1 mm (!!).
    • supports Bluetooth 2.0 + EDR.
      • the higher data rate is really targeted at decreasing the TX active time.
    • power consumption: 12ma @ 1.8v supply = 21.5mW
    • CMOS w/ near-zero intermediate frequency radio.
  • BGW211 802.11 system-on-a-chip, from NXP
    • 400mw Tx power, 300mw Rx - both too much, me thinks.
  • BCM4326
    • similar power figures (295mw rx, 425mw tx)
    • ultra-small 0.25mm WLCSP (!!)
    • one chip solution for 802.11b/g ; BCM4328 supports 802.11a, too.
  • Wi2wi w2cbw003 - 230ma tx, 210ma rx 802.11 module. too much.
  • G2 Microsystems , developers of 802.11B (11mbps) system-on-a-chip for RFID.
    • insanely low power dissipation! years on AA batteries! (based on 40s interval between data transmissions. 1.3mJ per transmission - an order of 500 lower than existing solutions. much lower static dissipation, too.
    • includes 32 bit RISC processor with 80kb ram, 320 kb flash/rom.
    • works with existing infrastructure, e.g. cisco.
    • article on the chip / product, may 2006.
    • http://www.gainspan.com/ -- competitors. they do not appear to have a product yet.
  • Freescale LP1070FC 802.11a/b/g, requires external PA, LNA, switch. no data on the power consumption... actually, the datasheet appears to be rather incomplete!
  • CSR UniFi-1 radio is far better, but I can't seem to find documentation for that, specifically the power dissipation.
    • well, let's see - 20 hours talk time with a 1500mAH battery = 75ma. not bad, i guess; TX power can be decreased for the short range we need.
  • BlueCore5 ; product brief, which includes more power info.
    • rather recently developed; is the silicon debugged? The datasheet is preliminary information.
    • 10 x 10mm, 0.8mm pitch 105 balls or 8x8 TFBGA.
    • 1.5V core, 1.8V-3.6V io, USB
    • bluetooth v2.0/2.1.
    • 64mips DSP on-chip.
      • 0.3 mA/MIPS at 1.5V. compare to Texas instruments TMS320VC5507 = 0.45ma/Mhz @ 1.2V core ~= 54Mw at 100mips; Kalimba ~= 30mw @64mips.
      • this is 2mips/channel. enough? damn, gotta keep the power low!
      • the Bluecore3 datasheet has more information on the DSP power consumption.
    • 16 Mbit flash, too!
    • BlueCore4 seems to be much better documented, but it does not include the DSP, which saves a lot on parts count.. as well as power.
  • Bluecore4
    • 8x8mm 96-bga,
    • with 6mbit flash!
    • bluetooth 2.0 / EDR.
    • current consumption of about 26ma @ 1.8V supply when in SCO HV3
  • Boroadcom BCM4326
    • single chip 802.11b/g solution, integrated Arm7 CPU
    • again, 300mW (not mA! smaller!) Rx, 400 mW Tx. That's still a lot of power.
  • Broadcom BCM2047
    • again, seems that these have yet to come out; details are scarce.
    • The belkin bluetooth 2.0 adapter that I bought at compusa uses a BCM2045.
  • CC2400, non-bluetooth - simpler!
  • Zarlink - ultra low power, 433Mhz ISM band biomedical tranciever.
    • about 7x7mm.
    • 3v supply, 2.7 should work, 5ma = 13.5mw (yesss!)
    • 800kbps raw data rate, max.
    • 2.45Ghz wakeup reciever (??)
    • seems to be designed for pacemakers & neurostimulators.
    • need to contact zarlink for the full data sheet.
  • RFM TR1100 - what the wolf lab uses for telemetry. OOK or ASK.
    • 1Mbps max.
    • only 1 channel, so far as i can tell...
    • 8ma @ 2.7V = 21.6mw.
    • integrated SAW filters = narrow bandwidth.
    • 10 x 6 mm size, minimal external components, though it does seem to require extra resistors.
    • really interesting method of obtaining RX input amplification stability - a SAW delay line, where the amplifiers are pulsed on at different times to permit the passage of RF energy. quote: "rf stability is obtained by distributing RF gain over time", as opposed to the superheterodyne solution of distributing gain over frequencies. If there were 100db of gain in 1 frequency, the amplifier is very likely to oscillate.
  • RFM TRC101
  • RFM TR3100 576 kbps ASK, -85dbm 10e-3 error rate.
    • 10ma TX / 7ma RX
    • 11x9,65mm SM-20L package
    • kinda has a lot of external components.
    • 434 mhz operation.
  • ADF7025 Analog 431-464, 862-870, 902-928 ISM band FSK transceiver.
    • 20ma TX (28ma at +10dbm) , 20ma RX from 2.3 to 3.6V supply.
    • direct conversion: zero IF.
    • SPI interface (plus a bunch of other signals).
    • 384kbps max data rate.
    • 7mm x 7mm 48 lead CSP
  • CC1101 (chipcon was acquired by TI)
    • 500kbps FSK, GFSK, MSK, OOK, ASK transmit/receive. 500kbps is only available in MSK, minimum-shift keying mode.
      • -84dbm receiver sensitivity @ 500kbps.
    • same bands as above + a bit more margin.
    • suitable for frequency hopping systems.
    • QLP 4mm x 4mm package
    • 16ma TX (32.3 at +10dbm), 16ma RX
    • 1.8 - 3.6V operation.
  • Freescale MC13192, Zigbee compliant transciever, 2.405 - 2.480 Mhz, 5mhz channels, 2Mchip/sec over the air data rate, 200kbps practical rate.
    • 30ma TX @ 0dbm, 37ma RX.
    • 5mm x 5mm package
    • full Zigbee PHY support.
    • similar device from ember - 35ma TX / 35ma RX, 2.1-3.5V, 7x7mm, includes microprocessor.
    • MC13201 - also targeted at 802.15.4 compliance.
      • good to 250kbps, 5.0 mhz channels, DSSS, 2.0 - 3.4V,
      • requires external transmit/receive switch
      • 30ma TX / 37ma RX
      • 5 x 5mm package
  • TI / Chipcon CC2430 - 27ma TX / 27ma RX, with microcontroller, 7x7mm package, quick power-up.
  • Cypress wireless USB
    • 2.4ghz, 1mbps, DSSS encoding (like zigbee) -- DSSS reduces the data rate, of course; the data rate over the air is always 1mbps.
      • the favored rate is 8x DSSS, where each symbol encodes one byte (8 bits) but requires 32 or 64 chips for transmission (resulting in a net rate of 250kbsp or 125 kbps, like zigbee. )
    • 21ma normal operating current @-5dbm, 1.8V to 3.6V
    • 6mm x 6mm 40-lead package
    • document above is a generally good overview of the complexities of this type of design.
  • SC1211
    • 110kbps, UHF transceiver (~863 - 960mhz). very low power consumption in RX: 3ma / TX: 25ma @ +10dbm out
    • out November 2007.
    • competitor to below -- much lower RX power (and lower rate).
    • includes 64byte fifo, data whitening, etc.
  • advance info from Maxim
    • very low power TX: 4ma @ -10dbm, RX: 150ua Hey.. that's lower power than most PLL, VCO, & PA put together!
    • OOK, ~116kbps.
  • Nordic nRF24L01 - THE BEST (so far!)
    • datasheet.
    • 12ma TX/RX, 2.1 3.6V
    • 2mbps over-the-air rate, GFSK, 10m range (better with a bigger antenna)
    • 4x4mm 20 pin package.
    • 125 selectable channels.
    • allows clock sharing with a microprocessor, e.g. the blackfin, provided it exceeds the 60ppm specification.
    • 22ua power consumption in standby-1 mode (transition from this state to RX/TX in 130us), 320ua power consumption in standby-2 mode (ready to transition to TX)
      • it is important to never keep the nRF24L01 in TX mode for more than 4ms at a time (!)
    • i think the designer's confidence showes through the specification sheet: they are proud of the chip & it's specifications, which is a very good thing. it means they put some pride and passion into it.
    • development board - need to buy! They also [distribute the IC http://www.sparkfun.com/commerce/product_info.php?products_id=690], yay!

hide / / print
ref: notes-0 tags: DSP filter quantize lowpass elliptic matlab date: 09-02-2007 15:20 gmt revision:0 [head]

So, in order to measure how quantizing filter coeficients affects filter response, I quantized the coefficients of a 8th order bandpass filter designed with:

[B1, A1] = ellip(4,0.8,70, [600/31.25e3 6/31.25]);
here is a function that quantizes & un-quantizes the filter coeff, then compares the frequency responses:
function [Bq, Aq, Bcoef, Acoef] = filter_quantize(B, A) 
% quantize filter coeficients & un-quantize so as to get some idea to
% the *actual* fixed-point filter performance. 
% assume that everything in broken into biquads. 
base = 10; 
Aroots = roots(A); 
Broots = roots(B); 
order = length(Aroots)/2; % the number of biquads.
scale = B(1).^(1/order); % distribute the gain across the biquads. 
for o = 0:order-1
	Acoef_biquad(o+1, :) = poly(Aroots(o*2+1 : o*2+2));
	Bcoef_biquad(o+1, :) = poly(Broots(o*2+1 : o*2+2))*scale; 
Bcoef = round(Bcoef_biquad .* 2^base); 
Acoef = round(Acoef_biquad .* 2^base); 
% now, reverse the process. 
Bq2 = Bcoef ./ 2^base; 
Aq2 = Acoef ./ 2^base; 
for o = 0:order-1
	Arootsq(o*2+1: o*2+2) = roots(Aq2(o+1, :)); 
	Brootsq(o*2+1: o*2+2) = roots(Bq2(o+1, :)); 
Aq = poly(Arootsq); 
Bq = poly(Brootsq).*B(1); 
[H, W] = freqz(B, A); 
[Hq, Wq] = freqz(Bq, Aq); 
plot(W, db(abs(H)), 'b')
hold on
plot(W, db(abs(Hq)), 'r')
axis([0 pi -100 0])
The result: high frequency is not much affected

but low frequency is strongly affected.

But this is at a quatization to 10 bits - quantization to 15 bits lead to reasonably good performance. I'm not sure if this conclusively indicates / counterindicates downsampling prior to highpassing for my application, but i would say that it does, as if you downsample by 2 the highpass cutoff frequency will be 2x larger hence the filter will be less senitive to quantization errors which affect low frequencies.

hide / / print
ref: notes-0 tags: low-power microprocessor design techniques ieee DSP date: 05-29-2007 03:30 gmt revision:2 [1] [0] [head]


also see IBM's eLite DSP project.