DSP实验报告一
DSP实验报告
实验一 采样、系统性质及滤波一、实验目的和任务(1)熟悉MA TLAB 的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB 编程并学会创建函数。
(5)观察采样引起的混叠。
(6)判别离散时间系统的时不变性。
(7)卷积计算二、实验内容A 、观察采样引起的混叠设模拟信号为)3sin()2sin(4)5cos()(t t t t x πππ⋅+=,t 的单位为毫秒(ms)。
1. 设采样频率为3kHz ,确定与)(t x 混叠的采样重建信号)(t x a 。
2. 画出)(t x 和)(t x a 在)(60ms t ≤≤范围内的连续波形。
(因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。
)3. 分别用"" 和""⨯在两信号波形上标记出3kHz 采样点。
两信号波形是否相同?采样后的两序列是否相同?实验过程与结果:1)实验程序clear% estimate x(t) and xa(t) with a much higher sampling freq. 'fs1'time_period=6; % unit: msfs1=50; % unit: kHzT1=1/fs1; % unit: msn1=0:fix(time_period/T1);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'),hold on, stem(n*T,xa_sample,'b:x')legend('x(t)','xa(t)','x(nT)','xa(nT)'),xlabel('t(ms)')2) 运行结果分析与讨论:)(t x 和)(t x a 两信号波形不同。
dsp原理与应用实验报告总结
dsp原理与应用实验报告总结DSP(Digital Signal Processing)数字信号处理是利用数字技术对信号进行处理和分析的一种方法。
在本次实验中,我们探索了DSP的原理和应用,并进行了一系列实验以验证其在实际应用中的效果。
以下是对实验结果的总结与分析。
实验一:数字滤波器设计与性能测试在本实验中,我们设计了数字滤波器,并通过性能测试来评估其滤波效果。
通过对不同类型的滤波器进行设计和实现,我们了解到数字滤波器在信号处理中的重要性和应用。
实验二:数字信号调制与解调本实验旨在通过数字信号调制与解调的过程,了解数字信号的传输原理与方法。
通过模拟调制与解调过程,我们成功实现了数字信号的传输与还原,验证了调制与解调的可行性。
实验三:数字信号的傅里叶变换与频谱分析傅里叶变换是一种重要的信号分析方法,可以将信号从时域转换到频域,揭示信号的频谱特性。
本实验中,我们学习了傅里叶变换的原理,并通过实验掌握了频谱分析的方法与技巧。
实验四:数字信号的陷波滤波与去噪处理陷波滤波是一种常用的去除特定频率噪声的方法,本实验中我们学习了数字信号的陷波滤波原理,并通过实验验证了其在去噪处理中的有效性。
实验五:DSP在音频处理中的应用音频处理是DSP的一个重要应用领域,本实验中我们探索了DSP在音频处理中的应用。
通过实验,我们成功实现了音频信号的降噪、均衡和混响处理,并对其效果进行了评估。
实验六:DSP在图像处理中的应用图像处理是另一个重要的DSP应用领域,本实验中我们了解了DSP在图像处理中的一些基本原理和方法。
通过实验,我们实现了图像的滤波、边缘检测和图像增强等处理,并观察到了不同算法对图像质量的影响。
通过以上一系列实验,我们深入了解了DSP的原理与应用,并对不同领域下的信号处理方法有了更深刻的认识。
本次实验不仅加深了我们对数字信号处理的理解,也为日后在相关领域的研究与实践提供了基础。
通过实验的结果和总结,我们可以得出结论:DSP作为一种数字信号处理的方法,具有广泛的应用前景和重要的实际意义。
DSP实验报告
实验一:CPU 定时器实验一:实验目的1、熟悉F2812 的CPU 定时器;2、掌握F2812 的CPU 定时器的控制方法;3、学会使用CPU 定时器中断方式控制程序流程。
二:实验设备计算机,CCS 3.1 版软件,DSP 硬件仿真器,E300 实验箱,2812CPU 板。
三:实验原理样例实验是采用CPU 定时器来定时使LED 亮灭的。
F2812 的CPU 定时器不同于事件管理器模块(EVA、EVB)中的通用定时器(GP)。
F2812 的CPU共有三个定时器,其中,CPU 定时器 1 和 2 被保留用作实时操作系统OS(例如DSPBIOS),CPU 定时器0 可以供用户使用。
定时器的一般操作如下:将周期寄存器PRDH:PRD 中的值装入32 为计数器寄存器TIMH:TIM。
然后计数器寄存器以F281x 的SYSCLKOUT 速率递减。
当计数器减到0 时,就会产生一个定时器中断输出信号(一个中断脉冲)。
下图为CPU 定时器的内部结构:四:实验步骤1 、F2812CPU 板的JUMP1 的1 和2 脚短接,拨码开关SW1 的第二位置ON;其余置OFF。
2 、E300 底板的开关SW4 的第2 位置ON,其余位置OFF。
其余开关设置为OFF。
3 、运行CCS 软件,调入样例程序,装载并运行;(进入CCS 界面后需要点“Debug--Connect”)4 、加载“..\ e300_03_cpu_timer\Debug\Example_281x_cpu_timer.out”;5 、单击“Debug \ Animate”运行,可观察到灯LED1~LED8 的变化规律:6 、单击“Debug \ Halt”,暂停程序运行,LED 灯停止闪烁;单击“Debug \ Run”,运行程序,LED 灯又开始按上述规律变化;五:实验程序及结果修改后程序如下:/*;**************************************************************;* 北京达盛科技有限公司;* 研发部;*;* ;*************************************************************//*----------------------- 文件信息----------------------------;*;* 文件名称: Example_DSP281x_e300_switch.c;* 适用平台: DSP E300 实验箱;;* CPU类型: DSP TMS320F2812;* 软件环境: CCS3.1;* 试验接线: 1、F2812CPU板上:JUMP1的1和2脚短接,拨码开关SW1的第二位置ON;;* 2、E300底板的开关SW4的第2位置ON,其余置OFF。
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技术 实验一报告模板
《DSP技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称:数据存储实验二、实验目的掌握TMS320F2812的内部结构;熟悉CCS软件的使用三、实验内容修改例子程序,实现以下功能:(1)往0x003F9020地址开始的八个存储单元依次写入0,1,2,……,7八个数;读取0x003F9020地址开始的八个存储单元内容依次写入0x003F9028地址开始的八个存储单元内;(2)从0x003F9020地址开始的八个存储单元的内容依次与0x003F9028地址开始的八个存储单元内容相乘,运算结果依次存入0x003F9030地址开始的八个存储单元内;从0x003F9020地址开始的八个存储单元的内容依次与0x003F9028地址开始的八个存储单元内容相加,运算结果依次存入0x003F9038地址开始的八个存储单元内;(3)将0x003F9020地址开始的32个存储单元的数据从小到大排序,排序后的结果依次存入0x003F9040地址开始的32个存储单元内四、实验程序与结果分析程序:void main(void){int i,n;volatile unsigned int *room = (volatile unsigned int *)0x3f9020;volatile unsigned int *room2= (volatile unsigned int *)0x3f9030;volatile unsigned int *room3= (volatile unsigned int *)0x3f9040;volatile unsigned int *room4= (volatile unsigned int *)0x3f9090;volatile unsigned int *room5= (volatile unsigned int *)0x3f90A0;volatile unsigned int *temp= (volatile unsigned int *)0x3f9090;unsigned int max;// Initialize System Control:// PLL, WatchDog, enable Peripheral ClocksInitSysCtrl();// Disable CPU interruptsDINT;// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000;IFR = 0x0000;/*对相应的内存空间赋值*/for(i=0;i<8;i++){* room=i;*room4=i;*(room+8)=i;*(room4+8)=i;*room2=(* room)*(*(room+8));*room5=(* room)*(*(room+8));*(room2+8)=(* room)+(*(room+8));*(room5+8)=(* room)+(*(room+8));room++;room2++;room4++;room5++;}/*从小到大排序并将32个数存在room3中*/for(i=0;i<31;i++){for(n=i+1;n<32;n++){if(temp[i]>=temp[n]){max= temp[i];temp[i]=temp[n];temp[n]=max;}}room3[i]=temp[i];}room3[i]=temp[31];}结果:五、小结通过本次对DSP的初次编程,感觉对C语言要求较高,进一步了解了DSP的内存分布情况,基本掌握了CSS的使用。
DSP实验报告
实验报告实验一、1、A=[1.2,3,5.1,-1.5,2.4],n=[-2,-1,0,1,2];B=0.5m,m=0~10;请编程完成下面操作并画图表示结果A×B,A-B,A.*B,A(n-2)程序A=[1.2,3,5.1,-1.5,2.4];ns1=[-2,-1,0,1,2];m=0:10;B=(0.5).^m;nf1=-2+length(A)-1;nf2=0+length(B)-1;n1=-2:nf1;n2=0:nf2;n=min(ns1,0):max(nf1,nf2);y1=zeros(1,length(n));y2=y1;y1(find((n>=-2)&(n<=nf1)==1))=A; %给y1赋值Ay2(find((n>=0)&(n<=nf2)==1))=B;y3=y2';ya=y1-y2;ym=y1.*y2;ys=y1*y3;ny=ns1+2;y=A;subplot(321);stem(n1,A,'.');ylabel('A(n)');grid;subplot(322);stem(n2,B,'.');xlabel('n');ylabel('B(n)');grid; subplot(323);stem(n,ya,'.');ylabel('A-B');grid;subplot(324);stem(n,ym,'.');xlabel('n');ylabel('A.*B');grid;subplot(325);stem(ny,y,'.');xlabel('ny');ylabel('A(n-2)');grid; subplot(326);stem(1,ys,'.');xlabel('n');ylabel('A*B');grid;2、p138 2.28n=0:50;x1=0.9.^(abs(n));x2=3*cos(0.5*pi*n+0.25*pi)+2*sin(0.3*pi*n);a=1;N=1000;[X,w]=freqz(x1,a,N);magX=abs(X);angX=angle(X);%subplot(251);stem(n,x1);grid;%title('原序列');ylabel('h(n)');subplot(241);plot(w/pi,magX);grid;title('幅频特性');ylabel('模值');subplot(242);plot(w/pi,angX);grid;title('相频特性');ylabel('弧度');%输入xn,求输出ynny1=n(1)+n(1);ny2=n(end)+n(end);ny=ny1:ny2;y1=conv(x1,x2);subplot(243);stem(n,x2);grid;title('输入序列x(n)');ylabel('y(n)');subplot(244);stem(ny,y1);grid;title('h2(n)*x(n)');ylabel('y(n)');n=0:50;x3=0.3.^n+0.5.^n;x2=3*cos(0.5*pi*n+0.25*pi)+2*sin(0.3*pi*n);a=1;N=1000;[X,w]=freqz(x3,a,N);magX=abs(X);angX=angle(X);%subplot(256);stem(n,x3);grid;%title('原序列');ylabel('h(n)'); subplot(245);plot(w/pi,magX);grid; title('幅频特性');ylabel('模值'); subplot(246);plot(w/pi,angX);grid; title('相频特性');ylabel('弧度');%输入xn,求输出ynny1=n(1)+n(1);ny2=n(end)+n(end);ny=ny1:ny2;y2=conv(x3,x2);subplot(247);stem(n,x2);grid;title('输入序列x(n)');ylabel('y(n)'); subplot(248);stem(ny,y2);grid;title('h2(n)*x(n)');ylabel('y(n)');2.34.clear all;n=0:0.5:39;x=2*cos(pi*n/5);subplot(331);stem(n,x);B1=[1,1];A1=[1,-0.6];y1=filter(B1,A1,x);subplot(332);stem(n,y1);subplot(333);zplane(B1,A1);subplot(334);stem(n,x);B2=[1,1,1];A2=[1,0.5,-0.25]; y2=filter(B2,A2,x);subplot(335);stem(n,y2);subplot(336);zplane(B2,A2);subplot(337);stem(n,x);B3=[1,0,1];A3=[1,-6,9];y3=filter(B3,A3,x);subplot(338);stem(n,y3);subplot(339);zplane(B3,A3);实验二、p211 3.6clc; clear all;n=0:4;x=[2,1,4,2,3];[H, w]=freqz(x,1,'whole'); figure(1);plot(abs(H));hold on;[Y]=fft(x);stem(n*512/5,abs(Y)); grid;n=0:7;x=[2,1,4,2,3,0,0,0];[H, w]=freqz(x,1,'whole'); figure(2);plot(abs(H));hold on;[Y]=fft(x);stem(n*512/8,abs(Y)); grid;Xk =Columns 1 through 77.3223 + 0.0000i -2.3347 - 0.4963i 0.4792 + 0.2134i -0.2926 - 0.2126i 0.1167 + 0.1296i -0.0806 - 0.1397i 0.0357 + 0.1100iColumns 8 through 14-0.0120 - 0.1139i -0.0120 + 0.1139i 0.0357 - 0.1100i -0.0806 + 0.1397i 0.1167 - 0.1296i -0.2926 + 0.2126i 0.4792 - 0.2134iColumn 15-2.3347 + 0.4963i程序:N=8;n=0:1:N-1;xn=3*cos(0.25*pi*n);[Xk]=fft(xn,N);magXk=abs(Xk);angXk=angle(Xk);subplot(221);stem(n,magXk,'.');grid;xlabel('n');title('幅频特性');ylabel('模值');subplot(222);stem(n,angXk,'.');grid;xlabel('n');title('相频特性');ylabel('模值');N=15;n=-7:1:7;for i=1:1:Nxn(i)=0.8.^(abs(i-8));[Xk]=fft(xn,N)magXk=abs(Xk);angXk=angle(Xk);subplot(223);stem(n,magXk,'.');grid;xlabel('n');title('幅频特性');ylabel('模值');subplot(224);stem(n,angXk,'.');grid;xlabel('n');title('相频特性');ylabel('模值');3.32N=11;n=0:1:N-1;k=0:1:N-1;xn=cos(0.48*pi*n)+cos(0.52*pi*n);WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;subplot(221);plot(k,abs(Xk));gridxlabel('k');title('频谱曲线');ylabel('x(k)');N=101;n=0:1:N-1;k=0:1:N-1;n1=0:1:10;xn=cos(0.48*pi*n1)+cos(0.52*pi*n1);xn=[xn,zeros(1,N-length(n1))];%将序列补90个0所需长度WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;subplot(222);plot(k,abs(Xk));gridxlabel('k');title('频谱曲线');ylabel('x(k)');N=101;n=0:1:N-1;k=0:1:N-1;xn=cos(0.48*pi*n)+cos(0.52*pi*n);WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;subplot(223);plot(k,abs(Xk));grid;xlabel('k');title('幅频特性曲线');ylabel('|x(k)|');实验三、5.18 (1)(2)(3)(4)b =1.0000 1.6667 1.3333 1.3333 0.3333 -0.3333a =1.0000 -1.2500 1.2400 -0.8465 0.3675 -0.1147C =8.0587 - 2.9703i8.0587 + 2.9703i31.6073 + 0.0000i-29.5838 -10.1490i-29.5838 +10.1490iB =-0.0000 + 0.7000i-0.0000 - 0.7000i0.6500 + 0.0000i0.3000 + 0.5196i0.3000 - 0.5196iA =17.4429程序:sos=[1,0,1,1,-0.6,0.36;1,-1/3,0,1,-0.65,0;1,2,1,1,0,0.49]; [b,a]=sos2tf(sos)%级联型到直接型的转换[C,B,A]=residuez(6*b,a)%直接型到并联型的转换直接I型直接II型级联型:实验四、P464 7.17椭圆函数数字带通滤波器程序clear,clcFs=25000;wp1=2*5000/Fs;wp2=2*7000/Fs;ws1=2*3500/Fs;ws2=2*8500/Fs; wp=[wp1,wp2];ws=[ws1,ws2];Rp=0.5;As=45;[N,wc]=ellipord(wp,ws,Rp,As);[b,a]=ellip(N,Rp,As,wc);hn=dimpulse(b,a);w0=[ws1*pi,wp1*pi,wp2*pi,ws2*pi];Hx=freqz(b,a,w0);[H,w]=freqz(b,a);dbHx=-20*log10(abs(H)/max(abs(H)));[db,mag,pha,grd,w]=freqz_m(b,a);subplot(2,1,1),plot(12.5*w/pi,db,'linewidth',2);title('椭圆函数数字带通幅度响应(dB)');xlabel('f(KHz)');ylabel('dB');axis([0,12.5,-50,3]);set(gca,'xtickmode','manual','xtick',[1.25,3.5,5,7,8.5,10,12.5]); set(gca,'ytickmode','manual','ytick',[-50,-As,-10,0]);grid; subplot(2,1,2),plot(w/pi,pha,'linewidth',2);title('椭圆函数数字带通相位响应');xlabel('\omega/\pi');ylabel('rad');grid;axis([0,1,-4,4]);figure(2),stem(hn,'.','linewidth',2);title('系统冲激响应');xlabel('n');axis([0,121,-0.15,0.15]);N=4;切比雪夫I型带通滤波器clear,clcFs=25000;wp1=2*5000/Fs;wp2=2*7000/Fs;ws1=2*3500/Fs;ws2=2*8500/Fs; wp=[wp1,wp2];ws=[ws1,ws2];Rp=0.5;As=45;[N,wc]=cheb1ord(wp,ws,Rp,As);[b,a]=cheby1(N,Rp,wc)hn=dimpulse(b,a)w0=[ws1*pi,wp1*pi,wp2*pi,ws2*pi];Hx=freqz(b,a,w0);[H,w]=freqz(b,a);dbHx=-20*log10(abs(H)/max(abs(H)));[db,mag,pha,grd,w]=freqz_m(b,a);subplot(2,1,1),plot(12.5*w/pi,db,'linewidth',2);title('切比雪夫I型数字带通幅度响应(dB)');xlabel('f(KHz)');ylabel('dB');axis([0,12.5,-50,3]);set(gca,'xtickmode','manual','xtick',[1.25,3.5,5,7,8.5,10,12.5]); set(gca,'ytickmode','manual','ytick',[-50,-As,-10,0]);grid; subplot(2,1,2),plot(w/pi,pha,'linewidth',2);title('切比雪夫I型数字带通相位响应');xlabel('\omega/\pi');ylabel('rad');grid;axis([0,1,-4,4]);figure(2),stem(hn,'.','linewidth',2);title('系统冲激响应');xlabel('n');axis([0,151,-0.16,0.16]);N=5;切比雪夫II型带通滤波器clear,clcFs=25000;wp1=2*5000/Fs;wp2=2*7000/Fs;ws1=2*3500/Fs;ws2=2*8500/Fs; wp=[wp1,wp2];ws=[ws1,ws2];Rp=0.5;As=45;[N,wc]=cheb2ord(wp,ws,Rp,As);[b,a]=cheby2(N,As,wc);hn=dimpulse(b,a);w0=[ws1*pi,wp1*pi,wp2*pi,ws2*pi];Hx=freqz(b,a,w0);[H,w]=freqz(b,a);dbHx=-20*log10(abs(H)/max(abs(H)));[db,mag,pha,grd,w]=freqz_m(b,a);subplot(2,1,1),plot(12.5*w/pi,db,'linewidth',2);title('切比雪夫II型数字带通幅度响应(dB)');xlabel('f(KHz)');ylabel('dB');axis([0,12.5,-50,3]);set(gca,'xtickmode','manual','xtick',[1.25,3.5,5,7,8.5,10,12.5]); set(gca,'ytickmode','manual','ytick',[-50,-As,-10,0]);grid; subplot(2,1,2),plot(w/pi,pha,'linewidth',2);title('切比雪夫II型数字带通相位响应');xlabel('\omega/\pi');ylabel('rad');grid;axis([0,1,-4,4]);figure(2),stem(hn,'.','linewidth',2);title('系统冲激响应');xlabel('n');axis([0,60,-0.22,0.22]);N=5;巴特沃斯型带通滤波器clear,clcFs=25000;wp1=2*5000/Fs;wp2=2*7000/Fs;ws1=2*3500/Fs;ws2=2*8500/Fs; wp=[wp1,wp2];ws=[ws1,ws2];Rp=0.5;As=45;[N,wc]=buttord(wp,ws,Rp,As);[b,a]=butter(N,wc);hn=dimpulse(b,a);w0=[ws1*pi,wp1*pi,wp2*pi,ws2*pi];Hx=freqz(b,a,w0);[H,w]=freqz(b,a);dbHx=-20*log10(abs(H)/max(abs(H)));[db,mag,pha,grd,w]=freqz_m(b,a);subplot(2,1,1),plot(12.5*w/pi,db,'linewidth',2);title('巴特沃斯型数字带通幅度响应(dB)');xlabel('f(KHz)');ylabel('dB');axis([0,12.5,-50,3]);set(gca,'xtickmode','manual','xtick',[1.25,3.5,5,7,8.5,10,12.5]); set(gca,'ytickmode','manual','ytick',[-50,-As,-10,0]);grid; subplot(2,1,2),plot(w/pi,pha,'linewidth',2);title('巴特沃斯型数字带通相位响应');xlabel('\omega/\pi');ylabel('rad');grid;axis([0,1,-4,4]);figure(2),stem(hn,'.','linewidth',2);title('系统冲激响应');xlabel('n');axis([0,60,-0.2,0.2]);N=7;实验五、P561 8.11,设计线性相位FIR低通数字滤波器dev =0.0575 0.0002h =Columns 1 through 13-0.0028 -0.0087 -0.0086 0.0044 0.0153 0.0066 -0.0058 0.0032 0.0148 0.0005 -0.0126 0.0073 0.0194Columns 14 through 26-0.0096 -0.0201 0.0199 0.0253 -0.0309 -0.0268 0.0537 0.0302 -0.0991 -0.0307 0.3165 0.5320 0.3165Columns 27 through 39-0.0307 -0.0991 0.0302 0.0537 -0.0268 -0.0309 0.0253 0.0199 -0.0201 -0.0096 0.0194 0.0073 -0.0126Columns 40 through 490.0005 0.0148 0.0032 -0.0058 0.0066 0.0153 0.0044 -0.0086 -0.0087 -0.0028程序:clc,clear all;Rp=1;As=75;Fs=100*10^3;f=[25*10^3,30*10^3];a=[1,0];dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)][M,f0,a0,weights]=firpmord(f,a,dev,Fs);h=firpm(M,f0,a0,weights)[H,f]=freqz(h,1,1024,Fs);subplot(211);plot(f/Fs,20*log10(abs(H)),'linewidth',2);title('幅度响应(dB)');xlabel('f/Fs');ylabel('20log|H(e^j^\omega)|(dB)');axis([0,0.5,-140,20]);set(gca,'xtickmode','manual','xtick',[0,0.1,0.2,0.25,0.3,0.4,0.5]); set(gca,'ytickmode','manual','ytick',[-140,-110,-70,-30,0,20]);grid; subplot(212);plot(f/Fs,angle(H),'linewidth',2);grid;title('相位响应');xlabel('f/Fs');ylabel('arg[H(e^j^\omega)]');8.18用firpm,firpmord设计一个FIR线性相位双带通滤波器M =36f0 =0.10000.20000.40000.50000.60000.70000.80000.90001.0000 a0 =11110 weights =17.19471.000017.19471.000017.1947h =Columns 1 through 130.0159 -0.0002 -0.0071 -0.0027 -0.0281 0.0135 -0.0019 -0.0273 -0.0010 0.0271 0.0458 -0.0003 0.0441Columns 14 through 26-0.0461 0.0363 0.0835 -0.2605 -0.0810 -0.0732 0.0333 0.4606 0.0333 -0.0732 -0.0810 -0.2605 0.0835Columns 27 through 390.0363 -0.0461 0.0441 -0.0003 0.0458 0.0271 -0.0010 -0.0273 -0.0019 0.0135 -0.0281 -0.0027 -0.0071Columns 40 through 41-0.0002 0.0159程序:clc,clear all;Rp=1;As=50;f=[0.1,0.2,0.4,0.5,0.6,0.7,0.8,0.9,];a=[0,1,0,1,0];delta1=(10^(Rp/20)-1)/(10^(Rp/20)+1);delta2=(1+delta1)*(10^(-As/20));dev=[delta2,delta1,delta2,delta1,delta2];[M,f0,a0,weights]=firpmord(f,a,dev)h=firpm(M+4,f0,a0,weights)[H,f]=freqz(h,1,1024);subplot(211);plot(f/pi,20*log10(abs(H)),'linewidth',2);grid;title('幅度响应(dB)');xlabel('\omega/\pi');ylabel('20log|H(e^j^\omega)|(dB)');axis([0,1,-100,10]);set(gca,'xtickmode','manual','xtick',[0:0.1:1]);grid on;set(gca,'ytickmode','manual','ytick',[-100,-50,-1,10]);grid onsubplot(212);plot(f/pi,angle(H),'linewidth',2);gridtitle('相位响应');xlabel('\omega/\pi');ylabel('arg[H(e^j^\omega)]'); figure(2),stem(h,'.','linewidth',2);title('系统冲激响应');xlabel('n');axis([0,40,-0.6,0.6]);grid;N=5;实验六频域抽样定理和音频信号的处理一、频域抽样定理的验证给定信号1, 013 ()27, 14260,n nx n n n+≤≤⎧⎪=-≤≤⎨⎪⎩其它。
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实验报告(1)
DSP实验报告小组杜筱佳0904210204薛茜茜0904210215学院电子工程与光电技术学院班级0904210204指导老师刘明实验日期2012.11——2012.12实验一DSP开发基础一、实验目的1、了解DSP开发系统的基本配置2、掌握DSP集成开发环境(CCS)3、掌握C语言开发的基本流程4、熟悉代码调试的基本方法二、实验仪器计算机,C2000 DSP教学实验箱,XDS510USB仿真器,示波器三、实验内容建立工程,对工程进行编译、链接,载入可执行程序,在DSP硬件平台上进行实时调试,利用代码调试工具,查看程序运行结果四、实验要求及实验结果1、项目的编译、链接、调试2、dataIO()子程序入口地址0x003F81F5processing()子程序入口地址0x003F81DBcurrentBuffer.input所在存储器地址0x008480currentBuffer.output所在存储器地址:0x0085003、图形方式显示数据空间currentBuffer.input和current.Buffer.output缓冲存储区的波形currentBuffer.input:图1.1currentBuffer.output:图1.24、.map文件中,.text段在存储空间的地址003f8000长度0000012b;位于TMS320F2812 程序存储空间,物理存储块名称H0_PM.data段在存储空间的地址00000040长度00000001;位于TMS320F2812 数据存储空间,物理存储块名称M0_RAM.bss段在存储空间的地址00000000长度00000000;实验二任意信号发生器一、实验目的1、熟悉DSP硬件开发平台2、熟悉DSP集成开发环境(CCS)3、熟悉TMS320F2812的存储器配置表4、学习DMS320F2812的编程开发5、熟悉代码调试的基本方法二、实验仪器计算机,C2000 DSP教学实验箱,XDS510USB仿真器,示波器三、实验内容建立工程,编写DSP主程序,并对工程进行编译、链接,利用现有DSP 平台实现任一波的产生,通过示波器观察结果。
DSP实验报告1
一、实验目的1、掌握TMS320系列DSP的性能、结构原理、指令系统及编程方法;2、熟练掌握CCS集成开发环境的常用开发、调试功能;3、利用MATLAB语言与开发环境进行函数信号发生器的高级语言设计与仿真;4、根据高级语言仿真结果,进行基于CCS的高级语言和汇编语言仿真;5、在DSP实验板上实现。
二、实验设备TMS320VC5402实验板一套,ICETEC_5100USB仿真器一套,电源一个。
三、算法简介1.多频率信号的检测利用FFT快速傅立叶算法,计算多频率信号的DFT变换,之后求出各点幅值,即求出功率谱,检测所有功率谱的谱线选取各个频域的峰值点,若大于门限,即认为信号中有此频率。
FFT能够快速实现DFT,其原理式如下:X(k)=X1(k)+W N k *X2(k)X(N/2+k)= X1(k)-W N k *X2(k)检测频谱峰值时,利用DSP的进位位(C)和检验位(TC),实现程序的跳转。
由f=k*f s/N,计算频率。
2.Fir滤波器使用以下时域乘法累加式进行计算。
3.正弦信号发生器使用泰勒展开式(取前5项进行近似)计算0.5度正、余弦值,利用下式求出所有0。
~360。
的正弦值:sin(2x)=2*sinx*cosx四、实验内容1.多频率信号的检测首先使用C语言编写正弦信号产生程序,直接产生可用探针FIFEIO的Input.dat数据文件,可以产生1个以下不同频率的正弦信号的加信号,为了能够满足FFT程序的输入格式,在每个信号值之间加入虚部0。
由于输入信号没有考虑到噪声的存在,所以无法验证程序是否能够在噪声中检验信号,但在编写程序时考虑到了噪声的问题。
将信号最大功率谱幅值的十分之一设定为噪声门限,小于此门限的信号一律视为噪声。
意即可检测信噪比为10的信号。
在这里采用硬判决。
以下是第一组实验数据输入产生的信号功率谱波形:输入信号采样频率4000hz,第一个信号频率200hz,第二个信号频率1000hz。
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 函数动态分配存储空间。
DSP技术实验报告-实验1开发环境及流水灯
电子科技大学电子工程学院标准实验报告(实验)课程名称DSP技术实验题目开发环境及流水灯电子科技大学实验报告1.实验目的1.熟悉BF609开发板WL-BF609-EDU;2.熟悉CCES开发平台的使用;3.掌握CCES集成开发环境的基本操作和常用功能;4.掌握CCES工程的创建、程序编写、编译和调试;5.熟悉CCES集成开发环境工具的使用。
2.实验环境1.预装开发环境Cross Core Embedded Studio 1.0.2的计算机;2.BF609开发板一套;3.ADDS HPUSB-ICE仿真器一套。
3.实验内容1.了解BF609开发板WL-BF609-EDU;2.学习CCES集成开发环境的基本操作和常用功能;3.改写程序,实现开发板上的流水灯显示。
4.实验原理1.BF609开发板WL-BF609-EDU简介·CPUADSP-BF609 2个Blackfin内核,性能达500MHz/1000MMAC552K字节的片内SRAM,每个内核148KB的L1 SRAM流水线视觉处理器(PVP),支持HD存储器·存储器NOR FLASH:SST38VF3201 32MbitSPI FLASH:AT45DB161D 16MbitDDR2 SDRAM:MT47H64M16HR-25E 128MB ·LCD显示屏:480x272 TFT LCD TM043NDH02·视频:视频解码:CH7024通过i2c总线控制·C MOS SENSOR可连接CMOS OV9650摄像头进行视频采集可连接CMOS OV3640摄像头进行视频采集通过EPPI与CMOS MODULE链接,通过TWI控制摄像头·音频SSM2603音频Codec24-bit立体声模数和数模转换器高效率耳机放大器立体声线路输入和单声道麦克风输入音频采样速率最高达96kHz·USB OTGMini USB支持USB2.0串行接口:两个RS232串行接口MMC接口:可外接SD存储卡Link Port接口链路端口可连接到其他DSP或处理器的Link Port双向端口具有8条数据线、1条应答线和1条时钟线·键盘:4*4键盘·外部扩展口:4个扩展TWI接口、16-PIN扩展GPIO接口·其他:8个可编程LED灯·JTAG调试接口系统调试单元(SDU)通过JTAG接口提供IEEE-1149.1支持通过仿真器与PC机相连,实现JTAG调试功能ES开发环境简介CrossCore® Embedded Studio是针对ADI公司Blackfin®和SHARC®处理器系列的一流集成开发环境(IDE)。
DSP实验报告一
DSP实验报告一引言本实验旨在通过实际操作,探索数字信号处理(DSP)的基本概念和技术。
DSP是一种通过数字计算来处理连续时间信号的技术,被广泛应用于音频处理、图像处理、通信系统等领域。
本实验将重点介绍数字信号的采样、量化和离散化过程,并通过实际编程实现。
实验过程1. 信号的采样1.1 信号的定义在DSP领域,信号是指随着时间变化的某种物理量,可以是声音、图像等。
我们首先需要定义一个连续的信号,用于采样和处理。
在本次实验中,我们选择了一个简单的正弦信号作为示例:x(t) = A \\sin(2\\pi f t)其中,A表示幅值,f表示频率,t表示时间。
1.2 采样过程为了将连续信号转换为离散信号,我们需要对信号进行采样。
采样是指在一定时间间隔内对连续信号进行测量。
我们可以通过模拟采样器来模拟采样过程。
在本实验中,我们选择了采样频率为100Hz,即每秒采样100次。
使用Python编程实现采样过程:import numpy as np# 信号参数设置A =1f =10# 采样频率设置fs =100# 采样点数设置N =100# 生成时间序列t = np.arange(N) / fs# 生成采样信号x = A * np.sin(2* np.pi * f * t)上述代码中,我们通过调整A和f的值来模拟不同的信号。
生成的信号将存储在x变量中,可以用于后续处理。
2. 信号的量化2.1 量化过程量化是指将连续信号的幅值转换为离散的数值。
在实际应用中,我们通常使用有限位数来表示信号的幅值。
常用的量化方式有线性量化和非线性量化。
在本实验中,我们选择了线性量化方式。
具体的量化过程可以通过下列Python代码实现:import math# 量化位数设置bits =8# 量化步长计算step_size =2* A / (2** bits -1)# 信号的量化x_quantized = np.round(x / step_size) * step_size上述代码中,我们通过调整bits的值来控制量化位数。
dsp实验报告
dsp实验报告DSP实验报告一、引言数字信号处理(Digital Signal Processing,DSP)是一种对数字信号进行处理和分析的技术。
它在许多领域中被广泛应用,如通信、音频处理、图像处理等。
本实验旨在通过实际操作,探索和理解DSP的基本原理和应用。
二、实验目的1. 理解数字信号处理的基本概念和原理;2. 掌握DSP实验平台的使用方法;3. 进行一系列DSP实验,加深对DSP技术的理解。
三、实验器材和软件1. DSP开发板;2. 电脑;3. DSP开发软件。
四、实验内容1. 实验一:信号采集与重构在此实验中,我们将通过DSP开发板采集模拟信号,并将其转换为数字信号进行处理。
首先,我们需要连接信号源和开发板,然后设置采样频率和采样时间。
接下来,我们将对采集到的信号进行重构,还原出原始模拟信号,并进行观察和分析。
2. 实验二:滤波器设计与实现滤波器是DSP中常用的模块,用于去除或增强信号中的特定频率成分。
在此实验中,我们将学习滤波器的设计和实现方法。
首先,我们将选择合适的滤波器类型和参数,然后使用DSP开发软件进行滤波器设计。
最后,我们将将设计好的滤波器加载到DSP开发板上,并进行实时滤波处理。
3. 实验三:频谱分析与频域处理频谱分析是DSP中常用的方法,用于分析信号的频率成分和能量分布。
在此实验中,我们将学习频谱分析的基本原理和方法,并进行实际操作。
我们将采集一个包含多个频率成分的信号,并使用FFT算法进行频谱分析。
然后,我们将对频谱进行处理,如频率选择、频率域滤波等,并观察处理后的效果。
4. 实验四:音频处理与效果实现音频处理是DSP中的重要应用之一。
在此实验中,我们将学习音频信号的处理方法,并实现一些常见的音频效果。
例如,均衡器、混响、合唱等。
我们将使用DSP开发软件进行算法设计,并将设计好的算法加载到DSP开发板上进行实时处理。
五、实验结果与分析通过以上实验,我们成功完成了信号采集与重构、滤波器设计与实现、频谱分析与频域处理以及音频处理与效果实现等一系列实验。
DSP实验报告
DSP 实验报告实验一程序的控制与转移一、实验目的 1、掌握条件算符的使用。
2、掌握循环操作指令(BNAZ )和比较操作指令(CMPR ) 二、实验设备计算机 三、实验内容编写程序,实现计算y=∑=51i i x 的值。
四、实验步骤1、点击桌面CCS 2(’C5000)图标,运行CCS 软件。
2、新建一个项目:点击Project -New ,将项目命名为example1,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS 软件不能识别以中文命名的文件夹。
3、新建一个源文件:点击File -New -Source File 可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(example1),保存类型选择*.ASM (如果源文件是C 语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM 为保存类型),我们在这里将保存名字命名为example1.asm 。
4、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS 编译器对该源文件进行编译还需要将源文件添加到项目中去。
添加方法是在工程管理器中右键单击example1.pjt ,在弹出的菜单中选择Add Files ,然后将刚才建立的example1.asm 文件添加到该项目中去。
5、编写源程序6、编写链接配置文件:只有汇编源程序是不够的,一个完整的DSP 程序至少包含三个部分:主程序(*.asm)、中断向量表(vectors.asm)、链接配置文件(*.cmd)。
这里先介绍一下链接配置文件。
链接配置文件有很多功能,这里先介绍最常用的也是必须的两条:1.存贮器的分配 2.标明程序入口。
由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文件都可以参考此例来完成:/*example1.cmd */ vectors.obj example1.obj -o example1.out -m example1.map-estartMEMORY{PAGE 0:EPROM:org=0090H len=0F70HVECS: org=0080H len=0010HPAGE 1:SPRAM:org=1000H len=1000HDARAM:org=2000H len=2000H}SECTIONS{.text :>EPROM PAGE 0.data :>EPROM PAGE 0.bss :>SPRAM PAGE 1STACK :>DARAM PAGE 1.vectors :>VECS PAGE 0}7、编写中断向量表文件/* vectors.asm */.title "vectors.asm".ref start.sect ".vectors"B start.end8、对项目进行编译和链接:把example1.asm、vectors.asm、example1.cmd依次添加到项目后,点击Project-Compile File,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.OUT文件。
DSP实验报告
实验一:闪灯实验熟悉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.利用示波器观测系统时钟,并测量产生信号的波形和周期。
实验结果观察示波器的波形如下:实验二:FFT与滤波器设计掌握DSP算法实现与在线仿真技巧本实验要求学生掌握FFT、滤波器设计、匹配滤波等数字信号处理流程和设计方法,利用DSP实现对模拟I、Q两路回波信号的匹配滤波,并对实验结果进行分析。
dsp实验报告
DSP实验报告班级:电信09-2班学号:3090718208姓名:指导老师:实验一:编制链接控制文件一.实验目的1.学习用汇编语言编制程序;了解汇编语言程序与C 语言程序的区别和CCS 使用它们时在设置上的不同。
2 .学习编制命令文件控制代码的连接。
3 .学会建立和改变map 文件,以及利用它观察DSP 内存使用情况的方法。
4 .熟悉使用软件仿真方式调试程序。
二.实验设备PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.0 软件三.实验原理1.内存映射(map)文件的作用一般地,我们设计、开发的DSP 程序在调试好后,要固化到系统的ROM 中。
为了更精确地使用ROM 空间,我们就需要知道程序的大小和位置,通过建立目标程序的map 文件可以了解DSP 代码的确切信息。
当需要更改程序和数据的大小和位置时,就要适当修改cmd 文件和源程序,再重新生成map 文件来观察结果。
2.源程序分析汇编语言源程序UseCMD.asm 框图:开始↓开设未初始化变量x,y,z↓赋初值:x=1,y=2↓在累加器中计算x+y↓输出结果到z↓循环四.实验步骤1.设置软件仿真模式:2 .打开工程文件3 .设置工程文件4 .编译源文件,下载可执行程序5 .打开观察窗口6 .观察程序运行结果7 .生成内存映像文件8.对照观察map 文件和cmd 文件的内容9 .改变内存分配五.实验结果通过实验可以发现,修改cmd 文件可以安排程序和数据在DSP 内存资源中的分配和位置;map 文件中描述了程序和数据所占用的实际尺寸和地址。
实验程序中计算变量的取值之和,由于取值较小,所以结果仍为16 位数,程序中仅考虑保存acc 的低16 位作为结果。
但如果计算中有进位等问题就需要考虑保存acc 的高16 位结果了。
DSP技术及应用实验报告 实验一
实验一CCS的使用一、实验目的1.熟悉CCS的开发环境。
2.熟悉几种主要的调试方法。
3.熟悉在调试环境下观察指令执行结果的方法。
二、实验内容1.DSP程序工程文件的建立。
2.往新建工程里添加文件并加以调试。
3.学会CCS集成开发环境的图形显示。
三、实验原理CCS提供了配置、建立、调试、跟踪和分析程序的工具,便于实时、嵌入式信号程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
四、实验步骤S安装及设置(1)CCS 2.0系统的安装。
运行setup.exe应用程序,弹出一个安装界面,选择Code Composer Studio项,就可以开始CCS 2.0的安装,按照屏幕提示完成系统的安装后,将出现Setup CCS2和CCS2两个图标。
(2)系统配置。
双击桌面上的Setup CCS 2图标,启动CCS配置。
如图1所示,在弹出对话框中单击“Clear”按钮,清除以前定义的配置。
从列出的配置文件中,选择能与使用的目标系统相匹配的配置文件。
单击加入系统配置inport按钮,将所选中的配置文件输入到当前正在创建的系统配置中,所选择的配置显示在系统配置栏目的My System目录下。
单击Save按钮,将配置保存在系统寄存器中。
图1(3)系统启动。
双击桌面上CCS 2(’C 5000)图标,启动CCS IDE,将自动利用刚创建的配置打开并显示CCS主界面。
2.新建一个工程(1)在c:\ti\myprojects文件夹中建立一个新的文件夹名为volume1。
(2)将c:\ti\tutorial\sm54xx\volume1中所有文件复制到上述新文件夹中。
(3)在Project菜单项中选择New,弹出新建工程窗口。
在Project 中填写工程名为201215406_1,单击“完成”就建立了一个新的工程项目。
3.往工程里添加文件(1)选择Project菜单选项的Add Files to Project,选择volume.c,并单击“打开”。
DSP实验报告
实验一 离散系统的时域分析一、实验目的1、掌握离散时间信号的MATLAB 表示;2、信号运算;3、差分方程的求解;4、离散时间信号的卷积运算。
二、实验原理1、离散时间信号离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。
它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n 取整数代表时间的离散时刻。
在matlab 中用向量来表示一个有限长度的序列。
2、序列的类型为了分析的方便,在数字信号处理中规定了一些基本的序列。
a) 单位采样序列function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0];调用该函数[x,n]=impseq(-2,8,2); stem(n,x)0010()001()0n n n n n n n n n δδ =⎧=⎨ ≠⎩ =⎧-⎨≠⎩单位采样序列的另一种生成方法n0=-2; n=[-10:10]; nc=length(n); x=zeros(1,nc); for i=1:nc if n(i)==n0 x(i)=1 end endstem(n,x)b) 单位阶跃序列function [x,n]=stepseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)>=0];调用该函数[x,n]=stepseq(-2,8,2); stem(n,x)00010()001()0n n n n n n n n nεε >=⎧=⎨<⎩ >=⎧-⎨ <⎩c) 实数指数序列x(n)=an (运算符“.^”)n=[0:10]; x=0.9.^n; stem(n,x)d) 复数指数序列n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n);real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x)()()j nx n e αω+=(0.1j0.3)n x(n)e (10n 10)-+= -<<e) 正弦和余弦序列 n=[0:10]; x=3*cos(0.1*pi*n+pi/3);stem(n,x)f)随机序列rand(1,N)产生其元素在[0,1]之间均匀分布长度为N 的随机序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息工程系实验报告
课程名称:现代DSP技术
成绩:
实验项目名称:I/O实验实验时间: 2011-10-18
指导教师(签名):
班级:电信082 姓名:李江水学号:810706210
实验目的
1、了解I/O口的扩展;掌握I/O口的操作方法;
2、熟悉在C语言中访问IO口的方法
3、了解数字量与模拟量的区别和联系。
实验设备
计算机,CCS 2.0版软件,DSP仿真器,实验箱。
实验原理
1、开关量输入输出单元
采用8位的数字量输入即由八拨码开关来控制LED灯的显示,当拨码开关都是低电平即都为0时,LED 灯全亮,反之则不亮。
2、CPU初始化
第一步:时钟模式寄存器的初始化clkmd;
第二步:状态寄存器st0、st1的初始化,复位值为0x1800、0x6900;
第三步:处理器工作模式状态寄存器(PMST)的初始化;
第四步:软件等待状态寄存器、软件等待状态控制寄存器的初始化;
第五步:分区转换控制寄存器(BSCR)初始化。
第六步:
*(unsigned int*)IMR=0x0;屏蔽所以中断,IMR为中断屏蔽寄存器。
*(unsigned int*)IFR=0xffff;IFR为中断标志寄存器,中断标志清0
实验步骤与结果分析
开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project→Open菜单打开exp03_cpu2目录下面的工程文件“exp03.pjt”。
用下拉菜单中Project-->Open,打开“exp03_cpu2\ exp03.pjt”,双击“Source”,可查看源程序。
在File→Load Program菜单下加载exp03_cpu2\debug目录下的exp03.out文件。
运行程序,分别调整开关量输入单元的开关K1~K8,观察LED指示灯LED1~LED8亮灭的变化,以及开关量输入和输出状态是否一致。
关闭所有窗口,本实验完毕。
分别调整K1到K8的开关,当开关为低电平即为零时,LED灯亮,当开关为高电平即为1时,LED灯不亮。
当K1、K3、K5、K7为0时,LED灯的显示如下图1。
图1 LED灯的显示
思考与练习
1、修改程序,将开关亮输入的数据存储在地址为0x1000H的内存单元中,并查看内存单元,存储操作是否成功。
修改的程序代码序列如下图2
图2 修改过的程序代码
图3 内存单元
通过修改代码序列,查看内存单元的数据表明存储操作已成功。
实验心得
通过本次实验,了解I/O口的扩展并且初步掌握I/O口的操作方法;熟悉如何在C语言中访问IO口的方法,同时了解数字量与模拟量的区别和联系。