目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

数字通信系统中,由于多径传输、信道衰落等影响,在接收端会产生严重的码间干扰,增大误码率。为了克服码间干扰,提高通信系统的性能,在接收端需采用均衡技术。均衡是指对信道特性的均衡,即接收端的均衡器产生与信道特性相反的特性,用来减小或消除因信道的时变多径传播特性引起的码间干扰。幅频均衡就是在幅度和频率上的均衡。

数字幅频均衡功率放大器设计,其难点主要数字幅频均衡。采用何种方案以及方案的优劣直接决定了能够达到指标的高低和实现起来的难易程度,下面我们就数字幅频均衡方案选择进行介绍。

均衡器用于实现对带阻网络频率特性的补偿,以获得平坦的幅频响应。

方案一:采用自适应滤波器。它以最小均方误差为准则,根据输入信号的改变,通过滤波器输出信号与参考信号之间的误差,自动调整滤波器的系数,以达到时变最佳滤波器,适合于未知信号或非平稳信号的处理。

方案二:采用无限冲激响应滤波器(IIR)。IIR滤波器设计简单,实现的阶数较低。但它具有非线性相位,且由于其为反馈型结构(即传递函数存在极点),对滤波器参数的精度要求较高,否则可能引起振荡或发散。

方案三:采用有限冲激响应滤波器(FIR)。FIR滤波器采用非递归结构,可以得到严格的线性相位,运算误差较小,且传递函数不存在极点,稳定性好。但与IIR滤波器相比,相同条件下需要的阶数更高,导致延迟时间较长,而且对于硬件资源会有更高的要求。

由于本系统对固定网络进行幅频均衡,方案一的优势无法体现。鉴于FPGA具有快速的数据处理能力,为保证系统的稳定性,同时又要考虑系统资源的可行性,选取方案三。

带通滤波器在数字幅频均衡功率放大器中一个重要的组成部分,在介绍带通滤波器之前,我们首先来详细介绍一下数字幅频均衡功率放大器。

本系统要求的指标为:

本题要求在输入电压有效值为5mV的条件下,放大倍数达到400倍。而且20Hz到20kHz衰减不能超过1dB。-1 dB转化为信号幅值变化为11%,可以说指标要求很高。我们可以选择使用PGA或AD620实现这一指标。

整个系统的基本结构如下所示:

根据以上分析,系统的整体框图如图4-2所示。输入信号首先通过前置放大电路放大到一定幅度,经过带阻网络后,信号的幅频特性发生变化。由于AD输入幅度限制,信号先经过衰减网络衰减两倍,再经过抗混叠滤波并使用AD对输入信号进行采样,将采样结果送入FPGA做幅频均衡。最后通过DA输出并滤波,经过D类功放后即可得到大功率信号。

数字幅频均衡模块的原理图如图4-3所示,如果要实现对带阻网络的完全补偿,那么FIR滤波器应与带阻网络互为逆系统.带阻网络的系统函数可以通过点频法测得,然后使用MATLAB求出加窗后FIR滤波器应该具有的单位脉冲响应。因为FIR系统具有线性相位特性,所以由其幅频响应就可以求得其系统函数。

·D/A输出电路设计

根据题目的指标及系统频率的要求,我们需要一款频率超过40KHz的模数输出芯片。DAC904是一款14bits、最高采样频率165MHz的的DA器件,由于以前使用过该芯片,所以仍选用DAC904作为数模输出芯片。

·功率放大电路设计

D类功放第一部分为调制器,输入信号接比较器的正输入端,与三角波相比较。当正端上的电位高于负端三角波电位时,比较器输出为高电平,反之则输出低电平。这样,比较器输出的波形就是一个脉冲宽度被音频信号幅度调制后的波形,称为SPWM波。D类功放后级输出电路是一个脉冲控制的大电流开关放大器,正半周期比较器输出高电平,MOSFET晶体管Q1导通,且Q2截止,负半周期比较器输出高电平Q2导通,且Q1截止,这样它就把比较器输出的PWM信号变成高电压、大电流的大功率PWM信号,最后只需要通过一个二阶低通滤波器就可以把声音信息还原出来。

以上就是这个系统的基本结构,在本课题中,我们主要需要设计的是其带通滤波器部分,即数字幅频均衡部分。

对于这个部分,一般有如下的几种方案:

方案一:理论推导带阻网络的传递函数,得出带阻网络的系统结构,然后对实际的带阻网络进行模式识别,得出其实际的传递函数。对输入的信号在时域进行频率测量,根据传递函数计算得出其幅频衰减的程度,然后对其损失的幅度进行补偿。

方案二:利用FFT算法分析信号的频谱,得到信号的频率值,然后再根据带阻网络的传输特性进行补偿。

方案三:对所给的带阻网络电路进行仿真,求出其幅频特性曲线及中心频率,并以实际带阻网络验证其准确性。运用数字信号处理技术,利用可编程逻辑器件,构建相同于带阻网络对应的数字带通滤波器,对通过带阻网络所衰减的幅度进行补偿。

由于方案一和方案二对处理器的速度有很大要求,而且实时性比较高,很难达到同步输出,而方案三采用FPGA并行处理的优势,在其内部用硬件构建带通滤波器,可实时的对信号进行数字幅频均衡。

2.仿真效果预览

matlab2022a仿真结果如下:

3.MATLAB核心程序

module FIR_module(i_clk,i_rst,i_data,o_data);input               i_clk;
input               i_rst;
input  signed[15:0] i_data;output signed[34:0]  o_data;firs firs_u(.clk                (i_clk),.reset_n            (i_rst),.ast_sink_data      (i_data),.ast_sink_valid     (1'b1),.ast_source_ready   (1'b1),.ast_sink_error     (2'b00),.ast_source_data    (o_data),.ast_sink_ready     (),.ast_source_valid   (),.ast_source_error   ());                endmodule
A140

4.完整MATLAB

V

基于FPGA的幅频均衡带通滤波器的设计相关推荐

  1. 基于FPGA的简易DDS信号发生器的设计与验证

    基于FPGA的简易DDS信号发生器的设计与验证 一,理论介绍 补充:举例理解 二,代码实现 1,实验目标 2,MATLAB代码 3,verilog代码及实现思路 一,理论介绍 DDS 是直接数字式频率 ...

  2. 基于FPGA的简易DDS信号发生器的设计(一)

    写这篇文章的本意不是为了探讨AD9767怎么使用,因为9767的控制实在是太简单了,准备好数据直接输出即可,和网上大多数的并行DA输出基本上一模一样,更麻烦的反而是硬件方面.发文的原因是最近一位很细心 ...

  3. 基于FPGA的CAN总线控制器的设计(下)

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇.今天带来第三篇,下篇,程序的仿真与测试以及总结.话不多说,上货. 导读 CAN 总线(Controller Area Netw ...

  4. 基于 FPGA 的模拟 I²C协议设计(中)

    今天给大侠带来基于FPGA的 模拟 I²C 协议设计,由于篇幅较长,分三篇.今天带来第二篇,中篇,I²C 协议的具体实现.话不多说,上货. 之前也有相关文章介绍,这里超链接一下,仅供各位大侠参考. 源 ...

  5. 基于FPGA的双路低频信号发生器设计

    基于FPGA的双路低频信号发生器设计 系统结构框 本设计是以Altera公司的可编程芯片做载体,运用Verilog作为软件设计工具,从而实现DDS原理,即信号发生器的核心思想.再加上信号发生器的硬件电 ...

  6. 基于FPGA的除法器原理介绍及设计实现

    基于FPGA的除法器原理介绍及设计实现 引言应用 在FPGA的设计应用领域里,许多电路需要用到除法器,而在硬件描述语言里却没有直接的除法器"%","/"可以直接 ...

  7. 基于FPGA的CAN总线控制器的设计(上)

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇.今天带来第一篇,上篇,CAN 总线协议解析以及 CAN 通信控制器程序基本框架.话不多说,上货. 导读 CAN 总线(Cont ...

  8. 基于FPGA的音频处理芯片的设计

    基于FPGA的音频处理芯片的设计 时间:2009-01-07 10:00:18 来源:维库电子市场 作者:刘虹 黄涛 徐成 1 引言 随着数字技术日益广泛的应用,以现场可编程门阵列FPGA(Field ...

  9. 源码系列:基于FPGA的数字电压表(AD)设计

    今天给大侠带来基于FPGA的数字电压表设计,附源码,获取源码,请在"FPGA技术江湖"公众号内回复"数字电压表设计源码",可获取源码文件.话不多说,上货. 设计 ...

最新文章

  1. 屏幕适配方式都有哪些
  2. topcoder srm 325 div1
  3. nginx+php-fpm动静分离
  4. 【控制】频域分析及奈氏判据
  5. LeetCode 8 字符串转换整数 (atoi)
  6. alert时java还时js_js 加alert后才能执行方法
  7. 细说flush、ob_flush的区别
  8. Cisco路由器密码恢复
  9. P5299-[PKUWC2018]Slay the Spire【dp】
  10. python+selenium 浏览器无界面模式运行
  11. Linux 命令之 cut
  12. ThinkCMF是一款支持Swoole的开源内容管理框架,基于ThinkPHP开发,同时支持PHP-FPM和Swoole双模式,让WEB开发更快!
  13. (56)UART外设驱动协议(一)(第12天)
  14. Python 机器学习:多元线性回归
  15. Spring + MyBatis配置整合
  16. python语言中strike_基于Python的XSS测试工具XSStrike使用方法
  17. 我的世界 java错误_我的世界error错误信息 应用程序错误解决方法
  18. 数据丢包怎么修复_网络丢包率高怎么办
  19. 程序设计天梯赛 L1-6 斯德哥尔摩火车上的题分数 15
  20. 代码片段plus ??? 打工神器: 飞冰物料库

热门文章

  1. 权限管理工具的使用方法
  2. centos中Discuz论坛模板配置问题(centos7)
  3. 前端学习之路Electron——弹出框
  4. 【干货分享】这里的思维导图软件非常nice哦,快来收藏吧!
  5. b2b2c系统jwt权限源码分享part2
  6. oracle通信协议TNS的说明
  7. Ackerman函数(C语言)
  8. 用matlab实现循环卷积,利用matlab实现循环卷积.doc
  9. 2017上海大学计算机考研分数线,2017年上海大学考研复试分数线以及复试通知
  10. WEB安全学习第六天:加密编码算法