DSP实验详细·简版
DSP实验报告6

DSP第六、七次实验报告1. 实验目的:(1)进一步熟悉Matlab实验环境和语言。
(2)熟悉各种滤波器的结构及Matlab实现语言。
(3)掌握用冲击响应不变法和双线性变换法设计IIR滤波器的方法。
(4)掌握用窗函数法和频率抽样法设计FIR滤波器的方法。
2. 实验内容及总结:1.滤波器结构:(1)IIR滤波器各种结构1、直接型结构例如直接型滤波器系统函数, 则有系数向量a=[1,a1,a2,a3],b=[b0,b1,b2], 利用:Y=filter[b,a,x]求信号x(n)通过此滤波器的输出。
2、由系统函数或差分方程求系统的二阶分式(含一阶分式)的级联结构将例如的系统函数重写为二阶分式节的级联型, 利用:[sos,G]=tf2sos(b,a)3、由二阶分式的级联结构转换成系统函数的直接结构是第二步的逆运算, 调用函数:[b,a] = sos2tf(sos)可以求得系数向量a,b, 从而得到H(z)4、由系统函数求部分分式展开(留数及其极点计算)即求z反变换的部分分式展开法, 利用:[r,p,c]=residuez(b,a)其中极点为p, 留数为r, 直接项系数为c。
5、由r,p,c求系统函数即第4步的逆运算, 利用:[b,a]=residuez(r,p,c)6、由直接型结构转换为并联型结构需开发函数:[C,B,A]=tf2par(b,a)其中, b,a为直接型的系数向量, C,B,A为并联型实系数向量, 基本思想是: 1.反复调用[r,p,c]=residuez(b,a)求出极点及留数;2.利用cplxpair函数把极点、留数对按复共轭极点-留数对, 实极点-留数对的顺序排列;3.开发cplxcomp函数, 保证极点和留数相互对应;4.调用[b,a]=residuez(r,p,c)计算并联二阶节的分子分母。
7、由并联型结构转换成直接型结构开发函数:[b,a]=par2tf(C,B,A)为[C,B,A]=tf2par(b,a)的逆函数。
DSP实验报告

DSP实验报告⼀、综合实验内容和要求1. 实验⽬的(1) 学习掌握CCS3.3编译器的使⽤;(2) 通过实验学习掌握TMS320F28335的GPIO ,浮点计算; (3) 学习并掌握A/D 模块的使⽤⽅法;(4) 学习并掌握中断⽅式和查询⽅式的串⼝通信; (5) 学习并掌握28335DSP 的定时器相关的设置与运⽤; (6) 学习信号时域分析的⽅法,了解相关波形参数的计算⽅法; (7) 了解数字滤波的⼀些基本⽅法; (8) 学习数码管的驱动及运⽤。
(9) 学习MATLAB 串⼝以及画图的运⽤。
2. 实验设计内容与要求:(1) 对给定的周期波形信号采⽤TI 公司的TMS320F28335DSP ,利⽤试验箱上的相关资源计算出波形的周期T ,波形的有效值rms V ,平均值avg V 。
其中,有效值和平均值的计算公式(数字量的离散公式)如下:rms V =1()NavgiV u i N=∑式中N 为⼀个周期采样点数,()u i 为采样序列中的第i 个采样点。
(2) 通过算法计算出波形的有效值和平均值,利⽤串⼝通信把测得的数据发送到串⼝助⼿查看,或者在MATLAB 上编写上位机程序,把发送的数据在MATLAB 上画出来。
(3) 把测得的数据实时显⽰在数码管上。
⼆、硬件电路图1为试验系统的硬件图,硬件电路主要包括TMS320F28335DSP 实验箱,SEED-XDS510仿真器,数码管,SCI,信号发⽣器,电脑,串⼝线等。
图1 硬件电路图三、实验原理本试验主要是通过程序去测量⼀个周期波形的有效值、平均值、峰值等相关参数。
计算离散数据的有效值可⽤公式rms V =平均值可⽤公式1()N avgiV u i N=∑。
所以⾸先需要测出波形的周期,然后确定每个周期需要采样的点数N ,最后去计算平均值和有效值。
v mv 1图2 理想输⼊采样波形如图2所⽰为⼀个正弦输⼊波形,m V 为输⼊波形的峰值,1V 是介于0~ m V 的⼀个值。
DSP实验报告_6

实验一: 闪灯实验熟悉DSP 软硬件测试系统实验目的1.了解SHARC 系列高性能数字信号处理器的程序开发过程和编程语言;2.熟悉集成开发工具VisualDSP++, 学会使用VisualDSP++进行SHARC 系列ADSP 的程序开发、编译与调试;3.掌握SHARC 系列ADSP 的程序加载设计和加载过程。
实验内容利用波形产生信号板, 结合FPGA 编程技术和程序编程器, 编写测试ADSP21065L 和FPGA 之间硬件连接的应用程序, 同时完成应用程序的加载和脱机操作, 在信号指示灯“HL2”上产生可调周期的脉冲信号, “点亮”与“熄灭”指示灯HL2。
实验要求通过DSP 编程, 在其FLAG11引脚上模拟如下波形的周期信号:要求:(1) 500H T ms >,500L T ms >. (2) 并用示波器查看波形, 测量信号周期。
实验步骤1. 熟悉电路图, 清楚波形产生电路板ADSP21065L 与可编程FPGA 器件之间的连接关系;2. 编写FPGA 程序。
在FPGA 内部将ADSP21065L 的标志引脚FLAG11(引脚号26)设置为输出, 作为FPGA 的输入信号, 在FPGA 内部编程将该信号直接输出在发FPGA 的37引脚号上, 设置37引脚为输出信号, 驱动板上的HL2 LED 指示灯;3. 启动VisualDsp++4.5,选择project 工程选项菜单, 创建一个名称为Test.dpj 的工程文件, 选择处理器的型号为ADSP-21065L ;4.弹出一个对话框, 选择是否需要加入VDSP kernel ,选择“NO ”;5. 在工程中加入以下参考源文件:\exp1\test(boot)\ boot1.asm 和boot1.ldf 6.编译, 链接调试, 生成可执行文件。
7.运行程序, 可以看到波形发生电路板上的指示灯“HL2”不断闪动。
8. 利用示波器观测系统时钟,并测量产生信号的波形和周期。
DSP实验报告(综合)

实验报告||实验名称 D SP课内系统实验课程名称DSP系统设计||一、实验目的及要求1. 掌握用窗函数法设计FIR数字滤波器的原理和方法。
熟悉线性相位FIR 数字滤波器特性。
了解各种窗函数对滤波器特性的影响。
2. 掌握设计IIR数字滤波器的原理和方法。
熟悉IIR数字滤波器特性。
了解IIR数字滤波器的设计方法。
3.掌握自适应数字滤波器的原理和实现方法。
掌握LMS自适应算法及其实现。
了解自适应数字滤波器的程序设计方法。
4.掌握直方图统计的原理和程序设计;了解各种图像的直方图统计的意义及其在实际中的运用。
5.了解边缘检测的算法和用途,学习利用Sobel算子进行边缘检测的程序设计方法。
6.了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。
7.了解取反的算法和用途,学习设计程序实现图像的取反运算。
8.掌握直方图均衡化增强的原理和程序设计;观察对图像进行直方图均衡化增强的效果。
二、所用仪器、设备计算机,dsp实验系统实验箱,ccs操作环境三、实验原理(简化)FIR:有限冲激响应数字滤波器的基础理论,模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。
数字滤波器系数的确定方法。
IIR:无限冲激响应数字滤波器的基础理论。
模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。
数字滤波器系数的确定方法。
、自适应滤波:自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。
e(n)=z(n)-y(n)=s(n)+d(n)-y(n)直方图:灰度直方图描述了一幅图像的灰度级内容。
灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标是该灰度出现的频率(像素个数与图像像素总数之比)。
图像边缘化:所谓边缘(或边沿)是指其周围像素灰度有阶跃变化。
经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律,用简单的方法检测边缘。
DSP实验报告(一)

实验一 信号系统及系统响应一、实验目的1、 熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
2、 熟悉离散信号和系统的时域特性。
3、 熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4、 掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
二、实验原理(一)连续时间信号的采样采样是指按一定的频率从模拟信号抽样获得数字信号。
采样是从连续时间信号到离散时间信号的过渡桥梁。
对一个连续时间信号进行理想采样的过程可以表示为该信号的一个周期冲激脉冲的乘积,即()()()ˆa a x t x t M t =(1)其中连续信号的理想采样,是周期冲激脉冲()()n M t t n T d +=-=-å(2)它也可以用傅立叶级数表示为:1()s jm tn M t eT+W =-=å(3)其中T 为采样周期,Ω是采样角频率。
设是连续时间信号的双边拉氏变换,即有:()()ata a X s x t edt+--=ò(4)此时理想采样信号的拉氏变换为()ˆˆ()()1ˆ()1ˆ()1()s s ataa jm tsta m s jm ta m a s m X s x t e dtxt ee dtTxt e dtT X s jm T+--++W -=--++--W =- -++=--====-W òåòåòåò(5)作为拉氏变换的一种特例,信号理想采样的傅立叶变换1ˆ()[()]aa s m X j X j m T+=-W =W-W å(6)由式(5)和式(6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。
根据Shannon 取样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频谱混淆现象。
DSP实验报告

DSP实验报告实验1 循环操作和双操作数乘法⼀、实验⽬的1. 掌握循环操作指令和双操作数指令的运⽤;2. 掌握⽤汇编语⾔编写DSP 程序的⽅法。
⼆、实验设备1.⼀台装有CCS 软件的计算机;2. DSP 实验箱的TMS320C5410 主控板;3. DSP 硬件仿真器。
三、实验原理1.循环操作指令TMS320C54x 具有丰富的程序控制与转移指令,利⽤这些指令可以执⾏分⽀转移、循环控制以及⼦程序操作。
本实验要求编写⼀程序完成),然后通过仿真器把执⾏代码下载到DSP 芯⽚中;3. 在“end:B end”代码⾏设置断点(当光标置于该⾏时,单击⼯具条上的ToggleBreakpoint图标,此时该⾏代码左端会出现⼀个⼩红点),单击运⾏);6. 改变对变量的初始赋值,重复上述3~5 步过程.7. 增加变量数⽬,重复上述3~5 步过程.(⼆)双操作数乘法1. 在CCS 环境中打开本实验的⼯程(Ex4_2.pjt),阅读源程序;2. 编译并重建.out 输出⽂件,然后通过仿真器把执⾏代码下载到DSP 芯⽚中;3. 在“end:B end”代码⾏设置断点(当光标置于改⾏时,单击⼯具条上的ToggleBreakpoint图标,此时该⾏代码左端会出现⼀个⼩红点),单击运⾏);6. 改变对变量的初始赋值,重复上述过程.实验2 卷积运算和相关运算⼀. 实验⽬的1. 掌握卷积运算的原理;2. 掌握相关系数的估计⽅法3. 掌握⽤C 语⾔编写DSP 程序的⽅法.⼆. 实验设备1. ⼀台装有CCS 软件的计算机;2. DSP 实验箱的TMS320C5410主控板;3. DSP 硬件仿真器.三.实验原理1. 卷积运算卷积的基本表达式为:∑=?=n m m n x m h n y 0)()()( 写程序时要注意两点:(1) 三个序列数组长度的分配;(2) 循环体中变量的位置,即n 和m 的关系. 2. 相关运算相关系数是信号处理中的⼀个重要概念,包括⾃相关系数和互相关系数.它们的定义分别为: ⾃相关系数12()[()()]()()(,;,)xx n kExnxnkxnxnkpxxnnk ?∞=?∞=+=++∑ 互相关系数 )]()([)(k n y n x E k xy +=γ k为相关系数的阶数实际应⽤时,我们可以⽤下式来估计两个平稳信号的互相关系数: 有偏估计 ∑??=+=10)()(1)(?k N n xy k n y n x N k γ⽆偏估计: ∑??=+?=10)()(1)(?k N n xy k n y n x k N k γ当x(n)和y(n)相等即为⾃相关系数的估值..所谓⽆偏估计就是该估计的数学期望等于被估计的参数值.四.实验步骤(⼀) 卷积运算1.在CCS 环境中打开本实验的⼯程(Ex5_1.pjt),编译并重建.out 输出⽂件,然后通过仿真器把执⾏代码下载到DSP 芯⽚中.2.把x, h和y添加到窗⼝中作为观察对象.3.单击运⾏键. 观察三个数组从初始化到卷积运算结束整个过程中的变化;记录卷积结果.(可单击变量名前的“+”号把数组展开);4.修改输⼊序列的长度和初始值,重复上述过程,观察并记录卷积结果.(⼆) 相关运算1.在CCS环境中打开本实验的⼯程(Ex5_2.pjt),编译并重建.out输出⽂件,然后通过仿真器把执⾏代码下载到DSP芯⽚中.2.把x, y和r添加到窗⼝中作为观察对象(选中变量名,单击⿏标右键,在弹出菜单中选择“Add Watch Window”命令).3.单击运⾏键, 观察并记录结果.4.修改估计模式mode,重复上述过程.分析有偏估计和⽆偏估计的差别.5.选定模式,修改输⼊数组的长度,重复上述过程,观察并分析结果与3或4有何不同.6.修改代码,实现x(n)的⾃相关系数的⽆偏估计.五.思考题1.分析阶数对相关系数的影响.实验3 快速傅⾥叶变换FFT⼀. 实验⽬的1.掌握FFT 算法的基本原理2.掌握⽤C 语⾔编写DSP 程序的⽅法.⼆.实验设备1.⼀台装有CCS 软件的计算机;2.DSP 实验箱的TMS320C5410主控板;3.DSP 硬件仿真器.三.实验原理包括两部分内容:1.FFT 按时间抽取的算法;)()()(21k X W k X k Y k N +=)()(2(21k X W k X N k Y k N ?=+ 式中X 1(k)和X 2(k)分别是输⼊序列x(n)的偶数序号部分x(2l)和奇数序号部分x(2l+1). 以上讨论中k=0,1,2,…N/2-1, n=0,1,2,…N-1, l=0,1,2,…N/2-1 .2.雷德算法.即,将输⼊序列按下列⽅式倒序.四.实验步骤1.在CCS 环境中打开本实验的⼯程(Ex5_3.pjt),编译并重建.out 输出⽂件,然后通过仿真器把执⾏代码下载到DSP 芯⽚中.2.单击运⾏键.3.选择view>graph>time/frequency … 观察并画出输⼊波形.(设置对话框中的参数: “start address ”设为 “x_re ”, “ acquisition buffer size ” 和 “display data size ”设为 “64”,“DSP data type ”设为 “32-bit floating point ”.)4.同样⽅法观察并画出输出波形(注意: “start address ”要设为 “y_re ”).5.在Watch 窗⼝中添加i, j, k, m, n, a, b ,c 等变量,在Debug 菜单中先“Restart ” x (0)x (1)x (2)x (3)x (4)x (5)x (6)x (7)x (0)x (4)x (2)x (6)x (1)x (5)x (3)x (7)然后“Go main”,单步运⾏程序,跟踪并记录FFT 算法的过程;(可以跳过程序开始部分对各个数组的赋值代码,⽅法是在雷德算法的第⼀⾏代码前设置断点,然后先单击运⾏)后⾯的代码,见下图。
dsp实验报告

实验一代数汇编指令基础实验一、实验目的:1.通过调试目标代码,掌握指令的功能,熟悉指令;2.通过指令的熟悉,能够指令应用于实际项目中。
二、实验原理:Ti公司的代数汇编指令。
三、实验程序:.title"算术指令综合实验".mmregs.sect ".vect".copy "vectors.asm".text_Start:;AR7=#767 ;A=#38CAH ;DP=#08AH ;RSA=#0123H;DP=#188H ;ASM=#0AHAR7=AMMR(*AR7+)=#1234HDP=#04HA=#9876HAR6=#230H*AR6+=#9ACDHARP=#6;@38H=ANOPNOPAR0=#003AHA=*AR6+0T=#08HSXM=1B=*AR6-<<TSAR7=#0220H*AR7=#0E5D8HA=*AR7+0B<<-12@3AH=#665AHAR2=#023AHBK=#0A=*AR2-0%<<12BK=#002AHAR3=#0256H*AR3- =HI(B)<<8ASM=#-8*AR3+ =A<<ASMAR4=#0216H*AR4=#8775HB=#025AHA=B<<ASMMMR(*AR4+)=BA=MMR(13H)AR2=#0245H*AR2=A<<7@3AH=A<<ASM*AR2+0%=B<<4;*AR2=#1CHASM=*AR2T=*AR4+LTD(*AR2+)B=RND(*AR2+)*AR3=#0F57AHA=UNS(*AR3)B=*AR3+*AR3+0B=TTRN=#12ACHA=DBL(*AR4+)B=DUAL(*AR2-)DBL(*AR3-)=ADUAL(*AR4+)=B*AR3+=HI(A)<<ASM||B=*AR2-<<16 *AR2+=HI(B)<<ASM||T=*AR3+A=#3456HIF(AGT)*AR4+=HI(A)<<ASMB=#0F679HIF(BLEQ)*AR3-=HI(B)<<ASMA=#0F98DHIF(AGT)*AR2+ =BRCIF(ALT)*AR3- =TB=#0125CHIF(BGEQ)*AR2+ =BRCCMPS(A,*AR4-)CMPS(B,*AR2+);B=@20DP=#40A=#1234H@22=AA=A+@9AH@25=AAR3=#0236H*AR3=#0F775HAR5=#024AH*AR5=#09ACDH NEXT: NOPA=#9ABCH*AR5+ =AA=A+#1000HA=A+#08ADEHSXM=0A=#07AB8H<<16A=A+#04ADEHA=A-#08ADEH<<16SXM=1B=#0FF7CHA=#0889AHA=A-#09ACDH<<16B=A-*AR5-C=1B=B-A<<ASM*AR5=AC16=0A=DBL(*AR5-)-AB=B-*AR3+A=B+*AR5+<<16A=A-B<<ASMB=*AR3+<<16-*AR4-<<16A=A+*AR4<<12B=A+*AR5<<-12A=B-#06789H<<16B=B+*AR7+0B+CARRYA=A-*AR2--BORROWSUBC(@25,A)A=A-UNS(*AR7+)T=#9ACDHB=DADST(*AR4,T)A=DADST(*AR7,T)C16=1A=A+DBL(*AR5+)A=A-DBL(*AR5-)T=#7654HC16=0A=DADST(*AR5+,T)C16=1A=DSADT(*AR5-,T)A=DBL(*AR5+)-A*AR3+ =HI(B)||B=A+*AR5+0%<<16*AR4-=HI(A)||A=*AR3-<<16-BGOTO NEXT;SXM=0A=#89ABHA=A+#4567H<<16*AR3=#9999HA=A&*AR3-B=#8897HB=B+#079ADH<<16A=A|B<<-12A=#8897HA=A+#079ADH<<16A=B^#0567DH<<12DP=#04@7AH=@7AH�ACD6H.end四、实验步骤:1、输入以上程序,并进行编译;2、打开code Explore ,并把编译好的程序装载,并进行调试3、逐步调试,并观察各种特殊寄存器的值和预期值是否对应,着重了解各种寻址的特点,及相对应的指令。
dsp实验报告

dsp实验报告实验一:CCS入门实验实验目的:1. 熟悉CCS集成开发环境,掌握工程的生成方法;熟悉SEED-DEC643实验环境; 掌握CCS集成开发环境的调试方法。
2.学习用标准C 语言编写程序;了解TI CCS开发平台下的C 语言程序设计方法和步骤; 熟悉使用软件仿真方式调试程序。
3. 学习用汇编语言编写程序; 了解汇编语言与 C 语言程序的区别和在设置上的不同;了解TMS320C6000 汇编语言程序结果和一些简单的汇编语句用法学习在CCS 环境中调试汇编代码。
4. 在了解纯C 语言程序工程和汇编语言程序工程结构的基础上,学习在C 工程中加入汇编编程的混合编程方法; 了解混合编程的注意事项;理解混合编程的必要性和在什么情况下要采用混合编程5. 熟悉CCS集成开发环境,掌握工程的生成方法; 熟悉SEED-DEC643实验环境;掌握CCS集成开发环境的调试方法。
实验原理:CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力序。
使用此命令后,要重新装载.out 文件后,再执行程序。
使用 CCS常遇见文件简介1. program.c: C 程序源文件;2. program.asm: 汇编程序源文件;3. filename.h: C 程序的头文件,包含DSP/BIOS API模块的头文件;4. filename.lib: 库文件;5. project.cmd: 连接命令文件;6. program.obj: 由源文件编译或汇编而得的目标文件;7. program.out: 经完整的编译、汇编以及连接后生成可执行文件; 8. program.map: 经完整的编译、汇编以及连接后生成空间分配文件; 9.project.wks: 存储环境设置信息的工作区文件。
P.S(CMD文件中常用的程序段名与含义1. .cinit 存放C程序中的变量初值和常量;2. .const 存放C程序中的字符常量、浮点常量和用const声明的常量;3. .text 存放C程序的代码;4. .bss 为C 程序中的全局和静态变量保留存储空间;5. .far 为C 程序中用far声明的全局和静态变量保留空间;6. .stack 为 C 程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;7. .sysmem 用于 C 程序中malloc、calloc 和 realloc 函数动态分配存储空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一一、观察采样引起的混叠。
(来源:p57 习题1-3)设模拟信号为)3sin()2sin(4)5cos()(t t t t x πππ⋅+=,t 的单位为毫秒(ms)。
2. 设采样频率为3kHz ,确定与)(t x 混叠的采样重建信号)(t x a 。
3. 画出)(t x 和)(t x a 在)(60m s t ≤≤范围内的连续波形。
(因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。
) 4. 分别用"" 和""⨯在两信号波形上标记出3kHz 采样点。
两信号波形是否相同?采样后的两序列是否相同?程序与分析: % problem 1% =============%作用与汇编中的;以及C++编程中的//作用一样,起注释作用 Clear %清屏% estimate x(t) and xa(t) with a much higher sampling freq. 'fs1'%因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。
%因此,为画出x(n)与xa(t)的波形,取fs1=50KHZ 。
time_period=6; % unit: ms fs1=50; % unit: kHz T1=1/fs1; % unit: ms n1=0:fix(time_period/T1);%用两个冒号组成等增量语句,其格式为:t=[初值:增量:终值]。
%如:t=[0:0.02:0.08],t=0 0.02 0.04 0.06 0.08%当增量为1时,这个增量值可以略去,因而该语句只有一个冒号。
%如:k=1:6,k=1 2 3 4 5 6 %fix 向0舍入为整数,舍尾法x=cos(5*pi*n1*T1)+4*sin(2*pi*n1*T1).*sin(3*pi*n1*T1); xa=cos(pi*n1*T1);% obtain x(nT) and xa(nT) with given sampling freq. 'fs' fs=3; T=1/fs;n=0:fix(time_period/T);x_sample=cos(5*pi*n*T)+4*sin(2*pi*n*T).*sin(3*pi*n*T); xa_sample=cos(pi*n*T);figure,plot(n1*T1,x,'r',n1*T1,xa,'b',n*T,x_sample,'ro'),%figure 指令可以打开一个新的图形绘制窗口,在下一条这样的指令出现之前, %所有的绘图指令都会在这个窗口上绘制。
%plot 函数可以同时画多组数值图像,即以(X 坐标数组1,Y 坐标数组1,X %坐标数组2,Y 坐标数组2,……)的形式书写。
每组坐标书写后,可用一个‘’ %表示前面的一组坐标用怎样的形式绘制:线型,点型和颜色。
如‘r ’就表示%用绿色的线绘制,‘b ’蓝色。
‘ro ’红色圆圈等等。
hold on, stem(n*T,xa_sample,'b:x') %hold 保持当前图形窗的内容即:在画完一张图后用hold 命令保持住,继续在%当前窗画图。
%stem 离散序列绘图 %b:x 表示蓝色虚线x 号legend('x(t)','xa(t)','x(nT)','xa(nT)'),xlabel('t(ms)')%legend 这个指令可以在图像的右上角绘出一个图例,表示每条曲线代表什么, %名称需编程者指定。
%xlabel x 轴标注,ylabel :y 轴标注,title :三维坐标标注。
上面程序结果如下图所示:波形分析:x(t)与xa(t)两波形并不相同,但采样后,波形一致。
二、判别离散时间系统的时不变性。
(来源:p105 例3.2.2)设输入序列为)(n x ,系统)2()(n x n y =实现对)(n x 的抽取。
1. 设500,...,2,1),1002sin()(==n n n x π。
取延迟量D (例如D =30)。
记)()(D n x n x D -=,画出)(n x 、)(n x D 的序列波形。
2. 编程求出系统对)(n x 的响应)(n y 以及对)(n x D 的响应)(n y D3. 画出)(D n y 、)(n y D 的波形。
该系统是否为时不变的?程序与分析:% ============= % problem 2% ============= clear% plot x(n) and x(n-D) D=30; N=500; n=1:N;%增量为1的等增量语句 x=sin(2*pi/100*n); for n=1:N+D,if (n-D)<=0, xD(n)=0; else xD(n)=x(n-D); end end%求xD(n)的表达式 figure,subplot(2,1,1),%subplot(n,m,p),将图形分成n*m 个子图,在第p 个子图内绘图 plot(1:N,x,'r:',1:length(xD),xD,'b'), legend('x(n)','xD(n)'),xlabel('n') % plot y(n) and yD(n) for n=1:fix(N/2)%fix,对N/2去尾取整 y(n)=x(2*n); endfor n=1:length(y)+D,if (n-D)<=0, y_delay(n)=0; else y_delay(n)=y(n-D); end end%输入x(n),输出延迟D for n=1:fix(length(xD)/2) yD(n)=xD(2*n); end%输入延迟D ,对应的此时的输出 subplot(2,1,2),%在第二个子图内绘图plot(1:length(y),y,'r:',1:length(y_delay),y_delay,'r.:',1:length(yD),yD,'b.'), legend('y(n)','y(n-D)','yD(n)'),,xlabel('n') axis([0 530 -1 1])%axis(v),v 四元向量[xmin,xmax,ymin,ymax],坐标轴设定在v 规定的范围内上面程序结果如下图所示:波形分析:根据系统时不变的性质,当xD(n)=x(n-D)时,有yD(n)= y(n-D)。
由图2可以看出,y(n-D)与yD(n)的波形并不一致,则:系统为时变系统 三、利用卷积计算信号通过FIR 滤波器的输出,并观察输出信号的input-on 暂态、input-off暂态和稳态阶段。
(来源:p144 例4.1.8)考虑两个滤波器,⎩⎨⎧≤≤⋅=其它0140)75.0(25.0)(1n n h n,]1,5,10,105,1[51--=,-2h ;输入)(n x 为周期方波,第一个周期内⎩⎨⎧≤≤≤≤=492502401)(x x n x 。
1..分别画出)(n x 通过两个滤波器的输出)(1n y 、)(2n y 的波形)1990(≤≤n ,并与书上p144例4.1.8的两幅图比较是否一致。
2. 计算图中稳态部分的响应值。
程序与分析:% ============= % problem 3% =============clearh1=0.25*0.75.^(0:14);h2=1/5*[1 -5 10 -10 5 -1];%矩阵表示方法N=200;n=0:N-1;%增量为1的等增量语句x1=[ones(1,25) zeros(1,25)];% one period of 'x(n)'%ones(m,n),全1矩阵(m行,n列);zeros(m,n),全0矩阵(m行,n列) %eye(n),单位矩阵,n阶方阵x=[x1 x1 x1 x1];y1=conv(x,h1);y2=conv(x,h2);%y=conv(u,h)卷积语句figure,subplot(2,1,1),,plot(n,x,'r:',n,y1(1:N),'b'),%将图形分成2个子图,在第一个子图内绘图axis([0 200 -0.5 2.5]),grid on,%grid:图上加坐标网格legend('input','output'),xlabel('n')subplot(2,1,2),plot(n,x,'r:',n,y2(1:N),'b'),axis([0 200 -1.5 2.5]),grid on,%图上加坐标网格legend('input','output'),xlabel('n')上面程序结果如下图所示:1. 与书上P144图形一致2.1⎩⎨⎧≤≤⋅=其它0140)75.0(25.0)(1n n h nIts DC gain is almost unity:(M=14,m<=M 且m>=0)Ydc=∑h(m)=0.25∑0.75^m=1-0.75^(14+1)=0.9872.2]1,5,10,105,1[51--=,-2hH(Z)=1/5(1-1/Z)^5y dc=H(Z)|z=1→ydc=0实验二一、观察序列频谱,观察信号通过系统后波形与频谱的变化已知输入信号)(2)(5)(21n x n x n x +=,其中)8cos()(1nn x π=,)4cos()(2nn x π=,1,0-=N n ,N 可取5000点。
(1)画出)(),(),(21n x n x n x 的前100点波形 (2)画出)(n x 的DTFT 频谱)(ωX (πω≤≤0)由于计算机无法画出连续频谱,所以可在πω≤≤0内均匀取足够密的点数,如M =5000个频率点kMk πω=)1,0(-=M k ,求出这些频率点上的频谱值∑-=-=10)()(N n nj k k e n x X ωω)1,0(-=M k ,并画出|)(|k X ω随k ω变化的曲线。
(3)某LTI 系统)8()()(--=n u n u n h ,画出系统的幅度频响|)(|ωH(4)求系统对)(nx的响应)(ny(可以自己编程也可利用卷积函数)(⋅conv)。