文档库 最新最全的文档下载
当前位置:文档库 › DSP上机初始化程序

DSP上机初始化程序

DSP上机初始化程序
DSP上机初始化程序

SCI_FLAG .usect ".data0",1

CAN_FLAG .usect ".data0",1

TXD_PTR .usect ".data0",8

RXD_PTR .usect ".data0",8

DP_CAN .set 226

DP_CAN2 .set 228

DP_EVA .set 232

DP_EVB .set 234

DP_USER .set 5

;.usect ".data0",1

.include "F2407REGS.H"

.def _c_int0

;建立中断向量表

.sect ".vectors" ;定义主向量段

RSVECT B _c_int0 ;PM 0 复位向量

INT1 B GISR1 ;PM 2 中断优先级1

INT2 B GISR2 ;PM 4 中断优先级2

INT3 B GISR3 ;PM 6 中断优先级3

INT4 B GISR4 ;PM 8 中断优先级4

INT5 B PHANTOM ;PM A 中断优先级5

INT6 B PHANTOM ;PM C 中断优先级6 RESERVED B PHANTOM ;PM E (保留位)

SW_INT8 B PHANTOM ;PM 10 用户定义软件中断-SW_INT9 B PHANTOM ;PM 12

SW_INT10 B PHANTOM ;PM 14

SW_INT11 B PHANTOM ;PM 16

SW_INT12 B PHANTOM ;PM 18

SW_INT13 B PHANTOM ;PM 1A

SW_INT14 B PHANTOM ;PM 1C

SW_INT15 B PHANTOM ;PM 1E

SW_INT16 B PHANTOM ;PM 20

TRAP B PHANTOM ;PM 22

NMI B PHANTOM ;PM 24

EMU_TRAP B PHANTOM ;PM 26

SW_INT20 B PHANTOM ;PM 28

SW_INT21 B PHANTOM ;PM 2A

SW_INT22 B PHANTOM ;PM 2C

SW_INT23 B PHANTOM ;PM 2E

SW_INT24 B PHANTOM ;PM 30

SW_INT25 B PHANTOM ;PM 32

SW_INT26 B PHANTOM ;PM 34

SW_INT27 B PHANTOM ;PM 36

SW_INT28 B PHANTOM ;PM 38

SW_INT29 B PHANTOM ;PM 3A

SW_INT30 B PHANTOM ;PM 3C

SW_INT31 B PHANTOM ;PM 3E ·;中断子向量入口定义pvecs

.sect “.pvecs” ;定义子向量段PVECTORS B PHANTOM ;假中断PIV=0000H

B XINT1_ISR ;外部中断1,PIV=0001H

B PHANTOM

B PHANTOM

B PHANTOM

B SPIINT_ISR ;SPI中断,PIV=0005H

B RXINT_ISR ;SCI接收中断,PIV=0006H

B TXINT_ISR ;SCI发送中断,PIV=0007H

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B XINT2_ISR ;外部中断2,PIV=11H

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B CANMBINT_SIR ;CAN邮箱中断,PIV=40H

B PHANTOM; PANTOM都只是假中断,只是为了保证系统;中断子向量入口定义pvecs

.sect “.pvecs” ;定义子向量段PVECTORS B PHANTOM ;假中断PIV=0000H

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B T1CINT_ISR ;定时器1比较中断,PIV=28H B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B T3CINT_ISR ;定时器3比较中断,PIV=30H B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM ; PANTOM都只是假中断,只是为了保证系统;中断子向量入口定义pvecs

.sect “.pvecs” ;定义子向量段

PVECTORS B PHANTOM ;假中断PIV=0000H

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B T2CINT_ISR ;定时器2比较中断,PIV=2CH

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B T4CINT_ISR ;定时器4比较中断,PIV=3AH

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM; PANTOM都只是假中断,只是为了保证系统

;中断子向量入口定义pvecs

.sect “.pvecs” ;定义子向量段PVECTORS B PHANTOM ;假中断PIV=0000H

B XINT1_ISR ;外部中断1,PIV=0001H

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B CAP1INT_ISR ;捕获1中断,PIV=33H B CAP2INT_ISR ;捕获1中断,PIV=34H B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM

B PHANTOM; PANTOM都只是假中断,只是为了保证系统

;按照可控方式进行处理

;(2)主程序:

.text

_c_int0:

SPLK #81FEH,SCSR1; 时钟4倍频,CLKIN=6MHz,CLKOUT=24MHz CALL SPI_INT;调用SPI初始化

CALL SCI_INT;调用SCI初始化

CALL CAN_INT;调用CAN初始化

CALL CAP_INT;调用CAP初始化

CALL T1_4_INT;调用T1_4初始化

CALL INT_INT;调用中断初始化

SPI_INT:

LDP #DP_PF2 ;指向数据存储区7080H-70FFH

LACL MCRB

OR #00014H

SACL MCRB ;配置SPI的SPISIMO,SPICLK为特殊功能引

LACL MCRB

AND #0FFF7H

SACL MCRB ;SPIMISO为通用IO( IOPC3)

LDP #DP_PF1 ;指向数据存储区7000H-707FH

SPLK #0007H,SPICCR;复位SPI,字符位数8位

SPLK #0007H,SPICTL;主模式,无延时上升沿,允许中断

SPLK #0017H,SPIPRI;高优先级中断

SPLK #0299H,SPIBRR;波特率位80kbps

SPLK #00CFH,SPICCR;初始化结束

;LDP #DP_USER

;SPLK #00H,SPI_DATA

;SPLK #00H,SPI_FLAG

;SPLK #DACOUT,SPI_CON

RET

SCI_INT:

LDP #0E1H

LACL MCRA

OR #03H ;配置引脚为特殊功能

SACL MCRA

LDP #DP_PF1

SPLK #0067H,SCICCR ;空闲线模式,1位停止位,8位字符传送

SPLK #0007H,SCICTL1 ;接收又能发送数据

SPLK #0003H,SCICTL2 ;允许发送和接收中断

SPLK #0001H,SCIHBAUD

SPLK #009BH,SCILBAUD;波特率为19200bps

SPLK #0004H,SCITXBUF;高优先级

SPLK #0027H,SCICTL1 ;串口初始化完成

LAR AR1,#SCIRXBUF ;接收缓冲寄存器地址

LAR AR2,#SCITXBUF ;发送缓冲器寄存器地址

LAR AR3,#RXD_PTR ;接收的数据指针

LAR AR4,#TXD_PTR ;发送的数据指针

LDP #0

SPLK #0001h,IMR ;允许INT1中断

SPLK #0FFFFh,IFR ;请所有中断

CLRC INTM ;开总中断

RET

CAN_INT:

LDP #DP_PF2

LACL MCRB

OR #0C0H

SACL MCRB ;配置CAN引脚CANRX和CANTX为功能引脚

LDP #DP_CAN

SPLK #00C0H,MDER ;MD2=1,MD3=1,邮箱2,3为接收方式

;SPLK #FFFFH,CAN_IFR;清全部CAN中断标志

SPLK #7FFFH,LAM1_H

SPLK #0FFFFH,LAM1_L;设置邮箱的屏蔽ID寄存器

SPLK #1000H,MCR;改变配置请求

;W_CCE :BIT GSR,#04H

;BCND W_CCE,NTC

SPLK #03H,BCR2

SPLK #0033H,BCR1

LACL MCR

AND #0EFFFH ;CCR=0,配置完毕

SACL MCR

;W_NCCE :BIT GSR,#04H

;BCND W_NCCE,TC ;等待CCE=0,配置成功

LDP #DP_CAN

SPLK #00C0H,MDER

SPLK #0143H,MCR ;CDR=1,数据区改变请求

LDP #DP_CAN2

SPLK #0A447H,MSGID5H;设置邮箱5的控制字及ID

SPLK #0FFFFH,MSGID5L;IDE0,AME=0,AAM=0

SPLK #08H,MSGCTRL5;DCL=8,RTR=0数据帧

SPLK #01234H,MBX5A;邮箱5信息初始化

SPLK #02345H,MBX5B

SPLK #03456H,MBX5C

SPLK #04567H,MBX5D

;SPLK #0A447H,MSGID6H;设置邮箱6的控制字及ID

;SPLK #0FFFFH,MSGID6LL;IDE=0,AME=0,AAM=0

;SPLK #08H,MSGCTRL6;DCL=8,RTR=0数据帧

;SPLK #01234H,MBX6A;邮箱6信息初始化

;SPLK #05678H,MBX6B

;SPLK #09ABCH,MBX6C

;SPLK #0DEF0H,MBX6D

LDP #DP_CAN

SPLK #0FFFFH,CAN_IFR;清CAN全部中断标志

;SPLK #04C0,MCR ;DBO=1,CDR=0,ABO=1,STM=0

SPLK #04CH,MDER ;使能邮箱2,3

RET

CAP_INT:

LDP #DP_PF2

LACL MCRC

OR #07H

SACL MCRC

SETC INTM

LDP #DP_EVA

SPLK #042H,GPTCONA

SPLK #0,T1CNT

SPLK #0E46H,T1CON

SPLK #0FFFFH,T1PR

SPLK #00H,EVAIMRA

SPLK #00H,EVAIMRB

SPLK #2650H,CAPCONA

SPLK #03H,EVAIMRC

SPLK #0FFFFH,EVAIFRA

SPLK #0FFFFH,EVAIFRB

SPLK #0FFFFH,EVAIFRC

CLRC INTM

RET

Time_INT:

LDP #DP_EVA ;指向7400~7480H区

SPLK #0E46H,T1CON

SPLK #0042H,GPTCONA

SPLK #0EA6H,T1PR

SPLK #0AFDH,T1CMPR

SPLK #0H,T1CNT

SPLK #48H,GPTCONA

SPLK #0EA6H,T2PR

SPLK #080FH, T2CMPR

SPLK #0000H, T2CNT

;SPLK #0E46H,T2CON

SPLK #0EC6H,T2CON ; TMODE=01连续增减计数模式,TPS=110预分

;频为64TENABLE=1//定时器计数使能,TCLKS=00内部时钟

;TCLD=01比较寄存器重载条件是定时计数器

;为零或周期匹配时重载

;TECMPR=1定时器1比较使能;SELT4PR=1

;(T2的启动信号采用T1的启动信号)

SPLK #0101H,EVAIMRA ; 比较单元3中断

LDP #DP_EVB ;7500H~7580H

SPLK #1646H,T3CON ;16C6H

SPLK #0042H,GPTCONB ;4ATCOMPOE=2允许定时器比较输出,禁止计数 ;器上溢、下溢和周期匹配中断,禁止启动A/D转换器脚输出高有效。 SPLK #1D4BH,T3PR

SPLK #0753H,T3CMPR

SPLK #0000H,T3CNT

SPLK #48H,GPTCONB

SPLK #1D48H,T4PR ;设置周期寄存器,周期信号为20ms

SPLK #0D2FH,T4CMPR ;设置比较寄存器,脉宽为11ms

SPLK #0000H,T4CNT ;设置计数寄存器

SPLK #16C6H,T4CON ;16C7TMODE=10连续增计数模式,TPS=110 ;预分频为64

;TENABLE=1定时器计数使能,TCLKS=00内部时钟TCLD=01比较寄存器重载条件是定时计

;数器为零或周期匹配时重载,TECMPR=1定时器4比较使能,SELT4PR=1(T4的启动信号采用T3 ;的启动信号)捕获逻辑:允许捕捉单元1和2工作,禁止捕捉单元3,捕捉上升沿事件,选;择T3定时器为时基,允许中断低优先级.

RET

;外部中断初始化

INT_INT:

LDP #DP_PF1

LACL MCRA

OR #04H

SACL MCRA

SPLK #05H, XINT1CR

LACC PIVR,1

ADD #PVECTORS

BACC

LACL MCRB

OR #0100H

SACL MCRB

SPLK #01H,XINT2CR

LACC PIVR,1

ADD #PVECTORS

BACC

RET

;中断优先级

GISR1: ;中断优先级INT1 ;LACC 0002H;

LDP #0E0H

LACC PIVR,1

ADD #PVECTORS

BACC ;返回

GISR2: ;中断优先级INT2 LDP #0E0H

LACC PIVR,1

ADD #PVECTORS

BACC ;返回

GISR3: ;中断优先级INT3 LDP #0E0H

LACC PIVR,1

ADD #PVECTORS

BACC ;返回

GISR4: ;中断优先级INT3 LDP #0E0H

LACC PIVR,1

ADD #PVECTORS

BACC ;返回

;GISR2: ;中断优先级INT2 ;LACC 0004H;

;BACC;

;GISR3: ;中断优先级INT3 ; LACC 0006H;

; BACC;

;GISR4: ;中断优先级INT4 ;LACC 0008H;

;BACC;

GISR1_RET

CLRC INTM

RET

GISR2_RET

CLRC INTM

RET

GISR3_RET

CLRC INTM

RET

GISR4_RET

CLRC INTM

RET

;假中断程序PHANTOM

KICK_DOG

RET

END

数字信号处理实验二报告

实验二 IIR数字滤波器设计及软件实现 1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 2.实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 3. 实验内容及步骤 (1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。 图1 三路调幅信号st的时域波形和幅频特性曲线 (2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为

数字信号处理实验程序2.

2.1 clc close all; n=0:15; p=8;q=2; x=exp(-(n-p.^2/q; figure(1; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=2'; xk1=fft(x,16; q=4; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=8,q=4'; q=8; x=exp(-(n-p.^2/q;

xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';%时域特性figure(2; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=2'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=8,q=4'; subplot(3,1,3; stem(n,abs(xk3; title('exp(-(n-p^2/q,p=8,q=8';%频域特性%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% p=8;q=8; figure(3; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';

xk1=fft(x,16; p=13; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=13,q=8'; p=14; x=exp(-(n-p.^2/q; xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=14,q=8';%时域特性figure(4; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=8'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=13,q=8'; subplot(3,1,3;

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验及参考程序

数字信号处理实验实验一离散时间信号与系统及MA TLAB实现 1.单位冲激信号: n = -5:5; x = (n==0); subplot(122); stem(n, x); 2.单位阶跃信号: x=zeros(1,11); n0=0; n1=-5; n2=5; n = n1:n2; x(:,n+6) = ((n-n0)>=0); stem(n,x); 3.正弦序列: n = 0:1/3200:1/100; x=3*sin(200*pi*n+1.2); stem(n,x); 4.指数序列 n = 0:1/2:10; x1= 3*(0.7.^n); x2=3*exp((0.7+j*314)*n); subplot(221); stem(n,x1); subplot(222); stem(n,x2); 5.信号延迟 n=0:20; Y1=sin(100*n); Y2=sin(100*(n-3)); subplot(221); stem(n,Y1); subplot(222); stem(n,Y2);

6.信号相加 X1=[2 0.5 0.9 1 0 0 0 0]; X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; X=X1+X2; stem(X); 7.信号翻转 X1=[2 0.5 0.9 1]; n=1:4; X2=X1(5-n); subplot(221); stem(n,X1); subplot(222); stem(n,X2); 8.用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 9.用MA TLAB计算差分方程 当输入序列为时的输出结果。 N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n'); ylabel('幅度') 10.冲激响应impz N=64; a=[0.8 -0.44 0.36 0.22];

数字信号处理上机实验代码

文件名:tstem.m(实验一、二需要) 程序: f unction tstem(xn,yn) %时域序列绘图函数 %xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1; stem(n,xn,'.'); xlabel('n');ylabel('yn'); axis([0,n(end),min(xn),1.2*max(xn)]); 文件名:tplot.m(实验一、四需要) 程序: function tplot(xn,T,yn) %时域序列连续曲线绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) %T为采样间隔 n=0;length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]); 文件名:myplot.m(实验一、四需要)

%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。function myplot(B,A) %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000) m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); 文件名:mstem.m(实验一、三需要) 程序: function mstem(Xk) %mstem(Xk)绘制频域采样序列向量Xk的幅频特性图 M=length(Xk); k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值) stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(Xk))]); 文件名:mpplot.m(实验一需要)

数字信号处理实验

子程序: function myplot(B,A) %myplot(B,A) %时域离散系统损耗函数绘图 %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000); m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); function tplot(xn,T,yn) %时域序列连续曲线绘图函数 % xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) % T为采样间隔 n=0:length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]) 程序: %实验4程序exp4.m % IIR数字滤波器设计及软件实现 clear all;close all Fs=10000;T=1/Fs; %采样频率 %调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st st=mstg; %低通滤波器设计与实现========================================= fp=280;fs=450; wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指标(低通滤波器的通、阻带边界频)[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp [B,A]=ellip(N,rp,rs,wp); %调用ellip计算椭圆带通DF系统函数系数向量B和A y1t=filter(B,A,st); %滤波器软件实现 % 低通滤波器设计与实现绘图部分 figure(2);subplot(3,1,1); myplot(B,A); %调用绘图函数myplot绘制损耗函数曲线 yt='y_1(t)'; subplot(3,1,2);tplot(y1t,T,yt); %调用绘图函数tplot绘制滤波器输出波形 %带通滤波器设计与实现==================================================== fpl=440;fpu=560;fsl=275;fsu=900; wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;

数字信号处理实验全部程序MATLAB

实验一熟悉MATLAB环境 一、实验目的 (1)熟悉MATLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。 (4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 实验程序: A=[1 2 3 4]; B=[3 4 5 6]; n=1:4; C=A+B;D=A-B;E=A.*B;F=A./B;G=A.^B; subplot(4,2,1);stem(n,A,'fill');xlabel ('时间序列n');ylabel('A'); subplot(4,2,2);stem(n,B,'fill');xlabel ('时间序列n ');ylabel('B'); subplot(4,2,3);stem(n,C,'fill');xlabel ('时间序列n ');ylabel('A+B'); subplot(4,2,4);stem(n,D,'fill');xlabel ('时间序列n ');ylabel('A-B'); subplot(4,2,5);stem(n,E,'fill');xlabel ('时间序列n ');ylabel('A.*B'); subplot(4,2,6);stem(n,F,'fill');xlabel ('时间序列n ');ylabel('A./B'); subplot(4,2,7);stem(n,G,'fill');xlabel ('时间序列n ');ylabel('A.^B'); 运行结果:

数字信号处理实验八

实验报告 实验名称:FIR数字滤波器设计及应用 课程名称____数字信号处理________ 院系部:电气与电子工程专业班级:信息1002 学生姓名:王萌学号: 11012000219同组人:实验台号: 指导教师:范杰清成绩: 实验日期: 华北电力大学

一、实验目的 加深理解 FIR 数字滤波器的时域特性和频域特性,掌握FIR 数字 滤波器的设计原理与设计方法,以及FIR 数字滤波器的应用。 二、 实验原理 FIR 数字滤波器可以设计成具有线性相位,在数据通信、图像处理、 语音信号处理等实际应用领域得到广泛应用。 M 阶FIR 数字滤波器的系统函数为: FIR 数字滤波器的单位脉冲响应h [k ]是长度为M +1的有限长因果序列。当满足对称条件时,该FIR 数字滤波器具有线性相位。FIR 数字滤波器设计方法主要有窗口法、频率取样法及优化设计法。 MATLAB 中提供的常用FIR 数字滤波器设计函数有: fir1 窗函数法设计FIR 数字滤波器(低通、高通、带通、 带阻、多频带滤波器) fir2 频率取样法设计FIR 数字滤波器:任意频率响应 firls FIR 数字滤波器设计:指定频率响应 firrcos 升余弦型 FIR 数字滤波器设计 intfilt 内插FIR 数字滤波器设计 kaiserord 凯塞(Kaiser)窗函数设计法的阶数估计 firpm Parks-McClellan 算法实现FIR 数字滤波器优化设计 firpmord Parks-McClellan 数字滤波器的阶数选择 cremez 复系数非线性相位FIR 等波纹滤波器设计 1、 窗口法设计FIR 数字滤波器 fir1函数可以很容易地实现FIR 数字滤波器窗口法设计。 可设计低通、高通、带通、带阻滤波器、多频带滤波器。 k M k z k h z H -=∑=][)(0

数字信号处理实验2

时域采样 fs=1000 function shiyan11 A=444.128;a=50*pi*sqrt(2);w=a;K=100;fs=1000; T=1/fs;N=100;n=0:N-1;t=n/fs;n1=[0:63]; x1=ones(1,64); x2=A*exp(-a*n*T).*sin(w*n*T); x=x2(1:64); subplot(3,2,1); stem(n1,x,'.'); xlabel('n');ylabel('X1(n)');title('n,X1(n),f=1000');grid function shiyan11 A=444.128;a=50*pi*sqrt(2);w=a;K=100;fs=1000; T=1/fs;N=100;n=0:N-1;t=n/fs;n1=[0:49]; x1=ones(1,50); x2=A*exp(-a*n*T).*sin(w*n*T); x=x2(1:50); subplot(3,2,1); stem(n1,x,'.'); xlabel('n');ylabel('X1(n)');title('n,X1(n),f=1000');grid k=floor(0:(K/2-0.5)); dw=2*pi/K; y=x*exp(j*dw*n1'*k); mag=abs(y); subplot(3,2,2); stem(n1*dw/pi,mag,'.'); xlabel('w'); ylabel('|X(jw)|'); title('w,|X(jw)|');grid

fs=300 function shiyan11 A=444.128;a=50*pi*sqrt(2);w=a;K=100;fs=300; T=1/fs;N=100;n=0:N-1;t=n/fs;n1=[0:63]; x1=ones(1,64); x2=A*exp(-a*n*T).*sin(w*n*T); x=x2(1:64); subplot(3,2,1); stem(n1,x,'.'); xlabel('n');ylabel('X2(n)');title('n,Xa(n),f=300');grid function shiyan11 A=444.128;a=50*pi*sqrt(2);w=a;K=100;fs=300; T=1/fs;N=100;n=0:N-1;t=n/fs;n1=[0:49]; x1=ones(1,50); x2=A*exp(-a*n*T).*sin(w*n*T); x=x2(1:50); subplot(3,2,1); stem(n1,x,'.'); xlabel('n');ylabel('X2(n)');title('n,X2(n),f=300');grid k=floor(0:(K/2-0.5)); dw=2*pi/K; y=x*exp(j*dw*n1'*k); mag=abs(y); subplot(3,2,2); stem(n1*dw/pi,mag,'.'); xlabel('w'); ylabel('|X(jw)|');

数字信号处理实验参考程序

实验一参考程序: 1 产生10点的单位抽样序列δ(n); function unit_pulse(N) % unit_pulse.m N=10; x=zeros(1,N); x(1)=1; n=0:N-1; figure(1); stem(n,x);xlabel('单位抽样序列') axis([-1 20 0 1.1]) 2产生10点同时移位3位的单位抽样序列δ(n-3); function shift_unit_pulse(N,k) % shift_unit_pulse.m N=10; k=3; x=zeros(1,N); x(k+1)=1; n=0:N-1; figure(2); stem(n,x);xlabel('移位3位的单位抽样序列') axis([-1 10 0 1.1]) function [x, n]=i shift_unit_pulse (n0,ns,nf) n=[0:9]; x=[(n-3)==0] 3产生任意序列 f(n)=8δ(n)+7δ(n-1)+6δ(n-2) +5δ(n-3)+ 4δ(n-4)+7δ(n-5);function arbitrary_pulse(N) % arbitrary_pulse.m N=10 x=zeros(1,N); x(1)=8;x(2)=7;x(3)=6;x(4)=5;x(5)=4;x(6)=7; n=0:N-1; figure(3); stem(n,x);xlabel('任意序列f(n)') axis([-1 10 0 9]) 4产生N=10点的单位阶跃序列 function unit_step(N) % unit_step.m

数字信号处理实验报告

《数字信号处理》 —实验指导 数字信号处理课程组 电子与信息工程学院 班级: 姓名: 学号: 综合评定: 成绩: 指导教师签字:

实验一 典型离散信号及其MATLAB 实现 一、实验目的 1. 掌握MATLAB 语言的基本操作,学习基本的编程功能。 2. 掌握MATLAB 产生常用离散时间信号的编程方法。 3. 掌握MATLAB 计算卷积的方法。 二、实验原理 (一)MATLAB 常用离散时间信号 1. 单位抽样序列:? ??=01)(n δ 00 ≠=n n 在MATLAB 中可以利用zeros()函数实现。 ; 1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:? ??=-01)(k n δ 0≠=n k n 2.单位阶跃序列:???0 1 )(n u <≥n n 在MATLAB 中可以利用ones()函数实现。);,1(N ones x = 3.正弦序列:)/2sin()(?π+=Fs fn A n x 在MATLAB 中: ) /***2sin(*1 :0fai Fs n f pi A x N n +=-= 4.复正弦序列:n j e n x ?=)( 在MATLAB 中: ) **ex p(1 :0n w j x N n =-= 5.指数序列:n a n x =)( 在MATLAB 中: n a x N n .^1 :0=-= 6.y=fliplr(x)——信号的翻转; y=square(x)——产生方波信号

y=sawtooth(x)——产生锯齿波信号; y=sinc(x)——产生sinc 函数信号。 (二)离散时间信号的卷积 由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间信号处理领域被广泛应用。离散时间信号的卷积定义为 ∑∞ -∞ =-= =m m n h m x n h n x n y )()()(*)()( 可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。 MATLAB 求离散时间信号卷积和的命令为conv ,其语句格式为 y=conv(x,h) 其中,x 与h 表示离散时间信号值的向量;y 为卷积结果。用MA TLAB 进行卷积和运算时,无法实现无限的累加,只能计算时限信号的卷积。 三、实验内容 (一) 离散信号的产生 离散信号的图形显示使用stem 指令。 编写MATLAB 程序,产生下列典型脉冲序列。 (1) 单位脉冲序列:起点n0,终点nf ,在ns 处有一单位脉冲。 (2) 单位阶跃序列:起点n0,终点nf ,在ns 前为0,在ns 处及以后均为 1(n0<=ns<=nf)。 n0=0;nf=10;ns=3; n2=n0:nf;x2=[(n2-ns)>=0]; %单位阶跃序列 (3) 实指数序列:n x )75.0(3= (4) 复指数序列:n j e x )7.02.0(4+-= 参考答案: n0=0;nf=10;ns=3; n1=n0:nf;x1=[(n1-ns)==0]; %单位脉冲序列

数字信号处理实验报告实验四..

物理与电子信息工程学院 实验报告 实验课程名称:数字信号处理 实验名称: IIR数字滤波器设计及软件实现班级: 1012341 姓名:严娅 学号: 101234153 成绩:_______ 实验时间: 2012年12月13 日

一、实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 二、实验原理 IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR 滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。利用MATLAB信号处理工具箱中的滤波器设计和分析工具(FDATool)可以很方便地设计出符合应用要求的未经量化的IIR数字滤波器。 三、实验内容及步骤

(1)调用信号产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st ,该函数还会自动绘图显示st 的时域波形和幅频 特性曲线,如图10.4.1所示。由图可见, 图10.4.1 三路调幅信号st 的时域波形和幅频特性曲线 三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离。 (2)通过观察st 的幅频特性曲线,可以用三个滤波器(低通滤波器、带通滤波器、高通滤波器)将它们分离,根据幅频特性曲线分别确定滤波器的通带截止频率和阻带截止频率,并要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB 。 提示:抑制载波单频调幅信号的数学表示式为 0001()cos(2)cos(2)[cos(2())cos(2())]2 c c c s t f t f t f f t f f t ππππ==-++

数字信号处理实验第三版修改程序

实验一 close all;clear all %======内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性====== A=[1,-0.9];B=[0.05,0.05]; %系统差分方程系数向量B和A x1n=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生信号x1(n)=R8(n) x2n=ones(1,128); %产生信号x2(n)=u(n) hn=impz(B,A,58); %求系统单位脉冲响应h(n) subplot(2,2,1);stem(hn,'.'); %调用函数tstem绘图 title('(a) 系统单位脉冲响应h(n)');box on y1n=filter(B,A,x1n); %求系统对x1(n)的响应y1(n) subplot(2,2,2);stem(y1n,'.'); title('(b) 系统对R8(n)的响应y1(n)');box on y2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n) subplot(2,2,4);;stem(y2n,'.'); title('(c) 系统对u(n)的响应y2(n)');box on %===内容2:调用conv函数计算卷积============================ n=0:19 x1n=[1 1 1 1 1 1 1 1 ]; %产生信号x1(n)=R8(n) h1n=[ones(1,10) zeros(1,10)]; h2n=[1 2.5 2.5 1 zeros(1,10)]; y21n=conv(h1n,x1n); y22n=conv(h2n,x1n); figure(2) subplot(2,2,1);;stem(n,h1n,'.'); %调用函数tstem绘图 title('(d) 系统单位脉冲响应h1(n)');box on subplot(2,2,2);stem([0:length(y21n)-1],y21n,'.'); title('(e) h1(n)与R8(n)的卷积y21(n)');box on subplot(2,2,3);stem([0:length(h2n)-1],h2n,'.'); %调用函数tstem绘图 title('(f) 系统单位脉冲响应h2(n)');box on subplot(2,2,4);stem([0:length(y22n)-1],y22n,'.'); title('(g) h2(n)与R8(n)的卷积y22(n)');box on %=========内容3:谐振器分析======================== un=ones(1,256); %产生信号u(n) n=0:255; xsin=sin(0.014*n)+sin(0.4*n); %产生正弦信号 A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49]; %系统差分方程系数向量B和A y31n=filter(B,A,un); %谐振器对u(n)的响应y31(n) y32n=filter(B,A,xsin); %谐振器对u(n)的响应y31(n) figure(3) subplot(2,1,1);stem(y31n,'.'); title('(h) 谐振器对u(n)的响应y31(n)');box on subplot(2,1,2);stem(y32n,'.'); title('(i) 谐振器对正弦信号的响应y32(n)');box on

数字信号处理实验

实验一: 系统及响应时域采样及频域采样 1. 实验目的 (1)掌握用卷积求系统响应及卷积定理的验证; (2)掌握连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。 (3)掌握频域采样引起时域周期化概念, 加深对频域采样定理的理解。 (4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。 3. 实验内容及步骤 (1) 认真复习卷积定理、 时域采样和频域采样理论。 (2) 编制实验用主程序及相应子程序。 ①系统单位脉冲响应序列产生子程序。 有限长序列线性卷积子程序, 用于完成两个给定长度的序列的卷积。 可以直接调用MATLAB 语言中的卷积函数conv 。 conv 用于两个有限长度序列的卷积,它假定两个序列 都从n=0开始。调用格式如下: y=conv (x, h) ② 卷积定理的验证。 (3)时域采样定理的验证:信号产生子程序, 用于产生实验中要用到的下列信号序列: x a (t)=Ae -at sin(Ω0t)u(t) 进行采样, 可得到采样序列 x a (n)=x a (nT)=Ae -anT sin(Ω0nT)u(n), 0≤n<50 其中A 为幅度因子, a 为衰减因子, Ω0是模拟角频率, T 为采样间隔。 这些参数都要在实验过程中由键盘输入, 产生不同的x a (t)和x a (n)。 >> %1时域采样序列分析 A=400;a=200;w=200; n=0:50-1;fs=1000; xa=A*exp((-a)*n/fs).*sin(w*n/fs); k=-200:200;w=(pi/100)*k; Xk=fft(xa,length(k));magX=abs(Xk);angX=angle(Xk); subplot(2,1,1); stem(n,xa,'.');xlabel('n');ylabel('xa(n)'); title('信号的类型'); )()(10n R n h a =) 3()2(5.2)1(5.2)()(-+-+-+=n n n n n h b δδδδ1,,2,1,0,)()()(-==M k e H e X e Y k k k j j a j ωωω

数字信号处理实验三

一、实验目的 1. 学会filter函数和卷积函数的使用。 2. 学会求解离散时间傅立叶变换,并能对其性质进行初步的判断。 二、实验内容 1. 线性时不变离散系统的冲击响应计算。 2. 离散时间序列的卷积。 3. 离散时间傅里叶变换及其性质。 三、主要算法与程序 Q2.21 y1=filter(num,den,x);%利用filter计算冲激响应 Q2.22 num=[2.2403 2.4908 2.2403];den=[1 -0.4 0.75];y=filter(num,den,x);%利用filter计算冲激响应 Q3.3 plot(w/pi,unwrap(angle(h))); 四、实验结果与分析 Q2.21 利用filter命令编写一个MATLAB程序,生成式(2.17)给出的因果线性时不变系统的冲激响应,计算并画出前40个样本。把你的结果和习题Q2.20中得到的结果相比较 答:结果如图1: 图 1 filter和impz命令实现冲激响应 通过上图比较知道两程序所实现的功能完全一样。 Q2.22 编写一个MATLAB程序,生成并画出式(2.11)给出的因果线性时不变系统的阶跃响应。用该程序计算并画出式(2.15)给出的线性时不变系统的阶跃响应的前40个样本。 答: 样本值如下:

所得结果如图2: 图 2 阶跃响应 Q2.28 运行程序P2.7,对序列h[n]和x[n]求卷积,生成y[n],并用FIR滤波器h[n]对输入x[n]滤波,求得y1[n]。y[n]和y1[n]有差别吗?为什么要使用对x[n]补零后得到的x1[n]作为输入来产生y1[n]? 答:所得结果如图3: 图3 通过上图比较可以看出y[n]和y1[n]没有差别; 对[n]补零后得到的x1[n]作为输入来产生y1[n]是因为filter函数产生的输入和输出序列长度相同,而两信号卷积后所得的长度为这两个信号长度之和减1,因此要对[n]补零。

数字信号处理实验程序(matlab)

实验一:系统响应及系统稳定性 实验二:时域采样与频域采样 实验三:用FFT对信号作频谱分析 实验四:数字滤波器设计及软件实现 close all;clear all Fs=10000;T=1/Fs; st=mstg; fp=280;fs=450; wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; [N,wp]=ellipord(wp,ws,rp,rs); [B,A]=ellip(N,rp,rs,wp); y1t=filter(B,A,st); figure(2);subplot(3,1,1); myplot(B,A); yt='y_1(t)'; subplot(3,1,2);tplot(y1t,T,yt); fp1=440;fpu=560;fs1=275;fsu=900; wp=[2*fp1/Fs,2*fpu/Fs];ws=[2*fs1/Fs,2*fsu/Fs];rp=0.1;rs=60; [N,wp]=ellipord(wp,ws,rp,rs); [B,A]=ellip(N,rp,rs,wp); y2t=filter(B,A,st); figure(3);subplot(3,1,1); myplot(B,A); yt='y_2(t)'; subplot(3,1,2);tplot(y2t,T,yt); fp=890;fs=600; wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; [N,wp]=ellipord(wp,ws,rp,rs); [B,A]=ellip(N,rp,rs,wp,'high'); y3t=filter(B,A,st); figure(4);subplot(3,1,1) myplot(B,A) y3t=filter(B,A,st); yt='y_3(t)'; subplot(3,1,2);tplot(y3t,T,yt); function st=mstg N=800; Fs=10000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; fc1=Fs/10;fm1=fc1/10; fc2=Fs/20;fm2=fc2/10;

数字信号处理实验作业

实验5 抽样定理 一、实验目的: 1、了解用MA TLAB 语言进行时域、频域抽样及信号重建的方法。 2、进一步加深对时域、频域抽样定理的基本原理的理解。 3、观察信号抽样与恢复的图形,掌握采样频率的确定方法和内插公式的编程方法。 二、实验原理: 1、时域抽样与信号的重建 (1)对连续信号进行采样 例5-1 已知一个连续时间信号sin sin(),1Hz 3 ππ=0001f(t)=(2f t)+6f t f ,取最高有限带宽频率f m =5f 0,分别显示原连续时间信号波形和F s >2f m 、F s =2f m 、F s <2f m 三情况下抽样信号的波形。 程序清单如下: %分别取Fs=fm ,Fs=2fm ,Fs=3fm 来研究问题 dt=0.1; f0=1; T0=1/f0; m=5*f0; Tm=1/fm; t=-2:dt:2; f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(4,1,1); plot(t,f); axis([min(t),max(t),1.1*min(f),1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3; fs=i*fm;Ts=1/fs; n=-2:Ts:2; f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); subplot(4,1,i+1);stem(n,f,'filled'); axis([min(n),max(n),1.1*min(f),1.1*max(f)]); end 程序运行结果如图5-1所示:

原连续信号和抽样信号 图5-1 (2)连续信号和抽样信号的频谱 由理论分析可知,信号的频谱图可以很直观地反映出抽样信号能否恢复原模拟信号。因此,我们对上述三种情况下的时域信号求幅度谱,来进一步分析和验证时域抽样定理。 例5-2编程求解例5-1中连续信号及其三种抽样频率(F s>2f m、F s=2f m、F s<2f m)下的抽样信号的幅度谱。 程序清单如下: dt=0.1;f0=1;T0=1/f0;fm=5*f0;Tm=1/fm; t=-2:dt:2;N=length(t); f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); wm=2*pi*fm;k=0:N-1;w1=k*wm/N; F1=f*exp(-j*t'*w1)*dt;subplot(4,1,1);plot(w1/(2*pi),abs(F1)); axis([0,max(4*fm),1.1*min(abs(F1)),1.1*max(abs(F1))]); for i=1:3; if i<=2 c=0;else c=1;end fs=(i+c)*fm;Ts=1/fs; n=-2:Ts:2;N=length(n); f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); wm=2*pi*fs;k=0:N-1; w=k*wm/N;F=f*exp(-j*n'*w)*Ts; subplot(4,1,i+1);plot(w/(2*pi),abs(F)); axis([0,max(4*fm),1.1*min(abs(F)),1.1*max(abs(F))]); end 程序运行结果如图5-2所示。 由图可见,当满足F s≥2f m条件时,抽样信号的频谱没有混叠现象;当不满足F s≥2f m 条件时,抽样信号的频谱发生了混叠,即图5-2的第二行F s<2f m的频谱图,,在f m=5f0的范围内,频谱出现了镜像对称的部分。

相关文档
相关文档 最新文档