【DSP实验】实验6音频信号处理实验-实现参量均衡器+滤波器+反相器的总和DSP处理交互系统

实验6 音频信号处理实验
目录

  1. 实验目的 1
  2. 实验设备 1
  3. 算法实现原理与仿真结果 1
    3.1 参量均衡器的LowShelf和HiShelf通道模式 1
    3.1.1 参量均衡器 1
    3.1.2 LowShelf和HiShelf通道模式 4
    3.1.3 LowShelf和HiShelf均衡的Matlab仿真 5
    3.2 巴特沃斯滤波器 8
    3.2.1 特性 8
    3.2.2 传递函数 12
    3.2.3 巴特沃斯滤波器的Matlab仿真 13
    3.3 音频的反相 15
    3.3.1 反相的概念 15
  4. 界面设计与通信协议 16
    4.1 界面设计 16
    4.2 通信协议 26
  5. 算法的DSP程序设计 27
    5.1 系统的软件设计流程 27
    5.2 系统时钟及必要外设的初始化 28
    5.3 上位机和DSP板接收命令的判定 30
    5.4 解析串口通信数据 32
    5.5 音频算法软件处理 35
  6. 实验结果分析 52
    6.1 界面设计展示 52
    6.2 音频算法处理结果与分析 53
    6.2.1 直通处理 53
    6.2.2 静音/反相处理 55
    6.2.3 低架处理 57
    6.2.4 高架处理 61
    6.2.5 巴特沃斯低通处理 65
    6.2.6 巴特沃斯高通处理 68
  7. 参考文献 71

——————————————————————————————————

  1. 实验目的
    1、复习巩固数字信号处理和音频DSP的基本原理和应用方法;
    2、掌握在DSP上实现数字音频信号处理算法的方法。
  2. 实验设备
    PC机一台,操作系统为Windows,安装VisualDSP++5.12软件, ADSP-21489 EZ –Board 一套。
  3. 算法实现原理与仿真结果
    3.1 参量均衡器的LowShelf和HiShelf通道模式
    3.1.1 参量均衡器
    (一) 均衡器的分类
    均衡器分为三类:图示均衡器,参量均衡器和房间均衡器。
    (1) 图示均衡器
    亦称图表均衡器,通过面板上推拉键的分布,可直观地反映出所调出的均衡补偿曲线,各个频率的提升和衰减情况一目了然,它采用恒定Q值技术,每个频点设有一个推拉电位器,无论提升或衰减某频率,滤波器的频带宽始终不变。常用的专业图示均衡器则是将20Hz~20kHz的信号分成10段、15段、27段、31段来进行调节。这样人们根据不同的要求分别选择不同段数的频率均衡器。一般来说10段均衡器的频率点以倍频程间隔分布,使用在一般场合下,15段均衡器是2/3倍频程均衡器,使用在专业扩声上,31段均衡器是1/3倍频程均衡器,多数有在比较重要的需要精细补偿的场合下,图示均衡器结构简单,直观明了,故在专业音响中应用非常广泛。
    (2) 参量均衡器
    亦称参数均衡器,对均衡调节的各种参数都可细致调节的均衡器,多附设在调音台上,但也有独立的参量均衡器,调节的参数内容包括频段、频点、增益和品质因数Q值等,可以美化(包括丑化)和修饰声音,使声音(或音乐)风格更加鲜明突出,丰富多彩达到所需要的艺术效果。
    (3) 房间均衡器
    用于调整房间内的频率响应特性曲线的均衡器,由于装饰材料对不同频率的吸收(或反射)量不同以及简正共振的影响造成声染色,所以必须用房间均衡器对由于建声方面的频率缺陷加以客观地补偿调节。
    频段分得越细,调节的峰越尖,即Q值(品质因数)越高,调节时补偿得越细致,频段分的越粗则调节的峰就比较宽,当声场传输频率特性曲线比较复杂时较难补偿。
    (二) 参量均衡器的重要参数
    频率(frequency)参数:设定了你要对声音频带中进行均衡的具体频段。
    提升(boost)和衰减(cut)参数:决定了你要对选定频段进行提升或是衰减的程度。
    带宽,共振或是Q值参数:这个参数决定了提升或是衰减曲线是窄而尖还是宽而平缓。较窄的带宽设置(即较高的共振或是Q值)使得均衡器只能对非常窄的一个音频段进行操作,而较宽的设定值则可以对较宽的音频段进行操作。
    参量均衡算法实际上是一种二阶IIR滤波器,参量均衡器一般用于补偿声音信号中不足的频率成分,衰减过多的频率成分。使用过程中有三个参数可以调:中心频率fC、Q值、增益值Gain。下图为参量均衡器的示意图。

在这里插入图片描述

界面设计

在这里插入图片描述


```c
1.	%% 串口配置全局变量  
2.	global popBaudRate;  
3.	global popDataBits;  
4.	global popStopBits;  
5.	global popParity;  
6.	  
7.	popBaudRate = [9600, 19200, 38400, 57600, 115200];     % 波特率  
8.	popDataBits = [8, 9];                                  % 数据位  
9.	popStopBits = [1, 2];                                  % 停止位  
10.	popParity = {'none', 'even', 'odd'};                   % 校验位  
11.	  
12.	%% 音频命令全局参数  
13.	global  CH_IN;       CH_IN =0;      % 输入声道  
14.	global  CH_OUT;      CH_OUT=1;      % 输出声道  
15.	  
16.	global  CH_NUM;     CH_NUM = 16;     %输入、输出声道各8个,其中输入声道目前的21489开发板只有4个,另外4个保留  
17.	global  IN_CH1;     IN_CH1 = 1 ;     %输入声道1  
18.	global  IN_CH2;     IN_CH2 = 2 ;     %输入声道2  
19.	global  IN_CH3;     IN_CH3 = 3 ;     %输入声道3  
20.	global  IN_CH4;     IN_CH4 = 4 ;     %输入声道4  
21.	  
22.	global  OUT_CH1;    OUT_CH1 = 9;      %输出声道1  
23.	global  OUT_CH2;    OUT_CH2 = 10;     %输出声道2  
24.	global  OUT_CH3;    OUT_CH3 = 11;     %输出声道3  
25.	global  OUT_CH4;    OUT_CH4 = 12;     %输出声道4  
26.	global  OUT_CH5;    OUT_CH5 = 13;     %输出声道5  
27.	global  OUT_CH6;    OUT_CH6 = 14;     %输出声道6  
28.	global  OUT_CH7;    OUT_CH7 = 15;     %输出声道7  
29.	global  OUT_CH8;    OUT_CH8 = 16;     %输出声道8  
30.	  
31.	global  HEAD1;      HEAD1 = 170;   %参数的帧头1 0xaa  
32.	global  HEAD2;      HEAD2 = 85;    %参数的帧头2 0x55  
33.	   
34.	global  MUTELEN;           MUTELEN          = 4;      % 静音命令参数个数  
35.	global  BYPASSLEN;         BYPASSLEN        = 3;      % 直通命令参数个数  
36.	global  PHASELEN;          PHASELEN         = 4;      % 反相命令参数个数  
37.	global  DELAYLEN;          DELAYLEN         = 6;      % 延时命令参数个数  
38.	global  LOWSHELFLEN;       LOWSHELFLEN      = 8;      % lowshelf命令参数个数  
39.	global  HIGHSHELFLEN;      HIGHSHELFLEN     = 8;      % highshelf命令参数个数   
40.	global  BUTTERLEN;         BUTTERLEN        = 8 ;     % 巴特沃斯命令参数个数   
41.	global  MUTEID  ;          MUTEID         = 2;   % 静音命令ID  
42.	global  BYPASSID;          BYPASSID       = 3;   % 直通命令ID  
43.	global  PHASEID  ;         PHASEID        = 4;   % 反相命令ID  
44.	global  DELAYID  ;         DELAYID        = 5;   % 延时命令ID  
45.	global  LOWSHELFID;        LOWSHELFID     = 6;   % lowshelf命令ID  
46.	global  HIGHSHELFID ;      HIGHSHELFID    = 7;   % highshelf命令ID  
47.	global  BUTTERID  ;        BUTTERID       = 9;   % 巴特沃斯命令ID

主要的DSP实现代码:

```c
```c
1.	// Sets the UART0 receive interrupt to P13  
2.	    *pPICR2 &= ~(0x3E0);   
3.	    *pPICR2 |= (0x13<<5);   
4.	      
5.	          
6.	    initPLL_SDRAM(); //Initialize the PLL and SDRAM controller  
7.	      
8.	    // UART 设置  
9.	    *pUART0LCR=0;     
10.	    *pUART0IER   = UARTRBFIE;    // enables UART0 receive interrupt  
11.	    interrupt(SIG_P13,UARTisr);   
12.	    initDPI();  
13.	    initUART();  
14.	      
15.	  
16.	    // Initialize DAI because the SPORT and SPI signals  
17.	    // need to be routed  
18.	    InitDAI();  
19.	  
20.	    // This function will configure the AD1939 codec on the 21489 EZ-KIT  
21.	    Init1939viaSPI();  
22.	  
23.	    // Turn on SPORT0 TX and SPORT1 RX for Multichannel Operation  
24.	    InitSPORT();  
25.	      
26.	    // Unmask SPORT1 RX ISR Interrupt   
27.	    interrupt(SIG_SP1,TalkThroughISR);  
28.	      
29.	    Init_LEDs();  
30.	          
31.	    Init_PushButtons();  
32.	      
33.	    NewCmdFlag = 0;            // 初始化命令标志, 当前无新命令  

处理算法图
在这里插入图片描述
实验结果分析:
在这里插入图片描述

在这里插入图片描述

完整代码以及工程、设计报告(word,近2w字分析讨论)如下:
https://download.csdn.net/download/weixin_39589455/18656041

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别出BUG求求了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值