DSP实现的FM调制解调算法在软件无线电中的应用

5星 · 超过95%的资源 需积分: 13 15 下载量 197 浏览量 更新于2024-11-04 收藏 82KB PDF 举报
"软件无线电中FM调制解调算法的DSP实现,通过 DSP 芯片 TMS320C32 实现 FM 调制解调功能模块,应用于超短波FM电台。" 在软件无线电领域,FM(Frequency Modulation,频率调制)调制解调算法的数字实现已经成为现代通信技术的重要组成部分。传统上,调制解调过程主要依赖于模拟电路,但随着数字信号处理(DSP)技术的进步,尤其是软件无线电技术的发展,这一过程可以通过软件算法高效地实现,从而提高了系统的灵活性和性能。 FM调制是通信系统中常见的调制方式,其基本原理是通过改变载波频率来编码信息。FM信号的数学模型是一个正弦波,其频率随输入信号的变化而变化。在数字实现中,需要将这个连续的数学模型转化为离散形式,这通常涉及到采样和数值积分。 FM调制的数字实现通常包括以下步骤: 1. **采样**:根据奈奎斯特定理,对模拟信号进行采样,将其转换为离散序列。采样间隔时间 Ts 决定了系统的采样率。 2. **数值积分**:由于 FM 信号涉及积分运算,需要使用数值积分方法来近似连续的积分。复化求积法是一种常见方法,它将积分区间划分为多个子区间,并对每个子区间应用梯形法则。 3. **离散化表达**:将 FM 信号的连续数学表达式转化为适合 DSP 处理的离散形式。例如,使用复化梯形公式可以得到 FM 信号的离散表达式,其中包含了输入信号 x(nTs) 和 x[(i-1)Ts] 的加权平均。 4. **调制与解调**:在调制过程中,输入信号 x(nTs) 会影响载波的频率,而在解调时,会使用鉴频器或锁相环等方法从接收到的 FM 信号中恢复原始信息。 具体到本文中,作者使用了 DSP 芯片 TMS320C32 来实现 FM 调制解调算法。TMS320C32 是德州仪器(Texas Instruments)生产的一种高性能 DSP,适合于实时信号处理任务。通过编写相应的源代码,可以在该芯片上构建 FM 功能模块,用于超短波 FM 电台的信号处理。 总结来说,软件无线电中的 FM 调制解调算法的 DSP 实现是一个将模拟信号处理转换为数字计算的过程,它利用了数字信号处理的优势,如灵活性、可编程性和高效率。通过 DSP 芯片,如 TMS320C32,可以实现高效且精确的 FM 信号处理,这对于现代通信系统,特别是超短波通信,具有重要的实际意义。
2021-04-22 上传
前言: 先来说说DSP吧,DSP就是用数值计算的方式对信号进行加工的理论和技术,它的英文原名叫digital signal processor,简称DSP,即数字信号处理器。国内做DSP收音机比较早的是凯隆,后来两德也跟进了,包括神机DE1103的新版本也采用了DSP技术。 DSP收音机方案介绍: 本次选用的是的美国Silicon Labs公司推出的高集成度AM/FM收音机芯片。 DSP原理图截图: 它的功能十分丰富,包括自动搜台、自动校准、数字调谐、自适应噪声抑制能力等。此制作为方便用的是某宝的小模块,集成了晶振和其它外围元件,有10个口引出来方便业余焊接。 控制采用单片机STC12LE5A60S2。此单片机的低压版本,可以在较低的电压下工作,方便使用一节锂电池供电。显示用的的LCD5110,此LCD能显示丰富的信息,包换信号强度,信噪比,音量,频率,电池电量等。 改变频率和音量都用一个飞梭来控制。用飞梭自带的开关来切换是调节音量还是频率,最大化地简化系统。 电路框图如图所示: DSP收音机电路工作原理分析: DSP收音机电路电路运用单片机对DSP芯片发出指令,对DSP内部寄存器进行读写(采用IIC总线方式),完成了接收模式、频率、音量等设置,再从中读出接收的状态,包括信号强度,接收信噪比等,然后将这些信息显示在LCD上面,再利用自身的AD对电池电压进行检测,计算出电池电量一同显示在LCD上面。 运用了飞梭来输入信号,默认状态飞梭是调节频率的,频率步进FM为0.1MHz,AM为9KHz。按一下飞梭进入音量调节模式,旋转飞梭即能改变音量。再按一下或者不动一定时间,会转换回频率调节模式。进入音量调节模式时,表示音量大小的数字会闪烁提示使用者此刻是音量调节模式。 电路设计了两个按键开关,一个是FM/AM模式切换的,一个是AM带宽切换的。DSP芯片处理完的信号是音频信号,利用X8003音频功率放大IC放大即可推动喇叭发出声音。 此收音机供电采用一节18650电池进行供电,充电采用4056E模块,如图6所示,充电状态红灯亮,充满后绿灯亮,如图7、图8所示。全机静态电流为40mA,比模拟方案的稍高一点,与单片机未做省电处理有关,选用低功耗的单片机静态电流应该能降到更低的水平。 DSP收音机电路截图: 视频演示: 该DSP收音机电路接收效果: 此收音机FM灵敏度很高,一根30cm的拉杆天线就能将所有强台清晰接收,比9700DX接近1M长的拉杆天线相当不相上下,对9700DX无能为力的弱电,也能清楚接收,信噪比3db.选择性上,因本地电台不多,没有相邻的电台,无法测试,但调偏0.1MHz信号强度和信噪比立马下降许多,还能听到一丝电台的声音,调偏0.2MHz就无法听到了。所以说FM是完胜。AM效果就很一般了,只能收到本地强台,其它的台都淹没在噪声中,不知是算法的原因还是些芯片的特点就是这样。所以AM是9700DX完胜。 DSP收音机实物效果图: 总结: 就接收性能而言,FM接收DSP有先天的优势,模拟的要做到DSP的指标恐怕需要的成本是相当高的,AM而言,传统的模拟方式的对业余的爱好者或许是个比较理想的选择。
2021-04-21 上传
可能感兴趣的项目设计:基于51单片机的FM收音机制作原理图,源代码 (链接:https://www.cndzz.com/diagram/4234_4235/197369.html) Si4745概述: Si4745芯片是Silicon Labs公司面向车载收音机市场推出的一款DSP(Digital Signal Processor)收音芯片。极小的4*4 mm 24脚QFN封装,由于使用了先进的CMOS技术,就这么一个小小的芯片可以实现完整的全波段收音功能。为应对车内复杂的电磁环境,抗干扰能力较强。 芯片支持以下频率范围:FM波段:64-108MHZ;AM波段:520-1710KHZ;LW波段:153-288KHZ;SW波段:2.3-30MHZ。还支持RDS接收。可以直接通过总线输出信号质量指示、信噪比、频率偏移等数值。 工作电压:3.0-3.6V;典型工作电流: FM波段:26ma; AM波段:19ma; 待机模式:6ua。 FM接收灵敏度: 2uV; THD:0.1% Si474X系列的管脚和方框图: Si4745通讯管脚由SDIO、SCLK、SEN、RST构成。在RST的上升沿对GPO1和GPO2的电平进行采样确定工作于哪种模式。 有三种控制总线方式可以选择: 2线模式(兼容I2C) 3线模式 SPI模式 因为GPO1内部集成上拉电阻,GPO2/INT集成下拉电阻。所以芯片默认工作于2-wire(I2C)模式。在3-wire和SPI模式下,总线由SDIO、SCLK和SEN组成。而I2C模式只使用SDIO和SCLK进行通讯,SEN的电平高低决定了I2C的操作地址。其对应关系如下: SEN电平 写地址 读地址 SEN=0 0x22 0x23 SEN=1 0xc6 0xc7 以前玩过一些I2C总线的芯片,SPI和3线没有接触过,决定使用I2C方式来驱动。测量后发现,楼主手里的模块SEN接地,所以I2C的写入地址为0x22,读取地址是0x23。 I2C通讯协议: 起始信号(START):在SCL为高电平期间,SDA从高到低的跳变; 终止信号(STOP):在SCL为高电平期间,SDA从低到高的跳变; 应答信号(ACK):发送或接收完8bit数据后,在下一个时钟周期(SCL=1),SDA=0为应答(ACK),SDA=1为非应答(NACK); 写入流程:MCU发送起始信号,接下来发送器件地址(0x22),接收应答信号,再发送N字节的8位数据,每发送一个字节后都要读应答信号,最近发送终止信号,释放总线。 读取流程:MCU发送起始信号,接下来发送器件地址(0x23),接收应答信号,开始接收N字节的8位数据,每读取一个字节后都要读应答信号。如果器件非应答,就发送终止信号,结束读取过程。最后释放总线。 本制作主要用了下面几条操作命令: 0x01: POWRE_UP 此命令主要设置CTS中断使能、GPO2 输出使能、晶振、接收波段和音频输出选择等功能。 0X11: POWER_DOWN 发送本命令让芯片进入待机模式 0X12:SET_PROPERTY 设置属性命令 0X14:GET_INT_STATUS 获取中断状态,主要用于判断搜索是否完成。 0X20:FM_TUNE_FREQ 写入指定的频率(64-108mhz) 0X21:FM_SEEK_START 开始搜索电台。可以设置搜索方向和到达搜索终点时是否循环。 0X22:FM_TUNE_STATUS 调谐状态,本例中用于获取当前电台的频率。 0X23:FM_RSQ_STATUS 接收信号质量。RSSI:信号质量,单位为dBuV。SNR:信噪比,单位dB. Si4745的常用属性: 0X1100:FM_DEEMPHASIS 去加重时间常数设置,默认值为0x0002(75us)。要设置为我国使用的50us,需要将值设为0x0001; 0X4000:RX_VOLUME 音量设置,范围从0x00-0x3f,共64级,每级步进1dB。默认值为0X3f即最大音量。 其余属性值在本制作中全部使用了默认值,也就是不去操作这些寄存器。 先用STC15L104W单片机做了一个测试小板,电路够简单,程序才是本制作的难点 电路采用STC89LE52单片机做主控,模拟I2C协议控制DSP收音模块。MicroUSB提供5V电源,经1117-3.3降压后供DSP模块和MCU使用。加了一级TDA1308组成的音频放大,可直接驱动耳机。 视频演示: 原文出处:https://www.crystalradio.cn/thread-1331951-1-1.html