项目简介
本项目是一个基于C++语言的命令行工具,用于软件定义无线电(SDR)中的数字信号处理(DSP)任务。它可以构建简单的信号处理流程图并直接从命令行执行。核心功能由libcsdr库提供,该库借助gcc的自动向量化功能,还在ARM NEON上进行了内联汇编优化,以利用现代CPU的SIMD指令集加速处理。
项目的主要特性和功能
- 信号处理功能:支持AM、FM、SSB、CW和BPSK31的解调器,还能进行瀑布图显示。
- 模块化设计:通过libcsdr库提供DSP功能,支持多种数据类型转换和信号处理操作。
- 性能优化:利用gcc自动向量化和ARM NEON内联汇编优化,提升处理速度。
- 广泛应用:已在OpenWebRX、qtcsdr和rpitx等多个项目中使用。
- 灵活配置:可通过命令行参数灵活配置信号处理流程。
安装使用步骤
安装
- 复制仓库:
bash cd csdr
- 编译项目:
bash mkdir build cd build cmake .. make sudo make install sudo ldconfig
- 安装依赖:
bash sudo apt-get install libfftw3-dev libsamplerate-dev
使用示例
解调WFM信号
bash
rtl_sdr -s 240000 -f 89500000 -g 20 - | csdr convert_u8_f | csdr fmdemod_quadri_cf | csdr fractional_decimator_ff 5 | csdr deemphasis_wfm_ff 48000 50e-6 | csdr convert_f_s16 | mplayer -cache 1024 -quiet -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
解调NFM信号
bash
rtl_sdr -s 2400000 -f 145000000 -g 20 - | csdr convert_u8_f | csdr shift_addition_cc `python -c "print float(145000000-145350000)/2400000"` | csdr fir_decimate_cc 50 0.005 HAMMING | csdr fmdemod_quadri_cf | csdr limit_ff | csdr deemphasis_nfm_ff 48000 | csdr fastagc_ff | csdr convert_f_s16 | mplayer -cache 1024 -quiet -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
解调AM信号
bash
rtl_sdr -s 2400000 -f 145000000 -g 20 - | csdr convert_u8_f | csdr shift_addition_cc `python -c "print float(145000000-144400000)/2400000"` | csdr fir_decimate_cc 50 0.005 HAMMING | csdr amdemod_cf | csdr fastdcblock_ff | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -cache 1024 -quiet -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
更多示例
更多使用示例和详细参数说明,请参考项目文档和源码中的注释。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】