Simulink软件平台仿真LUTs技术实现NCOs

发布者:清新天空最新更新时间:2010-04-14 来源: Chinaaet关键字:Simulink  仿真  LUTs技术  NCOs 手机看文章 扫描二维码
随时随地手机看文章

  数控振荡器(Numerically Controlled Oscillators,NCOs)是软件无线电的重要组成部分和研究内容,它广泛应用于DSP中,如通信领域的信号调制解调,蜂窝电话、基站、雷达系统、数字电视、GPS和无线LAN等。

  NCOs可以通过各种方式实现:无限冲击响应滤波器(IIR filters),坐标旋转(CORDIC rotations),查找表技术(Lookup Tables,LUTs)。本文在Simulink软件平台仿真LUTs技术实现NCOs时,累加器步长、累加器控制字等参数对NCOs性能的影响。重点讨论NCOs的频谱纯度问题,即如何抑制杂波分量,影响频谱纯度的因素以及如何提高无杂散动态范围(SpuriousFree Dynamic Range,SFDR)。

  1 NCOs的工作原理

  NCOs主要包括一个正弦波样点查找表(LUTs)和一个产生地址的累加器,如图1所示。

  图1中n为累加器产生的地址位数,则LUTs有N=2n个输入。LUTs的输出分辨率/精度为L位(该参数与n有关),其工作原理见图2。

  由图2可以看出,累加器产生地址码,循环从LUTs地址中取数正弦波的样点数据,其取数的速率越快,即步长μ越大,则产生的正弦波频率越高。

  设步长参数μ由式(1)决定:

  式中:N为LUTs的样点数据总量;fs为系统采样频率;fd为期望的正弦波的频率。

  例如,累加器地址数据线宽度为8 b,则对应的LUTs的数据样点数为N=2n=256。如果采样频率为10 MHz,期望频率为2.5 MHz,则步长为:

[page]

  2 提高NCOs的无杂散动态范围

  SFDR是无线系统设计中需要考虑的重要参数。如果振荡器产生的信号包含过多的杂波(Spurs)频率,这些干扰成分会使信号混频的质量变差,特别是当杂波频率接近中心频率时,在后续的电路中很难去除。

  2.1 相位截断对频谱纯度的影响

  当LUT输出正弦波样点数据时,只有整数部分可以用于输出,而小数部分则被忽略,这导致输出相位部分有截断。相位截断(Phase Truncation)的情况决定了产生的正弦波的纯度。如:当采样频率为100 kHz时,NCOs输出的期望频率为24.3 kHz,其NCOs设置参数见表1。从表1中可以看出,LUTs的分辨率为32 b,则可以忽略幅度值量化的影响,而杂波主要是由相位截断产生的。

  2.2  幅度值量化对频谱纯度的影响

  将LUT的深度增大为12 b(4 096),则可以忽略相位舍去对频谱纯度的影响,而杂波主要由幅度值的量化(Amplitude Quantization)产生。同样,当采样频率为100 kHz时,NCOs输出的期望频率24.3 kHz,NCOs设置参数见表2。

  由图3,图4可以看出,相位截断产生的杂波远大于幅度值量化产生的杂波,是杂波的主要来源。[page]

  由以上的仿真波形可以看出,提高整数位的位数,虽然可以使相位截断小,频率杂波少,但要使用较大的LUTs容量。如整数位增加一位,即由n位增加n+1位,则LUTs的数据量会增加一倍。

  提高小数位的位数可以有较高的步长精度和频率分辨率,但需要更加多的累加器。如小数部分由b位增加到b+1位,虽然对LUTs无影响,但将累加器的加法器和延迟器分别增加1位,从而影响NCOs的输出频率。

  提高LUTs输出分辨率对正弦波样点的幅度值量化影响小,但需要更多的LUTs存储器。如LUTs输出分辨率增加1位,由L位增加L+1 位,LUTs所需的存储容量扩大2n。

  可见,采用传统的设计方法要达到无相位截断,则需要LUT的字长非常长,占用资源非常大,导致NCOs的成本很高,而这在实际实现过程中是不可行的。

  2.3 相位加抖提高SFDR

  通过以上的仿真研究可看出,虽然可以通过增加整数位和提高LUTs输出分辨率的方法来提高SFDR,但因它们要占用大量的资源,因而不是经济有效的方法。为有效解决杂波问题,必须考虑其他有效的方法。目前的主要技术手段有:

  幅度加抖(Amplitude Dithering):在LUT的输出中加入低水平的噪声,以打散原有幅度值量化的噪声结构。

  相位加抖(Phase Dithering):在累加器的输出中加入低水平的噪声,以打散原有相位截断的噪声结构。

  带通滤波(Bandpass Filtering):在振荡器输出端加滤波器滤出毛刺频率。但该方法很难滤出靠近中心频率的杂波。

  以上的仿真已经证明,相位截断对SFDR的影响量是最大的,是提高SFDR的首选方法。

  相位加抖的数学模型如图5所示。在LUTs地址字截断之前,在累加器的输出中加入低水平的伪随机噪声(A Low-level of Pseudo Random Noise),其中抖动的位数d是可变的。

  抖动(Dither)可以通过线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)来实现,见图6。LFSR有带M个抽头的移位寄存器,抽头反馈通常由或门构成,以产生一个周期为2M-1的序列。因此,长伪随机噪声序列(Long Pseudo Random Noise Sequences)可以用很少的硬件资源实现。例如,一个由12个元件构成的LFSR能够生成周期为4 095的PN序列。LFSR可以由M个D触发器和很少的组合器件构成。[page]

  来自某位的抽头,可以组合为一个矢量生成该位的抖动。实际实现时,可以采用较长的移位寄存器。移位寄存器越长,则输出的抖动越接近随机的性质。

  下面分析相位加抖数据位数d对SFDR的影响。图7~图9分别为d=b-3,b+3,b三种情况的仿真波形,其中b为累加器控制字小数部分的位数。

  加抖位数d=6-3时,仅对整数位产生0~1/8的影响。此时将SFDR提高了1 dB。可见,增加过少位数的抖动,仅对相位的截断有很小的影响,对改变杂波极为有限。

  加抖位数d=b+3时,可以对整数位产生0~8的影响。此时将SFDR提高了9 dB。但同时可以看到,由于增加抖动的位数过多,虽然消除了杂波,但同时也提高了整个频谱的噪声电平。

  加抖位数d=b时,可以对整个整数位产生0~1影响。此时将SFDR提高到106 dB。同时可以看到,由于增加抖动的位数恰当,既消除了杂波,又提高了整个频谱的噪声电平。

  在用FPGA实现NCOs时,通过相位加噪可以提高整个输出频率的SFDR性能。但从图3,图6比较可以看出,在整个电路中串入了加法器,且关键路径包含了两个部分Dithering和NCOs的加法器,因而限制了整个设计的最大时钟频率。

  3 结  语

  NCOs在数字通讯中起着非常重要的作用,在FPGA实现时,它可以由一个累加器和一个输出频率由步长定义的正弦波查找表的数字硬件构成。 SFDR是表明合成正弦波谱纯度性能的参数。仿真证明,在NCOs累加器输出的相位中加入抖动,以提高SFDR性能,是一种简单有效、低成本的方法。

关键字:Simulink  仿真  LUTs技术  NCOs 引用地址:Simulink软件平台仿真LUTs技术实现NCOs

上一篇:VHDL设计中信号与变量问题的研究
下一篇:Matlab与DSP混合实现无传感器矢量控制

推荐阅读最新更新时间:2024-05-02 21:02

一种新的模糊PID控制在电机软启动中的仿真
摘要:由于异步电机软启动过程中非线性时变的特点,采用传统的PID控制方法难以达到理想的控制效果。为了大大减小交流电机启动过程中的电流,在此结合智能控制理论,设计出一种新型的模糊PID软启动控制器。通过对电流大小进行控制,优化了系统的控制效果,实现了交流电机恒流软启动控制。最后通过Matlab仿真,证实了该系统具有良好的动静态性能,达到了平稳启动的目的,具有有效性和广泛应用性。 关键词:软启动;模糊控制;异步电动机;Matlab 0 引言 异步电机以其优良的性能及无需维护的特点,在工农业中得到广泛应用。三相异步电机的启动方法很多,比如直接启动、自耦降压启动、延边三角形启动等等。对于风机泵类等恒功率负载,如果在额定电压下直接启动三
[工业控制]
一种新的模糊PID控制在电机软启动中的<font color='red'>仿真</font>
TMS320F240的IDE接口仿真器设计
  随着航空电子系统数字化的发展,机载嵌入式计算机逐步摆脱了“纯粹嵌入”时代,开始以主要控制角色而显露头脚。其存储系统也和地面计算机系统一样,提出了“海量存储”的要求。借鉴和使用IDE接品时一条重要途径。但在调试时一般缺乏IDE接口主方(Host)控制器。PC机虽然带有两个标准的集成在主板上的IDE接口,但在目前的Widows系统下却是透明的,无法在硬件调试级进行控制驱动。“工欲善其事,必先利其器”。为解决调试工具,笔者在此前自己动手,设计了一个IDE接口仿真器。硬件极其简练实用,软件精巧灵活。介绍出来,与大家切磋。   1 仿真器硬件设计   众所周知,IDE/ATA接口是16位总线,映像在主机的I/O空间,由主机对接口内的
[嵌入式]
IAR嵌入式解决方案发布全新版本,增强云调试和仿真功能,推动下一代嵌入式软件开发
通过先进的Arm虚拟硬件集成和Linux系统中增强的基于云的协作,赋能下一代嵌入式软件开发 瑞典乌普萨拉,2023年12月7日 - 嵌入式开发软件和服务的全球领导者IAR宣布推出旗舰产品IAR Embedded Workbench for Arm及IAR Build Tools for Arm最新9.50版本。此次更新在嵌入式软件开发领域实现了显著进展,引入了一系列增强功能,例如在Linux上进行先进的云调试和仿真。这次更新还包括Arm虚拟硬件(AVH)的集成和针对Linux的增强的IAR C-SPY调试器和模拟器,进一步彰显了我们为满足嵌入式系统行业不断演进的需求而致力于提供高效解决方案的承诺。 新版本的特色功能:
[嵌入式]
IAR嵌入式解决方案发布全新版本,增强云调试和<font color='red'>仿真</font>功能,推动下一代嵌入式软件开发
51单片机心形流水和数码管同步效果显示仿真与程序
LED流水和数码管流水效果 独立 进行,实现方法包里有代码,互相交流。 仿真原理图: 单片机源程序如下: #include reg51.h #include intrins.h #define Number 50 //数码管数字长亮时间,t=Number*50ms=2500ms #define Speed 6 //数码管数字显示流动速度,t=Speed*50ms=300ms #define time100 100 //延时函数时间:t=time100=100ms #define time1000 1000 //延时函数时间:t=time1000=1000ms #define uchar unsigned
[单片机]
51单片机心形流水和数码管同步效果显示<font color='red'>仿真</font>与程序
USB AVR JTAGICE MKII-CN仿真器使用
1.安装 仿真器: 首先,安装AVRStudio4.19或其他版本,成功安装后,将MKIIusb连接到电脑上,会自动识别。如果不识别,应该是AVR Studio安装时,AVR Jungo USB控件被拦截没有安装成功。重新完整安装AVR Studio即可。我第一次安装时,显示安装不成功,在设备管理器中,将其卸载,重新将MKII的USB插上,自动识别,并安装成功了。 2.使用 MKII有ISP和JTAG两种烧写形式,默认情况为JTAG形式。使用方法和普通的AVR JTAG相似,具体见产品说明书。
[单片机]
PIC单片机电子钟程序+仿真电路
#include pic.h #define uchar unsigned char #define uint unsigned int #define CS RA5 uchar secs = 0; uchar minutes = 0; uchar hours = 0; unsigned char disbuf = {1,2,3,4,5,6,7,8}; void delay_ms(uint n) { uchar i; while(n--) { for(i=0;i 100;i++); } } void Port_Initial(void) { TRISC = 0xD7;
[单片机]
PIC单片机电子钟程序+<font color='red'>仿真</font>电路
对示波器测量正弦波幅值和相位仿真实验
在博文 使用数字示波器DS6104测量交流信号的幅值和相位 中对于使用示波器测量正弦交流信号的幅值和相位进行了分析和实验研究。但是对测量出的幅值和相位结果中的误差随着示波器的时基( time base )不同而改变的原因,究竟是在博文第二部分分析中理论上存在的误差引起的,还是由于示波器本身在同步、AD位数精度、数据处理窗口方面引起的呢? 关于这个问题可以通过计算机仿真实验,对采集过程使用仿真来验证。 01数据生成和计算方法 在实验中,根据DS6104示波器的参数,对于采集到的数据做一下假设: 数据点个数N = 1400 N = 1400N=1400,时基T s T_sT s 对应100个数据采样点。信号的频率f
[测试测量]
对示波器测量正弦波幅值和相位<font color='red'>仿真</font>实验
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved