首页 \ 问答 \ 记录样本的GNU无线电文件格式(GNU Radio File Format for the recorded samples)

记录样本的GNU无线电文件格式(GNU Radio File Format for the recorded samples)

你知道GNU Radio(GNU Radio Companion中的File Sink)将样本存储在二进制文件中的格式吗?

我需要在Matlab中读取这些示例,但问题是文件太大而无法在Matlab中读取。

我用C ++编写程序来读取这个二进制文件。


Do you know the format in which GNU Radio ( File Sink in GNU Radio Companion) stores the samples in the Binary File?

I need to read these samples in Matlab, but the problem is the file is too big to be read in Matlab.

I am writing the program in C++ to read this binary file.


原文:https://stackoverflow.com/questions/5041852
更新时间:2021-10-25 22:10

最满意答案

文件接收器只是数据流的转储。 如果数据流内容是简单字节,那么文件的内容很简单。 如果数据流包含复数,则该文件将包含复数列表,其中每个复数由两个浮点数给出,每个浮点数(通常)为4个字节。

有关gnuradio文件读写块的实现,请参阅文件gnuradio / gnuradio-core / src / lib / io / gr_file_sink.cc和gr_file_source.cc。

您还可以使用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()

The file sink is just a dump of the data stream. If the data stream content was simple bytes then the content of the file is straightforward. If the data stream contained complex numbers then the file will contain a list of complex numbers where each complex number is given by two floats and each float by (usually) 4 bytes.

See the files gnuradio/gnuradio-core/src/lib/io/gr_file_sink.cc and gr_file_source.cc for the implementations of the gnuradio file reading and writing blocks.

You could also use python and gnuradio to convert the files into some other format.

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()

相关问答

更多
  • 几个小时以来,我一直在与这个完全相同的问题摔跤,而我的问题主要是当以16位记录时,您必须非常小心您写入输出的内容。 WAV文件需要Little Endian格式的数据,但使用writeShort将它作为Big Endian格式输出到输出中。 当使用其他函数时,我也得到了有趣的结果,所以我返回按照正确的顺序写入字节并且工作正常。 我在调试时广泛使用了十六进制编辑器。 我可以推荐你也这样做。 此外,上面的答案中的头文件工作,我用它来检查与我自己的代码,这头是相当简单。 I've been wrestling w ...
  • 使用waveIn ,您可能会记录16位采样,因此它们是short或Int16值在-32768到32767的范围内 处理浮点( float或Single )采样时,它们被归一化到-1.0到1.0范围内。 With waveIn, you're likely recording 16 bit samples, so they are short or Int16 values in the range -32768 to 32767 When you deal with floating point (floa ...
  • 由于我们的目标是改善我们的小型社区无线电的音质,正确的方法是使用音频处理器软件,正如@KevinReid所说。 对于记录,一种可能的解决方案是将此模式与Jack一起使用: MIC和音乐播放器---->调音台---->带音频处理器的PC ---> FM Emiter 带有音频处理器的PC是基于GNU / Linux的PC,其中Jack作为声音服务器,Calf Jack Hub(calf.sourceforge.net)作为音频处理器。 脚步: 安装千斤顶,qjackctl和小牛。 打开qjackctl并启动插 ...
  • 根据设备的采样率,可能无法将样本写入文件而没有不连续性。 而是写入磁盘,您可以在ramdisk编写示例。 Ramdisk是文件存储的抽象,使用RAM内存作为存储介质。 ramdisk的巨大优势是非常快速的读/写数据传输。 但是,文件大小受到主机具有的RAM内存量的限制。 这是一篇很好的文章,可以帮助您在Linux下创建一个ramdisk。 我相信你也很容易找到适合Windows的指南。 Depending the sampling rate of the device, writing samples to ...
  • 我看到你没有重新填充id="temp_mid"字段,但在这里检查它if(temp=="") 。 也许你还需要重新填充它? I see that you doesn't repopulate the id="temp_mid" field but check it here if(temp=="") . Maybe you need to repopulate it too?
  • 在linux上,gas的输出已经是ELF了,它不太可能有一个正在构建旧的a.out格式的版本,或者您正在使用交叉编译器来构建MachO或PE。 On linux the output from gas is ELF already, it is unlikely you have a version which is building the old a.out format, or that you are using a cross compiler to say build to MachO or P ...
  • 事实证明我没有正确格式化txt文件; 它的格式应如下(假设每个图像只包含1个对象): path num_of_objects xy width height It turns out that I had improperly formatted the txt file; it should be formatted as follows (assume that each image only contains 1 object): path num_of_objects x y width heigh ...
  • 我从记录程序中删除了pa_simple_drain() (这是我在记录程序中使用此功能的错误),现在它可以工作了。 但是在printf(“%x”,buf)中,它仍然会一次又一次地返回相同的十六进制值。 但程序运作良好。 有人可以解除为什么它打印相同的价值? I deleted pa_simple_drain() (it was my mistake that i used this function in recording program)function from record program and ...
  • 文件接收器只是数据流的转储。 如果数据流内容是简单字节,那么文件的内容很简单。 如果数据流包含复数,则该文件将包含复数列表,其中每个复数由两个浮点数给出,每个浮点数(通常)为4个字节。 有关gnuradio文件读写块的实现,请参阅文件gnuradio / gnuradio-core / src / lib / io / gr_file_sink.cc和gr_file_source.cc。 您还可以使用python和gnuradio将文件转换为其他格式。 from gnuradio import gr # A ...
  • 您可以在运行时使用OnModelCreating和modelBuilder.Entity.Ignore(x => x.Property)以编程方式忽略失败的属性。 以下演示对EFContext更改: protected override void OnModelCreating(DbModelBuilder modelBuilder) { IgnorePostSharpProperties(modelBuilder); IgnorePostSharpPro ...

相关文章

更多

最新问答

更多
  • 如何从rails插件加载javascript文件(How to load javascript file from rails plugin)
  • 我正在研究有向图的DFS,如何到达没有任何边缘指向的节点?(I'm working on a DFS of a directed graph, How do I get to a node without any edges pointed at it?)
  • 无法在swift中展开可选项(can't unwrap optional in swift)
  • 如何从熊猫中提取列表?(How to extract a list from pandas?)
  • 计算不同列中2个值的出现次数(Count number of occurrences of 2 values in different columns)
  • Stack ExtJS 6 + Spring Boot(Stack ExtJS 6 + Spring Boot)
  • 如何安装ioreg?(How to install ioreg?)
  • Chrome Packaged app webview中的重音字符未显示(Accented characters in Chrome Packaged app webview not showing up)
  • C ++ recvfrom超时(C++ recvfrom timeout)
  • 如何使用实体框架(.edmx模型)和Razor视图为MVC4或MVC 5创建部分视图?(How can i create a Partial View for MVC4 or MVC 5 using Entity Framework (.edmx Model) with Razor Views?)
  • 子类QStyledItemDelegate忽略样式表(Subclassed QStyledItemDelegate ignores Stylesheet)
  • 有没有办法以编程方式配置ios应用程序的通知显示设置?(Is there a way to programmatically configure the notification display setting for an ios app?)
  • boost asio serial_port_service和serial_port有什么区别(What is the difference of boost asio serial_port_service and serial_port)
  • 如何通过解析nginx日志文件自动拒绝IP地址(How to deny ip address automatically by parsing nginx log file)
  • 如何在C#中为ASCII 127定义字符或字符串常量?(How might I define a character or string constant in C# for ASCII 127?)
  • 如何获得R中两个集合的差异?(How to get the differences of two set in R?)
  • 如何通过IMG-Activity找到定制路径(How to find the Customizing Path via IMG-Activity)
  • 可以用python窗口打开.py文件么
  • 指针的增量是否与整数的增量相同?(Does increment in pointer not same as that of integer? [closed])
  • 我无法删除使用Delphi7处于关系中的数据库的2个表中的所有数据(I can't delete all the data within 2 tables of a database which is in a relationship using Delphi7)
  • 使用反射向ArrayList添加未知类的对象(Add an object of unknown class to ArrayList with reflection)
  • 我想学JAVA 推荐下怎么 学
  • 什么是ASP.NET Identity的IUserSecurityStampStore 接口?(What is ASP.NET Identity's IUserSecurityStampStore interface?)
  • jquery如何获取多个同id的div,然后修改css属性左边间距left的值
  • jquery ui resizable:调整旋转对象的大小(jquery ui resizable: resizing the rotated objects)
  • 如何用sublime text编写微信小程序代码
  • Hibernate:在一个数据库表行中存储一个固定长度的数组(Hibernate: Storing an fixed length array in one database table row)
  • shared_ptr用于原始指针参数(shared_ptr for a raw pointer argument)
  • 将本地git分支与远程分支进行比较?(How to compare a local git branch with its remote branch?)
  • 如何在DOM中查找字符串并通过php或jQuery更改它们(how to find strings in DOM and change them by php or jQuery)