Stimulus / rate reconstruction with Wiener Kernels.

  • Thread starter Thread starter Beserra
  • Start date Start date
  • Tags Tags
    Rate
Click For Summary
SUMMARY

The discussion focuses on reconstructing firing rates using a Volterra expansion and Wiener Kernels in MATLAB. The user, Beserra, attempts to estimate the firing rate, rest(t), through the equation rest(t) = r_0 + ∫dτ D(τ)s(t-τ), where D(τ) is the Wiener Kernel. The user correctly applies Fourier transforms and cross-correlation but fails to achieve the expected firing rates, instead obtaining a version of the stimulus. The issue lies in the convolution step, where the relationship between the firing rates and the stimulus is not properly established.

PREREQUISITES
  • Understanding of Volterra expansions in neural modeling
  • Proficiency in MATLAB for signal processing
  • Knowledge of Fourier transforms and their applications
  • Familiarity with cross-correlation functions in time series analysis
NEXT STEPS
  • Review MATLAB's convolution functions and their parameters
  • Study the application of Wiener Kernels in neural firing rate estimation
  • Learn about the implications of Fourier transforms in signal reconstruction
  • Explore advanced topics in Volterra series for nonlinear system analysis
USEFUL FOR

Neuroscientists, computational biologists, and MATLAB users involved in modeling neural responses and firing rate reconstruction.

Beserra
Messages
2
Reaction score
0
Hello.

I am having some trouble trying to reconstruct my firing rates using a Volterra expansion.
Basically it is known that , if :
s(t) = the value of a given stimulus at time t
r(t) = the firing rate of a neuron at time t

then we assume that a possible estimate of the firing rate can be achieved by
rest(t) = r_0 + ∫dτ D(τ)s(t-τ) where D(τ) is the Wiener Kernel.

Then the condition for the best estimate rest(t) is achieved when
FD(ω)*FQss(ω) = FQrs(-ω) . Where FA denotes the Fourier transform of a function A.

While I understand all this mathematically I can not apply it using Matlab.
I have s as a vector of positions of a given stimulus and rg as a vector of
rates of a neuron .

Then I make
QSS = xcorr(S,S);
QrS = xcorr(rg,S);
FQSS = fft(QSS);
FQrS = fft(QrS);
G = FQrS(length(FQrS):-1:1); % G(ω) = FQrS(-ω) because xcorr seems to put the t = 0
%at the middle of the vector
FD = G./FQSS'
D = ifft(FD);

When I make 'rest' proportional to 'conv(D, S)' I obtain not my firing rates but rather
a very similar version of my own stimulus S.

What am I doing wrong? Thanks!

Beserra
 
Biology news on Phys.org
I forgot to specify that Qab denotes the cross correlation function of a and b
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
12K
  • · Replies 50 ·
2
Replies
50
Views
12K
  • · Replies 3 ·
Replies
3
Views
768
  • · Replies 48 ·
2
Replies
48
Views
13K