DSP实验报告4剖析.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP实验报告

院系:哈尔滨理工大学荣成校区

专业:电子信息工程

学号: 1230160101 姓名:董小天

日期: 2015年6月16日

实验四无限冲击相应滤波器(IIR)算法实验

一、实验目的

1、熟悉设计IIR数字滤波器的原理与方法

2、掌握数字滤波器的计算机仿真方法;

3、通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。

二、实验设备

计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。

三、实验原理

1、无限冲击响数字滤波器的基础理论;

2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器);

3、双线性变换的设计原理。

四、实验步骤

1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识;

2、阅读本实验所提供的样例子程序;

3、运行CCS软件,对样例程序进行跟踪,分析结果;

4、填写实验报告。

5、样例程序实验操作说明

A.实验前准备

①实验箱和CPU板设置:SW2的2、4置ON,1、3置OFF;S2全部置ON;JP3开关的3、6位置ON,其余置off,S23全部置OFF。

②用导线连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”;

B.实验

启动CCS 3.1,打开工程文件exp03_iir。在程序中m=0处设置断点,运行

打开一个图形观察窗口;设置双综观察在起始地址x、y,数值变化为256,32位浮点型变量。

五、实验结果及代码

实验代码

#define UCHAR unsigned char

#define UINT16 unsigned int

#define UINT32 unsigned long

#define TRUE 1

#define FALSE 0

//---------------------------------------------------------

//----------------定义寄存器地址--------------

#define IODIR_ADDR 0x3400

#define IODATA_ADDR 0x3401

//---------------定义寄存器操作--------------

#define IODIR *(ioport unsigned int *)IODIR_ADDR

#define IODATA *(ioport unsigned int *)IODATA_ADDR

#define IER0 (*(volatile unsigned int*)0x0000) //Interrupt Enable Register 0 #define IFR0 (*(volatile unsigned int*)0x0001) //Interrupt Flag Register 0 #define IER1 (*(volatile unsigned int*)0x0045) //Interrupt Enable Register 1 #define IFR1 (*(volatile unsigned int*)0x0046) //Interrupt Flag Register 1

#define AD_Addr 0x20008

#define AD_in (*(unsigned int *)AD_Addr) //AD输入

//----------------------------------------------------------

/* 全局变量定义*/

//---------------------------------------------------------

#define Len 256

#define FLen 51

#define pi 3.1415927

//-----------------------------------------------------------

void int2ReadData();

interrupt void int1_isr();

void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[]);

//-----------------------------------------------------------

double fs,nlpass,nlstop,nhpass,nhstop,a[3],b[3],x[Len],y[Len];

int in_x[Len];

int m = 0;

int intnum = 0;

double xmean=0;

int n=0;

int i,j,p,k=0;

double w2,w1,w0;

//--------------------------------------------------------------------

// 函数名称:void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[])

// 函数说明:

// 输入参数:

// 输出参数: 无

//--------------------------------------------------------------------

void biir2lpdes(double fs, double nlpass, double nlstop, double a[], double b[]) {

int i,u,v;

double wp,omp,gsa,t;

wp=nlpass*2*pi;

omp=tan(wp/2.0);

gsa=omp*omp;

for (i=0; i<=2; i++)

{

u=i%2;

v=i-1;

a[i]=gsa*pow(2,u)-sqrt(2)*omp*v+pow(-2,u);

}

相关文档
最新文档