加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
STM32-F407VG-SDR-(2)滤波优化
MicroSound2023/10/14原创 无线电 IP:北京
中文摘要
在上期的视频中,我制作了一款中波直采的SDR收音机,结构简陋,并未进行过多的滤波处理,噪音较大,在后面的一段时间里我一直尝试降噪处理,虽尚未达到理想目标,但已有初步成效。
关键词
stm32f407vgsdr滑动求和过滤器FIR过滤器

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分支

https://gitee.com/zhuxianguo/stm32-f407vg-sdr

视频地址:

【STM32-F407VG-SDR-(2)滤波优化】 https://www.bilibili.com/video/BV1vw411c7vw/

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

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

项目代码:

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

视频文件:

00:00
00:00
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
STM32-F407-SDR-滤波优化.mp4  点击下载

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

[修改于 1年6个月前 - 2023/10/16 21:20:01]

来自:电子信息 / 无线电动手实践:实验报导
5
 
5
新版本公告
~~空空如也
山雨欲来风满楼
1年6个月前 IP:海南
926246

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

不过这个SDR不太软啊 sticker

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Sin
1年6个月前 IP:江苏
926307

这个SDR是Stm32 Defined Radio sticker


引用
评论
3
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
MicroSound作者
1年6个月前 IP:北京
926308

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

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
leifeng
1年5个月前 IP:广东
926541

很不错,很好的学习资料

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zhonqiu2023
1年5个月前 IP:河南
926973

非常好的文章,感谢。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
MicroSound
学者 机友 笔友
文章
56
回复
318
学术分
1
2009/05/06注册,5天2时前活动

今日种种,似水无痕。

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

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