保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

数字滤波器的MATLAB设计与DSP上的实现


fn=[1000,1375,3625,4000];

a=[0,1,0];

dev=[0.0005,0.05,0.0005];

阻带最小衰减60dB,再设采样频率fs=10kHz,则根据阻带最小衰减来选择凯塞(Kaiser)窗,利用MATLAB的求阶函数和FIR滤波器的设计函数,可以快速地设计出所需的数字滤波器。这两个设计函数如下:

[N,Wn,beta,ftype]=kaiserord(fn,a,dev,fs);

b=fir1(n,Wn,ftype,Kaiser(n+1,beta);

最后,利用的滤波器分析函数freqz分析所设计出的滤波器的幅频特性和相频特性,并用图形显示函数plot将它们显示出来,如图1所示。由图1可见,设计结果满足指标要求。
(凹丫丫范文网fanwen.oyaya.net收集整理)
2 数字滤波器的实现方法

数字滤波器的实现方法一般有以下几种。

①采用加法器、乘法器、延时器设计专用的滤波电路。

②在通用计算机系统中加上专用的加速处理机设计实现。

③用通用的可编程DSP芯片实现。

④用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现。这种芯片将相应的滤波算法在芯片内部用硬件实现,无需进行编程。

⑤采用FPGA/CPLD设计实现。

在上述几种方法中,第②种方法的缺点是速度较慢,一般可用于DSP算法的模拟。第①、④种方法专用性强,应用受到很大的限制。第③、⑤种方法都可以通过编程来实现各种数字滤波,但是,第③种因有专用的指令来实现滤波运算编程实现容易,而第⑤种方法编程实现较为困难。

3 数字滤波器的DSP实现

DSP是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器。由于它由具有丰富的硬件资源、改进的哈佛结构、高速数据处理能力和强大的指令系统,而在通信、航空、航天、雷达、工业控制、网络及家用电器等各个领域得到广泛应用。DSP分为定点和浮点两种,下面以定点DSP芯片为例,讨论FIR滤波器实现的几个关键问题。所讨论的这些问题,在DSP系统设计中有实际的参考和应用价值。

3.1 定点数的定标

在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。在滤波器的实现过程中,DSP所要处理的数可能是整数,也可能是小数或混合小数;然而,DSP在执行算术运算指令时,并不知道当前所处理的数据是整数还是小数,更不能指出小数点的位置在哪里。因此,在编程时必须指定一个数的小数点处于哪一位,这就是定标。通过定标,可以在16位数的不同位置上确定小数点,从而表示出一个范围大小不同且精度也不同的小数。例如:在Q15中,1080H=0.12890625;在Q0时,1080H=4224。

在使用定点DSP时,如何选择合适的Q值是一个关键性问题。就DSP运算的处理过程来说,实际参与运算的都是变量,有的是未知的,有的则在运算过程中不断改变数值,但它们在一实际工程环境中作为一个物理参量而言都有一定的动态范围。只要个动态范围确定了,Q值也就确定了。因此,在程序设计前,首先要通过细致和严谨的分析,找出参与运算的所有变量的变化范围,充分估计运算中可能出现的各种情况,然后确定采用何种定标标准才能保证运算结果正确可靠。这里,所讨论的理论分析法和统计分析法确定变量绝对值最大值|max|,然后根据|max|再确定Q值。但是,DSP操作过程中的意外情况是无法避免的,即使采用统计分析法也不可能涉及到所有情况。因此,在定点运算过程中应该采取一些判断和保护措施(特别是在定点加法中)。另外,在数字信号处理中的大量运算是乘法和累加,应尽量采用纯整数或纯小数运算,即全部变量都用Q0或Q15格式表示。这样做的好处是操作简单、编程方便。只有当纯整数或纯小数运算不能满足变量的动态范围和精度要求时,才采用混合小数表示法进行定点运算。

3.2 误差问题

《数字滤波器的MATLAB设计与DSP上的实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142098.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。