Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correlation simulator #53

Open
hughbg opened this issue Dec 19, 2016 · 5 comments
Open

Correlation simulator #53

hughbg opened this issue Dec 19, 2016 · 5 comments
Labels

Comments

@hughbg
Copy link
Collaborator

hughbg commented Dec 19, 2016

For the purposes of kurtosis implementation and testing (at the moment) I am implementing a correlator simulator which has the following form:

corr

Artificial RFI can be inserted into the pipeline to see how that effects the kurtosis. Cross-correlation of data streams can be added later.

@ledatelescope
Copy link
Owner

ledatelescope commented Dec 19, 2016 via email

@hughbg
Copy link
Collaborator Author

hughbg commented Dec 19, 2016

An updated graph:

corr2

I did this by hand. It gets painful, so something to generate the graph is needed, but I don't know if Bifrost can do it and in any case it won't do colors, sub text etc.

This is the Nita equation:

eqn

SK is the Kurtosis estimator. S1 is the sum of the integrated power values and S2 is the sum of the squares of the integrated power values (produced by the Integrate block). There are various normalizations that get made to the FFT and power values such as dividing the FFT values by the length of the FFT window.

@hughbg
Copy link
Collaborator Author

hughbg commented Dec 24, 2016

I've added the file correlator_simulator.py to the branch correlation_simulator. The file is still being developed but it runs. It is written using low-level operations and not the high-level blocks like MultiTransformBlock, SourceBlock etc., which will be implemented in the next version.

@ledatelescope
Copy link
Owner

ledatelescope commented Dec 24, 2016 via email

@hughbg
Copy link
Collaborator Author

hughbg commented Jan 3, 2017

When sim. cross-correlation (sometime after the current system is proven out) we
could feed in a mix of 100% correlated broadband noise in two inputs (e.g.,
random nos. with the same seed) and at a much higher amplitude uncorrelated
broadband noise as random nos. w/ different seeds. Anything wrong w/ that
reasoning?

We can try it but I'm unsure about how cross-correlation changes things in NITA theory. I need to look at more NITA papers. At the moment I am using the power in a single channel out of an FFT and calling that auto-correlation, in this simulator.

I've added a new version of the pipeline which is substantially modified. A lot of the blocks in the pipeline do a reduction operation because they accumulate data until they have a certain amount buffered, and then process it and spit out a result - e.g. the integration block reduces to a sum. This pattern can be turned into a single block which is parameterized by the operation to be performed.

I also want to have the buffer sizes independently determined. The input chunk (span), the chunk needed to perform an operation, and the output chunk (span), can all be different sizes, for tuning purposes. That means blocks do internal buffering and the accumulator block can handle that as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants