文号
926244
阅读
30623
回复
5
收藏
3
STM32-F407VG-SDR-(2)滤波优化
2023/10/14
原创
IP:北京
摘要:在上期的视频中,我制作了一款中波直采的SDR收音机,结构简陋,并未进行过多的滤波处理,噪音较大,在后面的一段时间里我一直尝试降噪处理,虽尚未达到理想目标,但已有初步成效。

workflow.png

在上期的视频中,我制作了一款中波直采的SDR收音机,结构简陋,并未进行过多的滤波处理,噪音较大,在后面的一段时间里我一直尝试降噪处理,虽尚未达到理想目标,但已有初步成效。

*******************************************************************************************************

滤波优化点.png

主要改进有以下几点:

1、LNA电路优化

2、改进LO生成算法

3、增加DAC循环缓冲区

4、增加FIR-DEC滤波器

5、DAC后增加LPF滤波器

*******************************************************************************************************

LNA2.png

这是我重新设计的LNA电路,相对于上次的电路有几点改进

1、减少2级放大为1级放大

2、S9014偏置电路改为分压偏置

3、射级增加103电容

4、电源部分增加47欧姆的限流电阻,后面增加LC-PI型滤波器

*******************************************************************************************************

草稿.jpg

这是我设计覆铜板的草稿图

*******************************************************************************************************

覆铜板.jpg

这是焊接好的覆铜板

*******************************************************************************************************

LPF.png

这是DAC后的低通滤波器

*******************************************************************************************************

compte-lo.png

上次的数字振荡器是一个固定表,这个固定表有个问题,信号采样必须是完整周期的整数倍才可以,如果不是整数倍,会造成振荡器波形不连续,这个不连续在混频后会引入噪声。

*******************************************************************************************************

nco.png

由于采样率是2.4M,我创建了一个2400点的正弦波表,然后对这个lut表进行步进抽取,当步进为1时抽取,频率是1K,如果步进为2时抽取那么频率是2K,以此类推,这是根据这个算法生成的测试波形图

*******************************************************************************************************

dac循环缓冲区.png

上个视频中我只是在ADC时用到了循环缓冲区,现在我把DAC也加上了循环缓冲区,循环缓冲区我是通过转换一半中断来实现的,这里我用了一个小技巧,就是把2维数组当1维数组来了用。

*******************************************************************************************************

2维数组.png

实际2维数组存储就是用多个1维数据串联起来的进行存储的。

*******************************************************************************************************

增加fir.png

在上次数字混频后我只用了滑动求和抽取滤波器,有效果但不理想,这次我先用25点的滑动求和过滤器把2.4M的采样率降低到96K,然后再通过61阶2倍抽取的FIR过滤器降低到48K,效果有所增强。

*******************************************************************************************************

MATLAB.png

FIR滤波系数我是用matlab进行的设计,这是设计时的参数设置。

*******************************************************************************************************

组装.png

经过以上改进,我们来重新试听一下效果,感觉改进还是蛮明显的。

*******************************************************************************************************

项目地址:direct-rf-v2分支

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

视频地址:

【STM32-F407VG-SDR-(2)滤波优化】 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

*******************************************************************************************************

为保证文章完整性,补充项目代码和视频如下:

项目代码:

attachment icon stm32-f407vg-sdr-v2.zip 9.98MB ZIP 60次下载

视频文件:

STM32-F407-SDR-滤波优化.mp4  点击下载 ‎

*******************************************************************************************************

[ 修改于3年1个月前 - 2023/10/16 21:20:01 ]
3年1个月前IP:海南
926246
1楼

有意思,可以考虑打板了🤗

不过这个SDR不太软啊 sticker

引用
评论
2
3年1个月前IP:江苏
926307
2楼

这个SDR是Stm32 Defined Radio sticker


引用
评论
3
MicroSound作者
3年1个月前IP:北京
926308
3楼

感觉虽然有点简陋,但像我这样从零开始构建sdr的帖子可不多,😀

引用
评论
2
3年0个月前IP:广东
926541
4楼

很不错,很好的学习资料

引用
评论
3年0个月前IP:河南
926973
5楼

非常好的文章,感谢。

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的