Tuesday, March 20, 2007

Poster Fare

Poster Fair

The poster fare was yesterday, and it seemed to go quite well.


Points that we received, and that we tried to incorporate into our ongoing presentations were:

  • Emphasis that the program can be used in RealTime, and to analyze recorded data.
  • Point out the demonstration more.
  • Elaborate on why we chose the Welsh PSD estimate combined with a Hamming window, over all the other options. Speak about the variability and resolution balance.
  • Drop in hints of where the future of the projects lies, instead of waiting until the end.
  • Stress that in the future, the entire program can be run in Realtime.
  • Point out which current limitations of the program are fundamentally a result of performance issue (computers aren't good enough) or development time issues.

Overall I believe we presented our project quite well. Well enough in fact that we occasionally overheard comments such as "I want to do this project next year", etc.

The next step is to complete the final report.

Monday, March 12, 2007

Progress

I FINALLY got the scroll bar to work. There are still tones of small details to work out though. I've removed some functionality that either I have no idea what it's suppose to do, or we just won't be able to do it.

If all goes well, we should be able to demo it tomorrow. I have it recording from the sound card and displaying a spectrogram of it.

Monday, January 15, 2007

2007-01-15 Headmaps

I think I figured out how I intend to do the headmaps.

Gonna make it a image, with a gausian peak at our points..

Something like:
x=[1:20]; y=[1:20]; x=[1:.3:50]; y=[1:.3:50]; [X,Y]=meshgrid(x,y);
f=inline('(1/(2*pi*s)).*exp(-(((x-a).^2+(y-b).^2)/(2*s^2)))','x','y', 's', 'a', 'b');

% Test points
A = f(X,Y, 3, 25, 25);
A = A + f(X,Y, 3, 10, 25);
A = A + f(X,Y, 3, 25, 45);
A = A + f(X,Y, 3, 15, 45);
A = A + f(X,Y, 3, 19, 35);

A = 1000*A;

ibg = image(A);
colormap jet

% lets put a transparent circle on this
t = 0:.1:2*pi;
[imheight,imwidth] = size(A(:,:,1));
x = round((1/2)*imwidth*cos(t)+round(imwidth/2));
y = round((1/2)*imheight*sin(t)+round(imheight/2));
imCircleAlphaData = roipoly(A,x,y);
set(ibg,'AlphaData',double(imCircleAlphaData));


End result:


Thursday, January 4, 2007

2007-01-03

Dean and I met today to discuss the current progress on the project.

EarshotMain currently functions very well. The only problem with the current implementation resides in the displaying of real-time signal acquisition. At this moment in time all real-time data collected causes a new figure to be produced as opposed to creating the plot in the existing plot window inside the acutal GUI. Dean is looking into this.

The PSD screen is functional (will be redesigned by myself to conform to Earshotmain); however, Dean is looking into ensuring the PSD is being correctly generated and determing how changing certain parameters affects the plot.

I will continue my research and work into the spectrogram and its implementation in creating the Time VS Frequency plot. The plan is to take two closely related signals that differ only in one spot, subtract them from one another and plot the result on the spectrogram. (Baseline - Recorded)

Weekly meetings have now been scheduled to happen every Monday afternoon at 3:30pm

Monday, January 1, 2007

Standarts

Hey, I believe we need to standardize our global variable names. I propose the following.
  • Entire data set: data:matrix - Every column is a data set
  • Time: time:vector
  • Sampling frequency: ts:int
  • Window size for our Welsh PSD estimate: welch_winlength:int
  • Percentage of window overlab for our Welsh PSD estimate: welch_overlap_percentage:int
  • Which channels are on: channels:bool[16] (say channel 2 and 3 are on.. channels = [0 1 1 0 0 ... 0])
  • The default start range for any frequency: global_psd_freq_start:int = 0
  • The default start range for any frequency: global_psd_freq_end:int = 26
  • The start of the delta band: delta_band_start:int = 0
  • The end of the delta band: delta_band_end:int = 4
  • The start of the theta band: theta_band_start:int = 4
  • The end of the theta band: theta_band_end:int = 8
  • The start of the alpha band: alpha_band_start:int = 8
  • The end of the alpha band: alpha_band_end:int = 12
  • The start of the beta band: beta_band_start:int = 12
  • The end of the beta band: beta_band_end:int = 26
  • X,Y positions of the channels: channel_cart_positions:matrixchannels X 2
Please follow up as I am certain I am missing some. What about the start and end times, are they different for each window?

For time, I'm not sure how you guys are dealing with it, but I'm just going to choose a sampling frequency and length of time to suit the data length I have. But when we actually run this, it should just work out ( guessing: time = [0:1/ts:(length(data)/ts)-(1/ts)];)