Saving a complex data into a file

Hi Community,

I’m trying to save complex data from a block into a file, in order to
process the information later on. My code is very simple, as shown
bellow:

//Definition of values
std::vector complex_values(4);

complex_values[0]=(-0.707,-0.707);
complex_values[1]=(0.707,-0.707);
complex_values[2]=(-0.707,0.707);
omplex_values[3]=(0.707,0.707);

myfile.open ("/home/usrpvm/Desktop/examples/binary_complex");

myfile <<(char*)&complex_values[0];
myfile <<(char*)&complex_values[1];
myfile <<(char*)&complex_values[2];
myfile <<(char*)&complex_values[3];

When I finish, I check my values with hexdump command:

hexdump binary_complex -v -e ’ 2/4 “%10f “’ -e '”\n”’
-0.707000 -0.707000
0.707000 0.707000
-0.707000 0.707000
0.707000 0.707000
0.707000 0.707000

As you can see, there are more values that I’m saving and there are some
values missing. I think I am doing something wrong when I save the
values.

Anyone can point me to the right direction?

Thanks for your time,

Jose.

On 10/30/2012 03:24 AM, Jose T. Diaz wrote:

complex_values[2]=(-0.707,0.707);
omplex_values[3]=(0.707,0.707);

myfile.open (“/home/usrpvm/Desktop/examples/binary_complex”);

myfile <<(char*)&complex_values[0];
myfile <<(char*)&complex_values[1];
myfile <<(char*)&complex_values[2];
myfile <<(char*)&complex_values[3];

You are casting it into a char * that isnt null terminated.

As you can see, there are more values that I’m saving and there are some
values missing. I think I am doing something wrong when I save the values.

Anyone can point me to the right direction?

Thanks for your time,

Jose.

take a look at uhd/host/examples/rx_samples_to_file.cpp
http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/host/examples/rx_samples_to_file.cpp#L91

-josh

Hi Josh,

Thanks for your answer, I followed the provided example and it’s working
correctly.

Cheers,

Sent from my iPhone