用中档FPGA实现多相滤波器
多相滤波的数字相干检波原理及FPGA实现

多相滤波的数字相干检波原理及FPGA实现介绍一种利用带通采样定理及多相滤波的方式实现数字相干检波的方法,由于采用数字信号处理的方式获取I、Q 基带信号,因此具有镜频抑制能力强、线性动态范围大、系统设备简单、一致性好等优点。
文章主要从理论及工程实现两个方面展开论述。
1 基本原理设某一数字滤波器的脉冲响应为h(n),则其Z 变换H(z)定义为对式(1)展开变换后,可得令则式(2)即为数字滤波器H(z)多相滤波结构,显然H(z)由D 个EK(z),K=0,1,2,,D-1 分支滤波器构成,并且每个滤波器的阶数为H(z)阶数的1/D,这种多相滤波的结构不仅能够提高系统实时处理能力,而且可以降低传统滤波器滤波运算后的累计误差。
下面对多相滤波技术在数字相干检波中的应用进行理论分析。
通常,对于载频为fo 的带限(带宽B) 中频信号,若以采样率为fs=4fo/(2m+1),m=O,1,2,,且fs≥2B 对其采样,通过符号修正及多相滤波的方式可准确获得正交的两路基带信号,如图1所示。
设信号x(t)=a(t)cos[2πfot+φ(t)],若以采样率为fs=4fo/(2m+1),m=0,1,2,,且fs≥2B 对x(t)采样后得到的采样序列为式中,分别为信号的同向分量和正交分量,对x(n)进行奇偶分路和符号变换,可以得到显然,和分别为同向分量和正交分量的2 倍抽取序列,容易证明和的数字谱为式(7)和式(8)描述了正交解调后同向I 及正交Q 支路的频谱,但二者的数字谱相差一个延迟因子,这相当于在时域上相差O.5 个采样点,需要两个延迟滤波器校正,这两个滤波器需要满足,两路延迟滤波器需要具有相似的幅度或相位特性,保证、支路严格匹配。
理论分析知,可以采用多相滤波的方式从一原型低通滤波器中取出数字谱相差的两个支路分别对I、Q 两路延迟滤波,由于两个滤波。
关于fpga中值滤波算法的文章

关于fpga中值滤波算法的文章FPGA中的值滤波算法值滤波算法是一种常用的信号处理技术,用于去除信号中的噪声和干扰,提高信号质量。
在FPGA(Field-Programmable Gate Array)中,值滤波算法被广泛应用于数字信号处理和图像处理等领域。
本文将介绍FPGA中的值滤波算法及其应用。
FPGA是一种可编程逻辑器件,具有高度灵活性和可重构性。
它可以根据需要重新配置其内部电路,实现各种不同的功能。
在数字信号处理中,FPGA可以通过硬件描述语言(HDL)编写程序来实现各种算法和功能模块。
值滤波算法是一种基于统计学原理的滤波方法。
它通过对输入信号进行统计分析,计算出每个采样点周围邻近点的平均值或中位数,并将该值作为输出。
这样可以有效地去除噪声和干扰,提高信号质量。
在FPGA中实现值滤波算法有多种方法。
其中一种常见的方法是使用移动窗口技术。
移动窗口是一个固定大小的窗口,在输入信号上移动,并计算窗口内数据的平均值或中位数。
通过不断移动窗口,可以对整个信号进行滤波处理。
另一种方法是使用并行处理技术。
FPGA具有并行处理的能力,可以同时处理多个数据。
在值滤波算法中,可以将输入信号分成多个子信号,并在不同的处理单元上进行并行计算。
最后将各个子信号的滤波结果合并得到最终输出。
FPGA中的值滤波算法在许多领域都有广泛应用。
例如,在音频处理中,值滤波算法可以去除音频信号中的杂音和爆音,提高音质。
在图像处理中,值滤波算法可以去除图像中的噪点和伪像,提高图像清晰度。
此外,在通信系统中,值滤波算法也被用于解调和解码过程中的信号恢复。
通过对接收到的信号进行值滤波处理,可以减少误码率和误差传播。
总之,FPGA中的值滤波算法是一种重要的数字信号处理技术。
它通过统计分析和移动窗口等方法,去除输入信号中的噪声和干扰,并提高信号质量。
在各种应用领域中都有广泛应用,并发挥着重要作用。
随着FPGA技术的不断发展,值滤波算法在FPGA中的应用将会越来越广泛。
多相抽取滤波器的FPGA实现

』一1 v
样率 的不 断提 高 , 速 率 数 字 滤 波器 和滤 波 器 组 在 多
很 多 领域 有着 广 泛 的应 用 。 如数 字 音频 处理 、 音处 语
XI Haii SUN iin E xa, Zhxo g
( colfEet n n nomainE gne n QoghuU i rt,ay an n5 2 2 , hn Sh o o l r i a dI r t co c f o n ier g, i zo nv sy S naH ia 7 0 2 C i i n ei a)
文献 标识 码 : A
文章 编号 :0 5 9 9 ( 0 2 0 — 3 1 0 10 — 4 0 2 1 )3 0 3 — 3
多 速率指 的是一个 系 统 中存 在 着两 种或 者 两种 以上 的信 号采 样率 , 速率 信号 处理 最早 于 2 纪 多 O世 7 0年代 提 出 , 有 重 要 的 理 论 和 工 程 价 值 。近 1 具 0
多相 抽 取 滤 波 器 的 F G 实现 米 PA
谢 海 霞 . 志 雄 孙
( 琼州学院 电子信息 工程学院 , 海南 三 亚 5 2 2 ) 70 2
摘 要 : 信号的多相分解在多抽样率信号处理中有着重要的作用。介绍了多相分解的基本理论, 结合 F I R抽取滤波器的多
相分解形 式 , V ro D 用 ei gH L语 言来实现 2倍抽取滤波器 的多相结构 , ur s l Q a u Ⅱ软件仿真输 出波形 , t 并且用 MA L B对仿真 结 TA
第3 5卷 第 3期
21 0 2年 6 月
电 子 器 件
基于FPGA的多模式数字匹配滤波器的设计与实现

c e i v i n g e n d o f t h e s a me d i r e c t s e q u e n c e s p r e a d s p e c t r u m c o mmu n i c a t i o n s y s t e m f o r d e s p r e a d i n g o f s p r e a d s p e c t u m s r i g n ls a wi t h mu l t i p l e s p r e a d—s p e c t r u m r a t i o s i mp r o v e s t h e p e r f o ma r n c e o f c o mmu n i c a t i o n s y s t e m. On hi t s b a s i s ,t h e e f f e c t i v e n e s s i s v e if r i e d b y
获 得 更 高 的 系统 性 能 。 首 先 介 绍 了数 字 匹 配 滤多模 式 DMF的 设 计 原 理 , 在 同一 个 直 接 序 列 扩 频 通 信 系 统 的 接 收 端 集 成 多种 模 式 , 实现 对 多种 扩 频 比 扩 频 信 号 的 解 扩 , 提 高通信 系统的性 能 。在 此基础 上 , 通
多相滤波数字信道化的FPGA实现

用 性 和 通 用性 。
关键词 : 电子 战接 收机 ; 多相 滤 波 ; 字信 道 化 数
中图分 类 号 : N 1 T 73 文献标 志码 : A di1 .9 9 ii n 10 —83 .0 20 。2 o:0 3 6 / . s .0 1 9 x 2 1 .80 5 s
了全频段 、 概率 盖 、 全 全子 信道 并行 接收 的数字 信
1 引 言
理 想 的 电子 战接 收 机 应具 备 宽 输 入带 宽 、 灵 高
道 化功 能 。基 于 Xl x Vr x s 5系 列 F G in ie4x i t 3 P A实 现
的方 法有较 好 的 实用 行 , 且 其 思 路 在类 似 的设 计 并 中有 较 强 的通 用性 。
Absr c : mpe n ain o ii lc a n lz t n i r s n e a e n p lp a efl r n t tr e U ta t I lme tt fd gt h n eiai sp e e td b s d o oy h s t sa d smcu e o t — o a o i e f h n fr fl r n 0% o elp o u c a e sdvso iom ts a d 5 i e v ra fs b h nn l iiin.T e c n rd cin b t e ih—s e d r a h o ta it ewe n h g o p e el—tme p i m—
第5 2卷 第 8 期
21 0 2年 8 月
一种新的多相滤波结构在FPGA中的实现

图2 数字滤波器的多项滤波结构
2 基于信号抽取的多项滤波结构
21 抽取 .
实际工程中, 一般对采样信号进行整数倍抽取, 即将原始采样序列 X( ) n 每隔' ( ) D一1 个数据取一
2 以场 年 分 3 0券 常 4期
1 .n , , . )进人第一 2 .
路滤波器的信号是
S )第二路信 ( , n D 号 S 1 , (D+ )依次 n
2. 2
多相滤波结构
( ) 变换 H z为: () 设滤波器的冲击响应 h n 的 Z
():” 厅 : 二 E hn·一 () () 2
图 I 多速率解调系统框图
通常, 多速率信号是指信号的速率变化范围很 大, 最高和最低速率之比超过一倍以上。在这种情 况下, 为了保证时钟同步锁相环的 V 0工作在较好 C 的频段, 以及鉴相器后面的低通滤波器容易设计, 就 需要对数字信号的采样率进行改变。当信号速率低 于最高速率一倍以上时, 可以将采样率提高 2 倍 ” ( = ,,. , V C仍然震荡在同一范围内, n 01. N 使 C . ) ) 此 时整个解调端的时钟同步锁相环就可以只用一个 , 简化了系统的设计 。 此外, 为了保证采样信号不会产生混叠,/ A D前 的模拟低通滤波器不可缺少, 但是模拟滤波器无法 设计得很陡峭, 采样时钟一般至少为信号速率的 3 倍以上( 实际应用中选择 4倍) 。随着采样率的提 高, 后续的数字 F I R滤波器的规模也成倍增长, 耗费 大量的系统资源, 实现起来相当困难且耗费资金, 不 利于工程实现。
N为 :
图5 多相滤波器在 FG P A中的具体实现框图
N oA ‘ 26 - 7 18 4 - 0x 1 f+ . . 3 9 g 5
基于fpga的滤波器设计与实现

基于fpga的滤波器设计与实现基于FPGA的滤波器设计与实现一、引言滤波器是信号处理中常用的一种工具,它可以通过剔除或增强信号中的特定频率分量来改变信号的特性。
而基于FPGA的滤波器是一种利用可编程逻辑器件FPGA来实现滤波功能的方法。
本文将介绍基于FPGA的滤波器的设计与实现过程。
二、滤波器的基本原理滤波器主要通过改变信号的频谱特征来实现滤波效果。
它可以分为两类:低通滤波器和高通滤波器。
低通滤波器通过剔除高频分量,保留低频分量;高通滤波器则相反,剔除低频分量,保留高频分量。
滤波器的设计需要根据具体的需求选择合适的滤波器类型和参数。
三、基于FPGA的滤波器设计与实现基于FPGA的滤波器设计与实现可以分为以下几个步骤:1. 确定滤波器类型和参数:根据实际需求,选择合适的滤波器类型和参数。
例如,如果需要设计一个低通滤波器,需要确定截止频率和滤波器阶数等参数。
2. 数字滤波器设计:将滤波器的模拟设计转化为数字滤波器的设计。
常见的数字滤波器设计方法有FIR滤波器设计和IIR滤波器设计。
FIR滤波器是一种无反馈的滤波器,具有线性相位特性;IIR滤波器则具有反馈结构,可以实现更高阶的滤波器。
3. 将数字滤波器转化为FPGA可实现的结构:将数字滤波器转化为FPGA可实现的结构,可以采用直接形式实现、级联形式实现或者管线化实现等方法。
其中,直接形式实现是最简单直观的方法,但其硬件资源占用较多;级联形式实现可以减少硬件资源的占用,但增加了延迟;管线化实现则可以兼顾硬件资源和延迟。
4. 使用HDL语言进行FPGA设计:使用HDL语言,如VHDL或Verilog,进行FPGA设计。
根据设计的结构和功能,编写相应的HDL代码。
在编写代码时,需要注意代码的可重用性和可维护性,以便后续的设计和调试。
5. 硬件验证和性能优化:完成HDL代码后,进行FPGA的硬件验证和性能优化。
通过仿真和验证,确保设计的正确性和稳定性。
同时,可以根据实际需求对硬件进行优化,如减小资源占用、降低功耗等。
第六章多速率滤波器的FPGA的实现

第六章多速率滤波器的FPGA的实现1.引言多速率滤波器在数字信号处理领域中有着广泛的应用。
其中,FPGA (Field-Programmable Gate Array)作为一种可重构硬件平台,可以提供高速、低延迟、低功耗的滤波器实现方法。
本章将介绍多速率滤波器在FPGA上的实现方法。
2.多速率滤波器的原理多速率滤波器是指对输入信号进行不同采样率的滤波处理。
一般而言,多速率滤波器由两部分组成:上采样和滤波,下采样和滤波。
上采样和滤波将输入信号插入零值,并通过低通滤波器进行平滑处理;下采样和滤波将经过滤波的信号降低采样率,以减少数据量和处理复杂度。
3.多速率滤波器的FPGA实现在FPGA中实现多速率滤波器,需要首先对滤波器进行离散时间傅里叶变换(DFT)或快速傅里叶变换(FFT)。
这样可以将滤波器的时域表示转化为频域表示,以提高计算效率。
接下来,需要根据滤波器的频域表示,设计FPGA的逻辑电路,以实现滤波的功能。
4.FPGA的多速率滤波器实现流程1)将输入信号进行上采样,即在原信号中插入零值,得到高采样率的信号。
2)将高采样率的信号通过低通滤波器进行平滑处理,得到滤波后的信号。
3)将滤波后的信号进行下采样,即降低采样率,以减少数据量和处理复杂度。
4)将下采样后的信号通过低通滤波器进行平滑处理,得到最终输出的信号。
5)根据设计的滤波器的频域表示,使用FPGA的逻辑电路实现上述流程。
5.FPGA实现多速率滤波器的优势FPGA作为一种可重构硬件平台,相较于传统的通用处理器1)高速:FPGA可以通过并行处理大大提高滤波器的计算性能。
2)低延迟:采用FPGA实现的滤波器可以实时响应输入信号,减少处理延迟。
3)低功耗:FPGA可以根据实际需求配置逻辑单元,减少功耗。
4)可重构性:FPGA可以根据实际应用场景的需求进行硬件逻辑的重新配置。
6.结论本章介绍了多速率滤波器在FPGA上的实现方法,并探讨了FPGA实现多速率滤波器的优势。
基于fpga的滤波器设计与实现

基于fpga的滤波器设计与实现基于FPGA的滤波器设计与实现一、引言滤波器是信号处理中常用的工具,用于去除信号中的噪声或不需要的频率成分。
在数字信号处理中,滤波器可以通过软件算法实现,但随着现代电子技术的发展,使用基于FPGA的滤波器可以实现更高效、实时的信号处理。
本文将介绍基于FPGA的滤波器设计与实现的方法和步骤。
二、FPGA的基本原理FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,由大量的逻辑门、存储单元和可编程连接组成。
FPGA的特点是可重构性强,可以根据需要编程实现各种逻辑功能。
在数字信号处理中,可以将滤波器的算法实现在FPGA中,利用其并行处理的能力来提高处理速度和效率。
三、滤波器的基本原理滤波器可以根据其频率响应的特点分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
滤波器的设计目标是在保留需要的信号成分的同时,去除不需要的噪声或频率成分。
常用的滤波器设计方法有FIR滤波器和IIR滤波器。
四、基于FPGA的滤波器设计步骤1. 确定滤波器的类型和设计要求:根据信号处理的需求,确定滤波器的类型(低通、高通等)和性能指标(截止频率、通带衰减等)。
2. 确定滤波器的结构:选择合适的滤波器结构,如直接形式、级联形式等。
3. 设计滤波器的传递函数:根据滤波器的类型和设计要求,设计出满足要求的传递函数。
4. 将传递函数转化为差分方程:根据所选滤波器结构,将传递函数转化为差分方程。
5. 实现差分方程的计算:将差分方程转化为FPGA可以计算的形式,使用硬件描述语言(如Verilog、VHDL)编写计算模块。
6. 将计算模块综合到FPGA中:使用相应的工具将计算模块综合到FPGA中,生成比特流文件。
7. 下载比特流文件到FPGA:将生成的比特流文件下载到FPGA中,使其开始工作。
8. 测试和优化:对设计的滤波器进行测试,并根据测试结果进行优化,以满足设计要求。
基于fpga的多速率滤波器的设计与实现

基于FPGA的多速率滤波器的设计与实现引言在数字信号处理领域,滤波器是一种常用的信号处理工具。
随着科技的发展,FPGA (现场可编程门阵列)成为了实现滤波器的一种重要技术。
多速率滤波器是一种能够同时处理多个信号速率的滤波器,其在通信、音频处理等领域具有广泛的应用。
本文将探讨基于FPGA的多速率滤波器的设计与实现。
FPGAs在滤波器实现中的优势FPGA是一种可编程的数字电路,具有高度灵活性和可重构性。
相比于传统的专用硬件实现和软件实现,FPGA在滤波器实现中具有以下优势:1.并行计算能力:FPGA可以将滤波器的各个部分并行计算,从而实现高效的信号处理。
2.低延迟和高吞吐量:由于FPGA的硬件并行性,滤波器可以以很低的延迟和高吞吐量工作。
3.可重构性:FPGA中的逻辑可以重编程,从而实现不同类型和参数的滤波器,具有非常广泛的应用范围。
4.功耗优化:通过对FPGA中的逻辑和资源进行优化,可以实现功耗的有效管理,从而提高系统的能效。
多速率滤波器的设计与实现第一步:确定滤波器的要求在设计多速率滤波器之前,首先需要明确滤波器的要求,包括信号类型、采样频率、滤波器类型和滤波器参数等。
第二步:选择合适的滤波器结构根据滤波器的要求,选择合适的滤波器结构。
常见的滤波器结构包括FIR(有限冲激响应)滤波器和IIR(无限冲激响应)滤波器。
根据应用的要求,选择不同的滤波器结构。
第三步:对滤波器进行采样率变换多速率滤波器的核心在于对不同速率的信号进行采样率变换。
常见的采样率变换技术包括插值和抽取。
插值是在原始信号上增加新的采样点,抽取是减少原始信号的采样点。
第四步:优化滤波器的实现通过对滤波器的实现进行优化,可以进一步提高滤波器的性能和效率。
常见的优化方法包括流水线化、并行计算和资源共享等。
第五步:验证与测试在实现滤波器之后,进行验证和测试是不可或缺的步骤。
通过合适的测试方法和工具,验证滤波器的性能和正确性。
实例:基于FPGA的多速率滤波器的设计与实现第一步:确定滤波器的要求假设我们需要设计一个用于音频处理的多速率滤波器。
FPGA数字信号处理中的滤波器设计方法

FPGA数字信号处理中的滤波器设计方法在FPGA数字信号处理中,滤波器是一个非常重要的组成部分,它可以用来去除信号中的噪声、增强信号的特定频率成分或者改变信号的频谱特性。
滤波器设计的好坏直接影响到处理信号的质量和效果,因此设计一个高性能的滤波器是至关重要的。
在FPGA中,常用的数字滤波器设计方法主要包括FIR滤波器和IIR滤波器。
FIR滤波器具有线性相位和稳定性的优点,且易于实现满足特定频率响应的滤波器。
而IIR滤波器则具有更高的效率和更小的延迟,但容易产生数值不稳定和非线性相位的特点。
首先,对于FIR滤波器的设计,一般可以采用窗函数法、频率采样法或者最小二乘法等方法。
窗函数法是最简单和常用的方法,通过在频域上乘以一个窗函数来截止频率以实现滤波器的设计。
频率采样法则是通过在频域上将理想频率响应离散化,然后通过反变换得到时域系数。
最小二乘法则是寻找滤波器系数使得滤波器的频率响应与目标曲线的均方误差最小。
这些方法都可以在FPGA上方便地实现,并具有较好的设计灵活性。
其次,对于IIR滤波器的设计,主要考虑的是如何选择合适的滤波结构和设计稳定的滤波器。
一般而言,IIR滤波器可以采用脉冲响应不变法、双线性变换法或者频谱变换法等设计方法。
脉冲响应不变法直接将模拟滤波器的脉冲响应转换为离散时间系统的冲激响应。
双线性变换法则通过双线性变换将模拟系统的传递函数转换为离散系统的传递函数。
频谱变换法则是直接在频域上进行变换,可以实现保持模拟系统频率响应的方法。
选择合适的设计方法和参数对于实现满足指定要求的滤波器非常关键。
在FPGA中实现滤波器的设计时,需要考虑的不仅是算法的优劣,还需要考虑到FPGA资源的使用效率、时序约束、功耗等因素。
因此,在进行滤波器设计时,需要对FPGA的特性有一定的了解,合理地分配资源和优化设计,以达到最好的性能和效果。
总的来说,FPGA数字信号处理中的滤波器设计方法是一个复杂而又重要的技术,它直接关系到信号处理的质量和效果。
基于fpga的多速率滤波器的设计与实现

基于fpga的多速率滤波器的设计与实现基于FPGA的多速率滤波器的设计与实现随着数字信号处理技术的不断发展,多速率滤波器在信号处理中的应用越来越广泛。
多速率滤波器可以将信号分成不同的频带,从而实现对信号的不同频段进行处理。
本文将介绍基于FPGA的多速率滤波器的设计与实现。
一、多速率滤波器的原理多速率滤波器是一种将信号分成不同频带进行处理的滤波器。
其基本原理是通过不同的抽取和插值操作,将信号分成不同的频带,然后对不同频带的信号进行滤波处理。
多速率滤波器通常由两个部分组成:抽取和插值滤波器。
抽取滤波器是将信号从高采样率降到低采样率的滤波器,其作用是将信号分成不同的频带。
插值滤波器是将信号从低采样率升到高采样率的滤波器,其作用是对不同频带的信号进行滤波处理。
二、基于FPGA的多速率滤波器的设计基于FPGA的多速率滤波器的设计需要考虑以下几个方面:1. 选择合适的FPGA芯片FPGA芯片的选择需要考虑其资源和性能。
对于多速率滤波器的设计,需要选择具有足够的DSP资源和高速IO接口的FPGA芯片。
2. 设计抽取和插值滤波器抽取和插值滤波器的设计需要考虑其滤波器类型、滤波器阶数、滤波器系数等参数。
可以使用MATLAB等工具进行滤波器设计和优化。
3. 实现滤波器的硬件电路将抽取和插值滤波器的算法转化为硬件电路需要使用HDL语言进行描述。
可以使用Verilog或VHDL等语言进行描述。
4. 进行仿真和验证设计完成后需要进行仿真和验证,以确保滤波器的性能和正确性。
可以使用ModelSim等仿真工具进行仿真和验证。
三、基于FPGA的多速率滤波器的实现基于FPGA的多速率滤波器的实现需要进行以下几个步骤:1. 编写HDL代码根据设计完成的抽取和插值滤波器的算法,编写Verilog或VHDL代码。
2. 进行综合和布局布线使用Quartus等工具进行综合和布局布线,生成bit文件。
3. 下载到FPGA芯片将生成的bit文件下载到FPGA芯片中,完成多速率滤波器的实现。
第六章多速率滤波器的FPGA的实现

y(n) : f s / M
x1 (n)
y ( n)
x 要找到抽取前后, (n ) 和 y (n) 的时域、
频域关系。对于抽取,要通过中间序列
x1 (n)
现证明如
右的关系:
1 Y ( z) M
1 j Y (e ) M
M 1 k 0
X (z W k )
M 1 k 0
n 0, M ,2 M ,, 其它
x1 (n) 的抽样率仍为 f s
y (n ) 的抽样率是 f s / M
现在的任务是: 1. 2. 3. 找到 x1 (n ) 和 x(n) 的时域与频域的关系; 找到 x1 (n ) 和 y (n) 的时域与频域的关系; 找到 y (n) 和 x(n) 的时域与频域的关系;
4 n 2 y(2) x m h(3m 4 3 ) m 3
m
x(1 m)h(3m 1) x(1)h(1) u(4)
合理的方法是先对信号作插值,然后再抽取
x(n)
fs
L
v ( n)
h 1(n)
Lf s
u ( n)
Lf s
h 2(n)
Lf s
M
y ( n)
L fs M
插值
抽取
因为两个滤波器工作在同样的抽样频率下,所以 可将它们合并成一个
x(n)
fs
L
v ( n)
Lf s
h ( n)
u ( n)
Lf s
M
y ( n)
x ( k L) h ( n k )
y (n)
k
k
x(k )h(n kL)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用中档FPGA实现多相滤波器技术分类: 可编程器件 | 2009-06-24莱迪思半导体公司 Ron Warner引言在现代电子系统中,到处都可以看到数字信号处理( DSP )的应用,从MP3播放器、数码相机到手机。
DSP设计人员的工具箱的支柱之一是有限脉冲响应( FIR )滤波器。
FIR滤波器越长(有大量的抽头),滤波器的响应越好。
然而这里有折衷的情况,由于大量的抽头增加了对逻辑的需求、增加了计算的复杂性,增加了功耗,以及可能引起饱和/溢出。
多相技术可以用于实现滤波器,拥有与传统FIR滤波器可比的结果,而且使用了较少的逻辑、需要较少的计算资源、更低的功耗,并减少了可能的饱和/溢出。
可用如今新型的小规模、中档的FPGA,如LatticeECP3 来实现这些滤波器。
基本概念进入DSP世界可能会有些令人生畏,因此,让我们首先介绍一些简单的概念。
对于数字系统,如音频,视频和无线领域,形成信号的结果是与采样率相关的。
举例来说,以48 kHz(即每秒48000个样本)对专业音频信号进行采样。
相比之下,消费者的CD播放机则使用44.1 kHz的采样率。
多速率系统多速率系统使用多个采样速率。
在某些情况下,运行于某个速率的系统的一部分需要一个原来以另外某个速率采样的信号(转换专业音频到消费者的CD音频就是一个例子)。
在这种情况下,原始信号的速率必须根据需要增加或减少。
或者针对特定的用途,也可能以比实际需要更高的速率对原来的数据进行了采样。
因此,降低采样率,然后运行所得到的数据就可以大幅度降低数据吞吐量的要求,降低对存储器的要求,提高处理效率并降低功耗。
向下采样和抽取让我们首先考虑降低采样率的问题。
假设我们有一个信号,原来以我们称之为fHz的某一频率进行采样,如如图1所示。
图1 用f Hz采样率对原始信号采样现在假设我们要降低采样率至原来频率的1/4。
达到此目的一个方法来就是简单地扔掉每四个原始采样中的三个,如图2所示。
图2 用1/4 f Hz采样率得到新的信号在数字信号处理中, “混叠现象”是指采样时造成不同的连续信号彼此难以区分的情况,它们互相“混叠”。
混叠现象也称为失真,或赝品,即源于采样重构的信号不同于原来的连续信号。
如果我们丢弃了如上文所讨论的一些样本,由此得到的信号会含有混叠现象的赝品。
作为一个简单的例子,考虑一个音频信号,可能含有人耳听不见的高频分量的乐曲。
如果我们以过低的速率对这个信号采样(当我们丢弃一些样本时,实际上是我们正在做的事情),然后用数字模拟转换器重构这个乐曲,我们可以听到欠采样高频分量的低频混叠。
为了避免这种情况,常见的做法是在丢弃不想要的样本之前,用低通滤波器去除不要的高频,如图3所示。
图3 在丢弃任何样本前对这个信号进行滤波一般而言, “向下采样”只是指丢弃样本的处理而不执行滤波的操作。
相比之下, “抽取”指的是降低采样率的整个过程,即执行滤波操作,然后丢弃样本。
实际上, “向下采样” 、“下变频”和“抽取”往往交替使用。
“抽取因子”是指输入采样率与输出采样率之比。
通常用字母M来表示。
在上面的例子中,输入速率是输出速率的4倍,所以M=4。
向上采样和内插现在考虑的情况是,我们希望提高采样率。
这样做的原因是为了使系统的另一部分与信号运行在更高的采样速率。
假设我们从一个信号开始,即原来以我们称为fHz的某个频率进行采样的信号,如图4所示。
图4 采样率为f Hz的原始信号现在假设我们要增加采样率为原来频率的4倍。
我们开始在原始样本之间插入零值样本,以提高采样率,如图5所示。
图5 用零值样本对原始信号进行扩充但现在有一个问题,因为新的零值样品添加了不要的频谱分量至信号。
为了解决此问题,我们对这个新的信号进行了滤波,除去了不想要的分量,产生了更合适的采样值,如图6所示。
图6采样率为4倍 fHz的最终信号从技术上讲, “ 向上采样 ”只是指插入零值样本的过程。
相比之下, “内插”指的是增加采样率的整个过程,即插入零值样本,然后进行滤波操作1。
实际上, “向上采样 ”、“向上转换”和“内插”往往交替使用。
“内插因子”指的是输出采样率对输入采样率的比例。
这通常用字母L来表示。
在上面的例子中,输出速率4倍于输入速率,因此,L = 4 。
这个过程的图形说明参见图7。
图7 插入零值样本后对这个信号进行滤波重采样前面的讨论中,应该指出的是,抽取和内插因子可以假设为只有整数值。
也就是说,我们只可以抽取或内插整数因子,而不是分数因子。
例如,如果进行抽取,我们只能丢弃整数的样本(2个中的1个、3个中的1个、3个中的2个、3个4个中的3个,等等)。
假设我们要修改信号的采样率,以便在两个子系统之间进行接口。
如果子系统的采样率的比率是一个整数值,那么我们只需要执行抽取或内插。
但是,如果采样率的比率是一个分数值,那么我们需要进行抽取和内插的组合,这样的过程称之为重采样。
例如,如果用2.5因子进行重采样,首先我们用插值因子为5 ,然后用抽取因子2产生输出对输入采样率为5/2 = 2.5的采样率,如图8所示。
图8 重采样(L= 5、M= 2 )在实践中,如图8所示的内插和抽取滤波器将组合在一起。
术语“重采样因子”是指输出采样率和输入采样率之间的比例。
不考虑涉及的频率,这可以表示为内插和抽取因子L/M之间的比例,在上面的例子中就是5/2 = 2.5。
作为另一个例子,考虑重采样专业音频信号的过程,采样率为48千赫,对于消费者的音频设备,需要的采样率为44.1千赫。
在这种情况下,重采样因子等于输出速率对输入速率之比: 44.1 kHz /48 kHz = 0.91875 。
看看另一种方法,采样速率必须由48,000Hz改变到44100Hz,这意味着输入输出比为44100/48,000 = = 441 / 480 = 147 / 160。
由于在147和160中没有公共的因子,我们只好就此止步,这意味着我们需要的内插因子为147 ,然后抽取因子为160,如图9所示。
图9 对商业音频重采样(L= 147、M= 160 )再次说明,重采样因子可表示为内插和抽取因子L/M之间的比例,就是147/160 =0.91875 。
毫不意外,这正是我们得到的与输入和输出采样率的比例完全相同的值,因为所需的内插和抽取因子源于这些比率。
介绍FIR滤波器有两种基本类型的数字滤波器:有限脉冲响应( FIR )和无限脉冲响应( IIR)。
IIR滤波器使用反馈,而且往往是模仿传统的模拟滤波器的响应。
反馈的用途意味着他们的脉冲响应是递归的,并延伸到无限的时段。
虽然可以用比FIR滤波器更少的计算来实施IIR滤波器,IIR滤波器可能有稳定性的问题,他们可能与用FIR滤波器完成的性能不匹配。
相比之下, FIR滤波器没有反馈,这意味着它的脉冲响应在一个有限的时间范围之内。
FIR滤波器拥有优于IIR滤波器的几个优点,其中包括一个事实,即在整个频谱范围,他们有完全恒定的群时延,在所有频率范围内,不论滤波器的大小,他们是完全稳定的。
通用FIR滤波器的图形表示如图10所示。
在这种情况下,输入样本xn通过一系列的缓冲寄存器(这些都标记为z-1,对应延时单元的Z变换)。
图10 经典FIR滤波器的通用表示滤波器的工作原理是用一系列的常数(称为抽头系数)乘以一系列最新的n个数据采样,并对所得到的数组的单元进行求和。
通过改变系数和滤波器抽头数目的加权(值),FIR滤波器实际上可实现几乎任何所需的频率响应特性。
问题是FIR滤波器可能需要大量的抽头(有时数百个),以实现其预定的目标。
每一个抽头需要消耗逻辑资源的乘法器累加器( Mac )单元。
另外在每个时钟,每个抽头执行消耗功率2的乘法和加操作。
用多相FIR滤波器进行抽取多相滤波器的基本概念是把FIR滤波器分割成若干较小的单元,然后组合这些单元的结果。
首先,让我们考虑一个基于常规8抽头FIR滤波器的抽取子系统的符号表示,如图11所示(为了使用这些例子,我们假设抽取因子为M = 4 )。
图11 基于传统的8抽头FIR滤波器的抽取器的符号表示现在让我们假设主时钟正在以某一频率fHz运行。
像往常一样,在滤波操作之后任何不要的样本将被丢弃,但这样做是低效率的,因为这意味着是以完全的时钟频率在进行滤波。
用另一种方式来看这种操作,即在每个时钟时刻,每个抽头级执行乘法和加运算。
相比多相实现的情况,我们可以将原来的8抽头FIR滤波器分为四个2抽头子滤波器,如图12所示。
图12 基于4 × 2抽头多相滤波器的抽取器的符号表示假设同样的主时钟以f Hz的频率运行,我们可以想象输入数据流被送入一个旋转开关(当然,这可用标准的逻辑技术来实现)。
第一个数据值送入第一个子滤波器;第二个数据值送入第二个子滤波器;第三个数据值送入第三个子滤波器;第四个数据值送入第四个子滤波器。
然后,我们进行“循环”操作,以便第五个数据值送入第一个子滤波器;第六个数据值送入第二个子滤波器;等等。
使用子滤波器减少了可能的饱和/溢出(发生任何饱和/溢出通常只需要在最后的函数求和时进行处理)。
另外,使用子滤波器具有一个直接有效的优点,因为在执行滤波操作之前,我们有效地“抽取”了数据。
这也意味着,我们的四个子滤波器中的每个都能有效地以F ÷ 4Hz的频率运行,如图13所示。
图13 4 × 2抽头多相滤波器的运行情况除了任何寄存器和一般用途的逻辑,常规8抽头FIR滤波器中的每个抽头包含一个乘法器和一个加法器,当然为我们提供了总共8个乘法器和8个加法器。
滤波器之后需要一些额外的逻辑,以便丢弃任何不想要的样本。
同样,在我们最初的4 × 2抽头多相实现中的每一个抽头含有一个乘法器和一个加法器,再次为我们提供了总共8个乘法器和8个加法器。
在多相实现中,需要实现“旋转开关”送入滤波器的逻辑数量大约相当于在常规8抽头FIR滤波器中丢弃不要的样本所需的逻辑。
当然,多相实现还需要一些额外的逻辑和一个加法器累加来自四个子滤波器的结果。
因此,最终的结果是,最初的多相实现需要比传统的8抽头FIR滤波器更多一点的逻辑。
然而,对于传统的8位FIR滤波器,在每个时钟都要执行8次乘和8次加。
相比最初的多相实现的情况,在任何主时钟时刻,只有一个子滤波器是工作的。
由于在这个例子中每个子滤波器含有两个抽头,这意味着这个功能的滤波器部分在每个时钟只进行两次乘法和两次加法。
当然,从四个子滤波器收集结果的求和功能还必须在每个主时钟进行加(在每4时钟周期开始时,这个累加器清零;它从四个子滤波器收集结果; 在每4时钟周期结束时,它产生一个新的值)。
这意味着,最初的多相实现的每个子滤波器有效地以常规8抽头FIR滤波器1/ 4的频率运行。
反过来,这意味着最初多相实现只在每个主时钟进行两次乘法和三次加法(包括加法器的加操作),从而大大节省了功耗。