2011-02-18 44 views
2

您是否知道GNU Radio(GNU Radio Companion中的文件接收器)將樣本存儲在二進制文件中的格式?記錄樣本的GNU無線電文件格式

我需要在Matlab中讀取這些示例,但問題是該文件太大而無法在Matlab中讀取。

我正在用C++編寫程序來讀取這個二進制文件。

回答

3

文件接收器只是數據流的轉儲。如果數據流內容是簡單的字節,那麼文件的內容很簡單。如果數據流包含複數,那麼文件將包含一個複數的列表,其中每個複數由兩個浮點數給出,每個浮點數通常爲4個字節。

請參閱文件gnuradio/gnuradio-core/src/lib/io/gr_file_sink.cc和gr_file_source.cc以瞭解gnuradio文件讀寫塊的實現。

您也可以使用python和gnuradio將文件轉換爲其他格式。

from gnuradio import gr 
# Assuming the data stream was complex numbers. 
src = gr.file_source(gr.sizeof_gr_complex, "the_file_name") 
snk = gr.vector_sink_c() 
tb = gr.top_block() 
tb.connect(src, snk) 
tb.run() 
# The complex numbers are then accessible as a python list. 
data = snk.data()