我设计了一个滤波器,并在MATLAB中使用SPTool将其应用于随机噪声信号。我的噪声信号是 x = (1/sqrt(2))*(randn(1024,1)+j*randn(1024,1))
一旦我将我的滤波器应用到这个噪声信号上,我怎样才能将过滤后的信号作为GNU Radio Companion的文件源(我将连接到QT GUI Frequency Sink)?我试着用SPTool导出信号,但我不确定我可以用GNU Radio的什么文件扩展名。先谢谢你。
使用... fwrite
得体 精密 参数,给你浮动32二进制。
或者直接使用octaveMatlab的 GNU Radio中的脚本 的文件格式,其作用正是:写入原始二进制数据。更多信息,请参见GNU Radio FAQ中关于文件格式的条目。(在 https:/wiki.gnuradio.org )
如果你有一个.mat文件,另一个选择是使用矢量源块放入矢量字段。
loadmat('filename')['varname'].flatten()
为了使这个方法有效,你需要:
import numpy
from scipy.io import loadmat
请注意,这将在内存中加载整个文件(但如果有问题,你可以指定从文件中加载哪些变量)。另外,如果数据被存储为float64(Matlab中的标准),那么我认为可能会有一些舍入truncation,因为GR Vector Source期望float32(对SWIG如何处理这个问题还不够了解)。