Skip to main content
1-Visitor
August 27, 2010
Question

Automating Single Carrier Interference Calculations

  • August 27, 2010
  • 3 replies
  • 13864 views

I have frequency domain data in a single row array A of length 100,000. I want to add interference at the first frequency, calculate and store results, then increment the position of the interference, calculate and store results, and then repeat this for all 100,000 frequencies. How do I set this up in Mathcad 15?

The complexity of the calculations would be too difficult for a program, and trying to create a diagonal matrix with 100,000 rows and columns is a bit too much for Mathcad 15. Get "out of memory" errors trying to do that.

See attached Mathcad 15 file.

Bill

3 replies

1-Visitor
August 27, 2010

Bill Dumke wrote:

I have frequency domain data in a single row array A of length 100,000. I want to add interference at the first frequency, calculate and store results, then increment the position of the interference, calculate and store results, and then repeat this for all 100,000 frequencies. How do I set this up in Mathcad 15?

The complexity of the calculations would be too difficult for a program, and trying to create a diagonal matrix with 100,000 rows and columns is a bit too much for Mathcad 15. Get "out of memory" errors trying to do that.

See attached Mathcad 15 file.

Bill

Bill,

Will the value of "A" change for each index?

Mike

BillDumke1-VisitorAuthor
1-Visitor
August 27, 2010

No, the value of A will be the same each time.

Bill

19-Tanzanite
August 27, 2010

You want to write out 100,000 files? Are you sure? That will take a horrendously long time. Then what do you intend to do with them afterwards, because reading them back in to any piece of software will take a horrendously long time too?

BillDumke1-VisitorAuthor
1-Visitor
August 27, 2010

No I would just append the error results (just a few variables to a file. I think Mathcad 15 could handle a few entries augmented into a row for 100,000 listings, although I am sure it would take a very long time to do it.

Bill

1-Visitor
August 27, 2010

Bill,

Is the attached image of any help? Each column of data can be selected at will.

Mike

1-Visitor
August 27, 2010

You have a fair description but incoherent. Incoherent about your "Diagonal matrix". If you have a vector of values and want to follow how it would respond to a travelling impurity [ a tracer], how does that dictate a diagonal matrix in your mind. It looks possible to use the rotate function to either move the vector around a tracer in fixed position or vice versa, circulate the tracer in the vector and then follow the tracer and collect the ccfft. From each experiment, augment the array so you don't have to bother for a 100,000 square matrix.

BillDumke1-VisitorAuthor
1-Visitor
August 28, 2010

Jean,

I think you have a very good point. I was just thinking of using each row of a diagonal matrix, but you are correct I don't need all of the rows at once only one, and it appears impossible for Mathcad 15 to handle that size of a matrix anyway.

I didn't know there was a "rotate" function. I can't find it in the Mathcad 15 Help menu. I did do something like this a while back using a "shift(array, index)" function I created from something I cobbled from the Internet. It worked, but I had to do it manually. I only had to do 45 shifts so it was reasonable to do manually.

You are right there is a "rotate function". I just typed it in, but it does not seem to work right, just guessing at how to use it. Can you give me some info on it?

Bill

1-Visitor
August 28, 2010

Bill,

Here is, both ways ! slide the data set or slide the marker.

You can have the two ways simultaneously.

I'm Mathcad 11 [for any of your transmission].

It looks programmable, try it. At least it will

help about a reasonable size it can calculate.

Eventually, the marker could have any shape

The function "replace(,,,,)" would do too.

Jean