littlebot
Published on 2025-04-08 / 1 Visits
0

【源码】基于C++语言的软件定义无线电处理工具csdr

项目简介

本项目是一个基于C++语言的命令行工具,用于软件定义无线电(SDR)中的数字信号处理(DSP)任务。它可以构建简单的信号处理流程图并直接从命令行执行。核心功能由libcsdr库提供,该库借助gcc的自动向量化功能,还在ARM NEON上进行了内联汇编优化,以利用现代CPU的SIMD指令集加速处理。

项目的主要特性和功能

  1. 信号处理功能:支持AM、FM、SSB、CW和BPSK31的解调器,还能进行瀑布图显示。
  2. 模块化设计:通过libcsdr库提供DSP功能,支持多种数据类型转换和信号处理操作。
  3. 性能优化:利用gcc自动向量化和ARM NEON内联汇编优化,提升处理速度。
  4. 广泛应用:已在OpenWebRX、qtcsdr和rpitx等多个项目中使用。
  5. 灵活配置:可通过命令行参数灵活配置信号处理流程。

安装使用步骤

安装

  1. 复制仓库: bash cd csdr
  2. 编译项目: bash mkdir build cd build cmake .. make sudo make install sudo ldconfig
  3. 安装依赖: 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】