我设计了一个滤波器,并使用Matlab中的SPTool将其应用于随机噪声信号。我的噪音信号为x = (1/sqrt(2))*(randn(1024,1)+j*randn(1024,1))
一旦我将滤波器应用于此噪声信号,如何将该滤波后的信号用作GNU Radio Companion中的文件源(我将连接到QT GUI Frequency Sink)?我尝试使用SPTool导出信号,但我不确定我可以用于GNU Radio的文件扩展名。提前谢谢。
答案 0 :(得分:2)
使用fwrite
和正确的精度参数,为您提供浮动32个二进制文件。
或者只使用完全相同的八度/ matlab scripts in GNU Radio:写入原始二进制数据。有关详细信息,请参阅文件格式的GNU Radio FAQ条目。 (在https://wiki.gnuradio.org上)
答案 1 :(得分:0)
如果您具有.mat文件,则另一种选择是在Vector字段中使用Vector Source块:
loadmat('filename')['varname'].flatten()
要使其正常工作,您需要:
import numpy
from scipy.io import loadmat
请注意,这会将整个文件加载到内存中(但如果有问题,您可以指定要从文件加载哪些变量)。另外,如果数据存储为float64(Matlab中的规范),那么我认为可能会有一些舍入/截断,因为GR Vector Source期望float32(对SWIG的处理方式了解不足)。