Skip to main content

Topics

This section allows you to view all Topics made by this member. Note that you can only see Topics made in areas you currently have access to.

Topics - Milarepa

1
Project development, ideas, and suggestions / Decorrelation: real-time ICA on an FPGA
Hi guys

I'm working with Brain Computer Interfaces and there is one thing that I really wish I had:
real time Independent Component Analysis  (rt-ICA) implemented in my measurement hardware.

ICA (and it's little sister, principal component analysis, PCA) is a method of decorrelating data received over a number of channels. If you record several signals that are spatially mixed over a number of channels equal or greater then the number of signals, ICA can separate these signals into components, each of those containing (at least in the best-case scenario) a clean signal, minimally correlating with the other components. Now, while my field isn't of that much interest to most of you, there are other, more accessible applications:

Imagine you record audio in a room. You have, say 3 people talking obsessively in parallel, several sources of noise, and more then 3 microphones recording to one audio track each. You save all audio tracks, and then you do an ICA, regarding each audio track as a channel. The ICA will give you as many components as you have audio tracks. The first three components will contain the audio of three speakers, loud, clear and mostly free of noise and interference from the other speakers. The other components will contain the noise, you can disregard them. (Although, one man's noise is the other man's signal, I know...) It's like magic! I have used it successfully to separate the voice of lecturers from noisy vents and background talking, using only stereo recordings of my Smartpen.

The disadvantage is that it takes quite some processing time...
However, I've looked it up and it seems as if real time versions of this have been implemented on FPGAs since 2003 (!!). Just google 'ICA FPGA' and you will find tons of examples.

Anyone else interested in such awesomeness? Ideas about feasibility of a little shield capable of blind source separation from several channels?

Best
Milarepa
2
Project development, ideas, and suggestions / RF mesh shared variable space
Hi guys

I have what I think is a great idea. At least I'd like to have one of these:
Wouldn't it be great if we had a little board featuring a little RF transmitter, a cheap uC and some kind of storage so we could store variables with a sort of 'hyperglobal' scope so they could be accessed from all the devices within a mesh network? All RF devices I could find which would do such a thing are way overkill for your standard home control or weather station stuff since we really mostly need a few bytes of data and timing is not really an issue.
With an appropriate library you could then access variable with simple commands in you script, hiding all the complicated stuff:
Code: [Select]
ReadVar(network, variable, securityrelatedaccesscode)

Several smart people have already worked with mesh networks:
Here an arduino mailbox checker with the
**URL*** (sorry, can't post URL, just google arduino mesh networks)
using the (expensive) synapse-wireless dot c0m/

or on the playground, there's quite some talk about:
hoperf dot c0m
which seem also a bit more expensive.

Can't there be a 10-15 bucks or lower solution to this problem? (Except just using a 4 bucks RF module and coding the communication myself?)
Or is there already a solution out there which solves my issue with RF communication that I have missed?

What do you think?

All the best
Milarepa

( ! ) Fatal error: Uncaught exception 'Elk_Exception' with message 'Please try again. If you come back to this error screen, report the error to an administrator.' in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
( ! ) Elk_Exception: Please try again. If you come back to this error screen, report the error to an administrator. in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
Call Stack
#TimeMemoryFunctionLocation
10.01162279760session_write_close ( )...(null):0
20.01202411352ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.01202412128Database_MySQL->query( ).../DatabaseHandler.php:119
40.05712550864Database_MySQL->error( ).../Db-mysql.class.php:273