任意波形频域变换器设计(上)——方案讨论

任意波形频域变换器设计(上)——方案讨论


本设计是多年前作者本科时的课程设计,限于当年水平有限,也许有一些bug。分享出来供大家借鉴交流

实验目的及意义

多媒体技术的发展,使计算机与音响设备有机地结合起来,通过计算机实现对声音信息的处理与控制。现在CDROM、声卡已成为计算机的基本配置。人们在紧张的工作之余,可以欣赏音乐,把工作和娱乐融为一体。众所周知,声调因人而异,人们在唱歌时,总希望伴奏音乐的音调适合自己的嗓音。在一些卡拉OK机中就有相应的变调装置,通过专门的硬件来完成这一功能。本设计通过分析声音文件的结构,利用软件的方法实现变频与变调,弥补声音卡在这方面的功能,以满足人们的需要。在本设计中我们利用STM32对音频数据进行数字化处理,在硬件电路的配合下,在软件上实现信号的频域变换。方案实现了100mv-5Vpp之间的任意波形变换,输出信号频率为输入值的0.1-5倍可调,在此基础上变调部分采用类正弦波微元法实现语音信号的升降调,并使用依据拉格朗日中值定理的插值算法,拟合波形曲线,进行频域扩压,实现在不改变节奏的情况下,对声音做变调处理,而不是简单地频域压缩,提高频率的情况下加快了歌曲的节奏,没有使用价值。

实验环境

  • 主芯片型号:STM32 103F
  • 软件开发平台:STM32F103野火开发板
  • 软件开发工具:KEIL
  • 硬件电路仿真平台:multisim12.0
  • 硬件开发平台:altium designer14.0.9.0
  • 基准电压芯片:REF5050 实现精准分压基准
  • 放大、音频滤波、加法器芯片:THS4032双路 100MHz 低噪声电压反馈放大器

详细设计

方案讨论

功能一:
实时音频信号变调:

在这里插入图片描述
图1 实时变调系统实现系统框图

  • 实时变调系统系统框图如上图所示硬件方面通过先隔离再放大,滤波后再抬升,最后衰减的方法实现信号的前级处理,使信号能够通过单片机进行采集并输出相应频率波形,使输入信号峰峰值等于输出信号的峰峰值。此外还能补偿信号中所欠缺的频率分量,使音质得到改善,从而提高放音系统的放音效果,由于单片机能采集到的在放大输出端口连接射随电路以增加电路的带载能力。
  • 时域变调算法需要对语音数据进行插值拼接。以一个保持语音信号听觉特征的最小单位——“音元”为基础划分单位,对语音数据进行分段,并将分段后的信号保存在储存媒介中,同时DAC从储存媒介中进行重采样,根据重采样速度对数据分段进行增加与删除,从而达到变调的目的。变调部分采用类正弦波微元法实现语音信号的升降调,并使用依据拉格朗日中值定理的插值算法,拟合波形曲线,进行频域扩压,实现在不改变节奏的情况下,实现声音的变调处理。
  • 在变频部分,MCU通过触发ADC对输入信号进行采样,通过触控键盘输入当前信号频率,计算出需要采点的个数。采集完毕后,通过DAC反复输出这段信号,通过改变DAC的输出触发时间间隔来改变频率,实现变频与波形的完美拟合。变频的大小通过一个触控滑块来设置,从0.1-5倍共50个档位。
  • 在变调部分,ADC以44.1K采样率对输入语音信号进行采样,并实时将信号保存到SD卡中,同时DAC对SD卡中数据进行输出,改变DAC输出速度就改变了音调,通过滑块设置好变调幅度,计算出处理参数,从而对数据做一个增加或者删除,来保持播放时长。增加与删除的幅度需要严格控制。
    功能二:
    非实时音频信号变调(SD卡读取文件):

在这里插入图片描述
图二:非实时变调系统(SD卡读取文件)实现系统框图

  • 非实时变调系统实现框图如上。实现SD卡读取声音的变调,通过对所放音频带内放大器的频率响应曲线的形状进行控制,从而达到控制放音音色的目的,以适应不同听众对音色的不同爱好。此外还能补偿信号中所欠缺的频率分量,使音质得到改善,从而提高放音系统的放音效果。
    时域变调算法需要对语音数据进行插值拼接。以一个保持语音信号听觉特征的最小单位——“音元”为基础划分单位,对语音数据进行分段,并将分段后的信号保存在储存媒介中,同时DAC从储存媒介中进行重采样,根据重采样速度对数据分段进行增加与删除,从而达到变调的目的。采用类正弦波微元法实现语音信号的升降调,并使用依据拉格朗日中值定理的插值算法,拟合波形曲线,进行频域扩压,实现在不改变节奏的情况下,实现声音的变调处理。
  • 时域算法的优点是变调效果好,具有较高信噪比,容易进行实时语音处理。缺点是在大范围的变调中效果较差。

猜你喜欢

转载自blog.csdn.net/qq_38470434/article/details/106036694
今日推荐