欢迎光临建站系统网站,我们的服务范围是一键建站,公司建站等。

建站系统

一个高端新的网络集成营销平台

做个CW/PSK31/FT8三合一调制器

作者:jcmp      发布时间:2021-04-23      浏览量:0
以前先后做过PSK31的两个调制器,一个

以前先后做过PSK31的两个调制器,一个偏硬件方案,一个偏软件方案,链接如下:

张浩:做了个PSK31 Beacon ​ zhuanlan.zhihu.com。

张浩:软件实现PSK31调制器,及GD32F350测试 ​ zhuanlan.zhihu.com。

后来我想,能否在一个电路里把CW、PSK31一起实现了呢?原理图如下。单片机使用STM32F072,两路DAC一路用来输出监听信号,一路输出调制信号。发CW时则切换到光耦输出,用光伏光耦TLP190和一对MOS管搭了个简单的光继电器。

PSK31发送这里用的还是BG2BHC的方案,用DAC调制在500Hz音频上,然后用电台的SSB模式发射即可。增加了tx_start, tx_end, tx_char三个回调函数,主要用来处理串口回显,在tx_symbol函数里更新DAC输出相位。CW模式下则是让TIMER6触发DAC输出正弦波,tx_symbol函数里打开或关断TIMER6来控制正弦波输出,这里没有对波形边沿做进一步处理。发CW和PSK31的效果分别如下,用MULTIPSK软件解调:

1. CW,解调效果一般般了。。。各次谐波都很明显,加上边沿处理应该会好些?

2. PSK31,这效果强多了吧?

以及,能否把FT8发送一起实现了呢?FT8其实是8FSK,实现起来应该更简单,把输入文本按FT8编码算法转换之后,按报文顺序依次切换TIMER6的分频系数即可。在github上找到了NT7S的JTEncode库,链接:

https://github.com/etherkit/JTEncode ​ github.com。

从里面把FT8编码算法单独抠出来,然后继续按上面的办法,在tx_start和tx_end函数里打开和关闭TIMER6,在tx_symbol函数里改变TIMER6分频系数。FSK有个好处,它是等幅连续波,只修改分频系数的话相位也是连续的,所以不需要象CW和PSK那样做边沿处理了。

不过,FT8因为对报文整体做了转换,没法在串口界面按单个字符回显了。发送效果如下:

之后想想其实CW也可以一起用DAC发送,不用做电键输出了……据说有些成品电台也是这么实现的。下次做简单点。

ps. 以上只用PC对音频解调,未实际发射。固件里并未实现实际输出到电台功能(当然要添加也很容易。)。

原理图及源代码见Github链接:

tomzbj/diy ​ github.com。