基于DSP的正弦波数字频率计

  • 目录

1.1实验项目:基于DSP的正弦波数字频率计

1.2设计目的

(1)基于MATLAB产生正弦波信号,通过音频输出口输出到DSP开发板

(2)DSP通过AD采集正弦波信号,在数字域计算信号频率;

(3)通过数码管显示频率值;

(4)开放性分析:例如AD量化位数、采样率、样本长度、测量范围、测量精度等等。

1.3设计意义

(1)掌握MATLAB的基本知识,学会MATLAB产生简单的正弦波信号,还有利用MATLAB自带的FFT运算计算信号的频率;

(2)掌握TMS320F28335的AD采样的原理,掌握TMS320F28335关于FFTA计算信号频率的方法,并掌握TMS320F28335数码管显示的原理及其应用。

二、总体方案

2.1实验原理

2.1.1 MATLAB中的音频工具箱(Audio Toolbox)

 1、功能:设计和分析语音、声学和音频处理系统

Audio Toolbox 为音频处理、语音分析和声学测量提供工具。它包含各种算法,可用于处理音频信号(例如均衡和时间拉伸)、估计声信号指标(例如响度和清晰度)以及提取音频特征(例如 MFCC 和基音)。它还提供先进的机器学习模型(包括 i-vector)和预训练深度学习网络(包括 VGGish 和 CREPE)。工具箱 App 支持实时算法测试、脉冲响应测量和信号标注。该工具箱提供了面向 ASIO、CoreAudio 和其他声卡以及 MIDI 设备的流接口,以及用于生成和托管 VST 和 Audio Units 插件的工具。

Audio Toolbox 支持您导入、标注和增强音频数据集,以及提取特征以便训练机器学习和深度学习模型。所提供的预训练模型可应用于录音,以进行高级语义分析。

通过对声卡流式传输低延迟音频,您可以实时构建音频处理算法原型,或运行自定义声学测量。您可以将算法转变为音频插件,以在外部托管应用程序(如 Digital Audio Workstations)中运行,从而对其进行验证。通过插件托管,您可以将外部音频插件作为常规 MATLAB 对象使用。

2、音频输入和输出

2.1.2 AD采集

1、AD的基本概念

(1)AD转换是将时间连续和幅值连续的模拟量转换为时间离散、幅值也离散的数字量。使输出的数字量与输入的模拟量成正比。

(2)AD转换的过程有四个阶段,即采样、保持、量化和编码。

(3)采样是将连续时间信号变成离散时间信号的过程。经过采样,时间连续、数值连续的模拟信号就变成了时间离散、数值连续的信号,称为采样信号。采样电路相当于一个模拟开关,模拟开关周期性地工作。理论上,每个周期内,模拟开关的闭合时间趋近于0。在模拟开关闭合的时刻(采样时刻),我们就“采”到模拟信号的一个“样本”。

(4)量化是将连续数值信号变成离散数值信号的过程。理论上,经过量化,我们就可以将时间离散、数值连续的采样信号变成时间离散、数值离散的数字信号。

(5)量化电路的后面有一个编码电路,将数字信号的数值转换成二进制代码。

2、ADC的主要技术参数

(1)分辨率

对于ADC来说,分辨率表示输出数字量变化一个相邻数码所需要输入模拟电压的变化量。通常定义为满刻度电压与2n的比值,其中n为ADC的位数。例如具有12位分辨率的ADC能够分辨出满刻度的1/1212(0.0244%)。

(2)量化误差

量化误差是由于ADC的有限分辨率引起的误差,这是连续的模拟信号在整数量化后的固有误差。对于四舍五入的量化法,量化误差在±1/2LSB之间。

(3)绝对精度

绝对精度是指在输出端产生给定的数字代码所表示的实际需要的模拟输入值与理论上要求的模拟输入值之差。

(4)相对精度

它与绝对精度相似,所不同的是把这个偏差表示为满刻度模拟电压的百分数。

(5)转换时间

转换时间是ADC完成一次转换所需要的时间,即从启动信号开始到转换结束并得到稳定的数字输出量所需要的时间,通常为微秒级。

(6)量程

量程是指能转换的输入电压范围。

3、AD转换的一般步骤

采样和保持通常在采样保持电路中完成,量化和编码通常在AD转换电路中完成。

由于AD转换需要一定的时间,在每次采样以后,需要把采样电压保持一段时间。

4、AD转换器的一般分类

(1)AD 转换器按照转换原理可分为直接AD 转换器和间接AD 转换器。

(2)直接AD 转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。其中逐次逼近型AD 转换器,易于用集成工艺实现,且能达到较高的分辨率和速度,故目前集成化AD 芯片采用逐次逼近型者多;

(3)间接AD 转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型)、电压/频率转换型、电压/脉宽转换型等。 其中积分型A/D 转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。 有些转换器还将多路开关、基准电压源、时钟电路、译码器和转换电路集成在一个芯片内,已超出了单纯A/D 转换功能,使用十分方便。

  1. ADC的一般特性
    1. 模拟输入,可以是单信道或多信道模拟输入;
    2. 参考输入电压,该电压可由外部提供,也可以在ADC 内部产生;
    3. 频率输入,通常由外部提供,用于确定ADC 的转换速率;
    4. 电源输入,通常有模拟和数字电源接脚;

(5)数字输出,ADC 可以提供平行或串行的数字输出。

2.1.3 FFT运算

1、傅里叶变换(FT)

傅里叶变换可以将一个信号从时域变换到频域。时域信号在经过傅立叶变换的分解之后,变为了不同正弦波信号的叠加,我们再去分析这些正弦波的频率,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。

2、离散傅里叶变换(DFT)

离散傅里叶变换作为信号处理中最基本和最常用的运算,在信号处理领域占有基础性的地位,如果直接按照离散傅里叶变换的公式进行计算,求出N点X(k)需要N^2次复数运算、N(N-1)次复数加法,当N很大时,运算量是非常大的,这对于实时处理是无法接受的。

3、快速傅里叶变换(FFT)

FFT算法就是采用这种“分堆”的思想,首先将长串的DFT样本分成总数一半的组,直到每组只剩下两个样本点,然后计算每一组样本点的DFT,然后将结果组成样本组,将作为下一次运算的输入。FFT分为按时间抽取和按频率抽取。

4、关系图

2.1.4 数码管显示

1、数码管的段选与位选

以下是数码管的每一段所对应的位置:

从图可以看出来,数码管共有 a、b、c、d、e、f、g、dp 这么 8 个段,而实际上,这 8 个段每一段都是一个 LED 小灯,所以一个数码管就是由 8个 LED 小灯组成的。注意 dp 这个段,它是表示一个小数点!我们看一下数码管内部结构的示意图:

数码管分为共阳和共阴两种:

  • 共阴数码管就是 8 只 LED 小灯的阴极是连接在一起的,阴极是公共端,由阳极来控制单个小灯的亮灭。
  • 同理共阳数码管就是阳极接在一起。

看到这里我们就不难猜出,所谓的段选就是选择要点亮数码管中 a、b、c、d、e、f、g、dp 哪些段。

我们假设有多个这样的数码管,例如这样:

该图中的 LED8、LED7、LED6、LED5、LED4、LED3、LED2、LED1 网络标签都是数码管的公共端口 COM,位选指的就是这里,你可以认为里面有8个数码管,在你选择好段选之后,给某个 COM 网络进行选择就相当于选择点亮某个数码管。

2、数码管的段选表格

① 共阴数码管表格

0x3F

0

0x6F

9

0x06

1

0x77

A

0x5B

2

0x7C

B

0x4F

3

0x39

C

0x66

4

0x5E

D

0x6D

5

0x79

E

0x7D

6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值