数字信号处理-08-FIR IP应用实例(一)

简介: 数字信号处理-08-FIR IP应用实例

前言


本文根据FIR滤波器相关原理进行设计构建工程,利用前文的工程构建的混频功能的工程,将高频分量进行滤除,保留低频分量。

有限冲击响应滤波器概述


FIR滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。FIR滤波器是全零点结构,系统永远稳定;并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真。相比IIR滤波器,FIR滤波器更容易用数字域进行实现。

在数字滤波的应用中, 绝大部分接触的都是使用 FIR Filter,其相对于 IIR Filter 要简单的多。FIR Filter 的核心思想就是卷积运算,然后了解一下卷积的时域卷积定理,就可以想象出 FIR 滤波器的原理。

卷积类比FIR卷积


在离散数字信号领域, 卷积的定义如下

image.png

而 FIR Filter 中的卷积是有限长序列的卷积, 定义为

image.png

其中ℎ(𝑘)是滤波器序列, M 是滤波器系数的长度, k 的取值为 0~M-1。在实际的应用中,一般都会认为𝑥(𝑛)的也是从零开始。下面举一个例子,设置一个序列和一个滤波器系数,然后观察卷积效果。

xn=[5,11,15,234,34,67,88,46,66,12];%定义x(n)序列
m=size(xn,2);
t1=0:m-1;%定义时间
hn=[0.2,0.2,0.2,0.2,0.2];%定义h(n)序列
n=size(hn,2);
t2=0:n-1;
yn=conv(xn,hn);
t3=0:(n+m-1)-1;%卷积计算后序列的长度定义为n+m-1
figure;
subplot(3,1,1);stem(t1,xn,'r','filled');title('x(n)序列');%画x(n)序列
subplot(3,1,2);stem(t2,hn,'g','filled');title('h(n)序列');%画h(n)序列
subplot(3,1,3);stem(t3,yn,'b','filled');title('y(n)序列');%画y(n)序列

经过卷积运算后的信号序列更加平滑,观察hn序列中的系数均为0.2,该设计类似一个平滑滤波器的功能,相当于做了平均滤波。

image.png

利用MATLAB或filter_solution设计滤波器


DDS的混频工程,混频之后的信号是 1Mhz 和 7Mhz,保留低频分量的话就要滤除 7Mhz 保留 1Mhz。 因为IP中设置的信号动态范围是 45dB, 那么1Mhz 和 7Mhz 的动态范围各自是22.5dB,要想把7Mhz 抑制掉,需要至少滤波器要抑制信号 22.5dB。 所以设计的滤波器,在 9Mhz位置需要是有至少-22.5dB 的衰减, 且在1Mhz 位置通带尽量平滑, 并接近于 0dB,也就是没有增益没有衰减。

在这里可以利用MATLAB的滤波器设计工具或者Filter_solution进行构建。

MATLAB的FDA设计


下图为滤波器设计的界面,通过界面可以设计所需要的滤波器,为了滤除设计中的高频分量,这里使用了低通滤波,并根据实际的应用需求将参数进行设置。

  1. 滤波类型(Filter Type)= Lowpass
  2. 采样率(Fs) = 50MHZ
  3. 滤波阶数(order) = 63(阶数越大,滤波品质越好,但相对滞后越大)
  4. 密度因子( Density Factor)= 20
  5. Fpass(通频带)= 2MHZ
  6. Fstop(截止带)= 4MHZ
  7. Apass(通频带宽增益期望)= 1dB
  8. Astop(截止带宽增益期望)= -80dB

image.png

完成滤波器的参数配置后,进行生成滤波器的系数,点击下图指示可生成coe文件或者c的头文件,可根据具体需要进行输出设置。

image.png

filter_solution设计滤波器


该软件效果和MATLAB的滤波器的效果相当,都是根据需求调整相应的滤波器参数,然后进行生成相关的滤波器系数。

image.png

点击频率响应可观察到该滤波器的频率响应图。

image.png

如下图所示:

image.png

点击分析滤波器可获得相关滤波器的权值。可根据具体需求选择输出向量模式或者生成相关测试C代码。

image.png

使用FIR IP进行工程设计


将DDS应用实例的工程进行复制备份,然后添加FIR IP。打开设置相关参数。

FIR滤波器IP设置


可先在第一个界面配置滤波器的基本参数,如果滤波器系数选择向量格式,可将刚刚在滤波器设计软件中的系数进行复制,并粘贴到vector的输入框中。这里将之前生成的系数进行复制。

8.05e-04, 8.416e-04, 8.681e-04, 8.624e-04, 7.882e-04, 6.001e-04, 2.496e-04, -3.048e-04, -1.089e-03, -2.101e-03, -3.306e-03, -4.628e-03, -5.95e-03, -7.117e-03, -7.941e-03, -8.217e-03, -7.735e-03, -6.301e-03, -3.758e-03, 0, 5.008e-03, 1.122e-02, 1.85e-02, 2.664e-02, 3.533e-02, 4.421e-02, 5.289e-02, 6.095e-02, 6.798e-02, 7.361e-02, 7.754e-02, 7.956e-02, 7.956e-02, 7.754e-02, 7.361e-02, 6.798e-02, 6.095e-02, 5.289e-02, 4.421e-02, 3.533e-02, 2.664e-02, 1.85e-02, 1.122e-02, 5.008e-03, 0, -3.758e-03, -6.301e-03, -7.735e-03, -8.217e-03, -7.941e-03, -7.117e-03, -5.95e-03, -4.628e-03, -3.306e-03, -2.101e-03, -1.089e-03, -3.048e-04, 2.496e-04, 6.001e-04, 7.882e-04, 8.624e-04, 8.681e-04, 8.416e-04, 8.05e-04

image.png

然后可以对通道相关参数进行设置。

image.png

在第三个界面中可设置滤波器系数的相关数据格式,以及输入输出的数据格式。需要注意的是,这里输入的信号是DDS产生的数据,这个数据仅有整数部分,所以要调整输入数据的小数位为0。

image.png

详细实现界面主要对滤波器的硬件实现的架构进行选择,包括对架构的优化方式,存储以及DSP资源的使用设置。

目录
相关文章
一阶动态电路时域分析
一阶动态电路时域分析是指研究电路在时间域内响应特性的一种分析方法。 一阶动态电路时域分析的主要特征和意义如下: 对象是一阶电路。一阶电路指其动态行为可以用一个一阶微分方程描述的电路,如RC电路、RL电路等。 分析域是时间域。研究的不是电路在不同频率下的频率响应,而是输入信号作用下输出量随时间的变化规律。 研究内容是电路的时域响应特性。如电路对阶跃输入的阶跃响应、对脉冲输入的脉冲响应曲线等。 主要方法是解一阶微分方程。根据电路的等效模型写出其一阶微分方程,然后选择适当解法求其时间域解。 目的是分析电路的动态性能。如过渡过程、时间常数、稳态误差等定量参数,为电路设计和应用提供参考。
261 0
|
3月前
信号与系统:拉式变换(s域)求解电路的零输入、零状态响应
信号与系统:拉式变换(s域)求解电路的零输入、零状态响应
168 6
|
8月前
|
传感器 数据可视化
LC串联谐振拓扑仿真建模及控制策略分析
该文介绍了直流高压电源的应用领域,特别是LC串联谐振拓扑在其中的重要性。文章接着详细阐述了LC串联谐振变换器的工作模式,重点讨论了在DCM模式下的电路参数设计,包括变压器变比、谐振频率和器件参数等,并使用Simulink搭建模型进行电路仿真。仿真过程分为电路模型搭建、开环调试和闭环调试,验证了输出电压可调且能稳定在设定值,实现了变换器的设计目标。
151 2
|
算法
m基于DVB-T的COFDM+16QAM+Viterbi码通信链路matlab性能仿真,包括载波和定时同步,信道估计
m基于DVB-T的COFDM+16QAM+Viterbi码通信链路matlab性能仿真,包括载波和定时同步,信道估计
289 0
|
机器学习/深度学习 传感器 算法
基于LS和MMSE实现OFDM通信链路信道估计的仿真和分析
基于LS和MMSE实现OFDM通信链路信道估计的仿真和分析
|
算法
m完整的SC-FDE单载波频域均衡通信链路matlab仿真,包括UW序列,QPSK,定时同步,载波同步,MMSE估计等
m完整的SC-FDE单载波频域均衡通信链路matlab仿真,包括UW序列,QPSK,定时同步,载波同步,MMSE估计等
382 0
|
算法 安全
m基于信道差错概率模型仿真对比RS,汉明码以及卷积编译码性能,仿真输出信道差错概率与误码率和仿真速度三维关系图
m基于信道差错概率模型仿真对比RS,汉明码以及卷积编译码性能,仿真输出信道差错概率与误码率和仿真速度三维关系图
186 0
m基于信道差错概率模型仿真对比RS,汉明码以及卷积编译码性能,仿真输出信道差错概率与误码率和仿真速度三维关系图
|
算法
基于MATLAB的OFDM通信链路仿真,输出星座图以及频偏锁定同步
基于MATLAB的OFDM通信链路仿真,输出星座图以及频偏锁定同步
464 0
基于MATLAB的OFDM通信链路仿真,输出星座图以及频偏锁定同步
|
机器学习/深度学习 人工智能 算法
基于DNN网络的信道估计matlab仿真,仿真输出信道估计值的mse指标
基于DNN网络的信道估计matlab仿真,仿真输出信道估计值的mse指标
196 0
|
算法
m在LTE-A系统载波聚合下的资源分配算法的matlab仿真
m在LTE-A系统载波聚合下的资源分配算法的matlab仿真
200 0
m在LTE-A系统载波聚合下的资源分配算法的matlab仿真