数字信号处理实验

合集下载

数字信号处理实验报告 3

数字信号处理实验报告 3

数字信号处理实验报告姓名:班级:通信学号:实验名称:频域抽样定理验证实验类型:验证试验指导教师:实习日期:2013.频域采样定理验证实验一. 实验目的:1. 加深对离散序列频域抽样定理的理解2.了解由频谱通过IFFT 计算连续时间信号的方法3.掌握用MATLAB 语言进行频域抽样与恢复时程序的编写方法 4、用MATLAB 语言将X(k)恢复为X(z)及X(e jw )。

二. 实验原理:1、1、频域采样定理: 如果序列x(n)的长度为M ,频域抽样点数为N ,则只有当频域采样点数N ≥M 时,才有x N (n)=IDFT[X(k)]=x(n),即可由频域采样X(k)无失真的恢复原序列 x(n)。

2、用X(k)表示X(z)的内插公式:∑-=-----=10111)(1)(N k kNNzWz k X Nz X内插函数: zWzkNNN z 1k111)(-----=ϕ频域内插公式:∑-=-=10)2()()(N K j k Nk X e X πωϕω频域内插函数:e N j N N )21()2sin()2sin(1)(--=ωωωωϕ三. 实验任务与步骤:实验一:长度为26的三角形序列x(n)如图(b)所示,编写MATLAB 程序验证频域抽样定理。

实验二:已知一个时间序列的频谱为X(e jw )=2+4e -jw +6e -j2w +4e -j3w +2e -j4w分别取频域抽样点数N为3、5和10,用IPPT计算并求出其时间序列x(n),用图形显示各时间序列。

由此讨论原时域信号不失真地由频域抽样恢复的条件。

实验三:由X32(k)恢复X(z)和X(e jw)。

四.实验结论与分析:实验一:源程序:M=26;N=32;n=0:M; %产生M长三角波序列x(n)xa=0:floor(M/2);xb= ceil(M/2)-1:-1:0; xn=[xa,xb];Xk=fft(xn,512); %1024点FFT[x(n)], 用于近似序列x(n)的TFX32k=fft(xn,32); %32点FFT[x(n)]x32n=ifft(X32k); %32点IFFT[X32(k)]得到x32(n)X16k=X32k(1:2:N); %隔点抽取X32k得到X16(K)x16n=ifft(X16k,N/2); %16点IFFT[X16(k)]得到x16(n)subplot(3,2,2);stem(n,xn,'.');box ontitle('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])k=0:511;wk=2*k/512;subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),'.');box ontitle('(c) 16点频域');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200])n1=0:N/2-1;subplot(3,2,4);stem(n1,x16n,'.');box ontitle('(d) 16点IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),'.');box ontitle('(e) 32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200])n1=0:N-1;subplot(3,2,6);stem(n1,x32n,'.');box ontitle('(f) 32点IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])结果如下所示:实验一分析:序列x(n)的长度M=26,由图中可以看出,当采样点数N=16<M时,x16(n)确实等于原三角序列x(n)以16为周期的周期延拓序列的主值序列。

数字信号处理实验报告

数字信号处理实验报告

实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。

2、熟悉离散信号和系统的时域特性。

3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。

4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。

二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。

2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。

信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。

根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。

三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。

(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。

数字信号处理实验报告

数字信号处理实验报告

《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。

二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。

如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。

为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。

对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。

取模|)(|k jw e X 可绘出幅频特性曲线。

数字信号处理实验4

数字信号处理实验4

实验4 离散时间系统的频域分析一、实验目的(1)了解离散系统的零极点与系统因果性和稳定性的关系; (2)加深对离散系统的频率响应特性基本概念的理解; (3)熟悉MATLAB 中进行离散系统零极点分析的常用子函数; (4)掌握离散系统幅频响应和相频响应的求解方法。

二、知识点提示本章节的主要知识点是频率响应的概念、系统零极点对系统特性的影响;重点是频率响应的求解方法;难点是MATLAB 相关子函数的使用。

三、实验原理1.离散时间系统的零极点及零极点分布图设离散时间系统系统函数为NMzN a z a a z M b z b b z A z B z H ----++++++++==)1()2()1()1()2()1()()()(11 (4-1) MATLAB 提供了专门用于绘制离散时间系统零极点图的zplane 函数: ①zplane 函数 格式一:zplane(z, p)功能:绘制出列向量z 中的零点(以符号"○" 表示)和列向量p 中的极点(以符号"×"表示),同时画出参考单位圆,并在多阶零点和极点的右上角标出其阶数。

如果z 和p 为矩阵,则zplane 以不同的颜色分别绘出z 和p 各列中的零点和极点。

格式二:zplane(B, A)功能:绘制出系统函数H(z)的零极点图。

其中B 和A 为系统函数)(z H (4-1)式的分子和分母多项式系数向量。

zplane(B, A) 输入的是传递函数模型,函数首先调用root 函数以求出它们的零极点。

②roots 函数。

用于求多项式的根,调用格式:roots(C),其中C 为多项式的系数向量,降幂排列。

2.离散系统的频率特性MATLAB 提供了专门用于求离散系统频响特性的freqz 函数,调用格式如下: ①H = freqz(B,A,W)功能:计算由向量W (rad )指定的数字频率点上(通常指[0,π]范围的频率)离散系统)(z H 的频率响应)e (j ωH ,结果存于H 向量中。

数字信号处理实验

数字信号处理实验

数字信号处理实验实验一信号、系统及系统响应1、实验目的认真复习采样理论、离散信号与系统、线性卷积、序列的z 变换及性质等有关内容;掌握离散时间序列的产生与基本运算,理解离散时间系统的时域特性与差分方程的求解方法,掌握离散信号的绘图方法;熟悉序列的z 变换及性质,理解理想采样前后信号频谱的变化。

2、实验内容a. 产生长度为500 的在[0,1]之间均匀分布的随机序列,产生长度为500 的均值为0 单位方差的高斯分布序列。

b. 线性时不变系统单位脉冲响应为h(n)=(0.9)nu(n),当系统输入为x(n)=R10(n)时,求系统的零状态响应,并绘制波形图。

c. 描述系统的差分方程为:y(n)-y(n-1)+0.9y(n-2)=x(n),其中x(n)为激励,y(n)为响应。

计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位脉冲响应h(n);计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位阶跃响应s(n);由h(n)表征的这个系统是稳定系统吗?d. 序列x(n)=(0.8)nu(n),求DTFT[x(n)],并画出它幅度、相位,实部、虚部的波形图。

观察它是否具有周期性?e. 线性时不变系统的差分方程为y(n)=0.7y(n-1)+x(n),求系统的频率响应H(ejω),如果系统输入为x(n)=cos(0.05πn)u(n),求系统的稳态响应并绘图。

f. 设连续时间信号x(t)=e-1000|t|,计算并绘制它的傅立叶变换;如果用采样频率为每秒5000 样本对x(t)进行采样得到x1(n),计算并绘制X1(ejω),用x1(n)重建连续信号x(t),并对结果进行讨论;如果用采样频率为每秒1000 样本对x(t)进行采样得到x2(n),计算并绘制X2(ejω),用x2(n)重建连续信号x(t),并对结果进行讨论。

加深对采样定理的理解。

g. 设X1(z)=z+2+3z-1,X2(z)=2z2+4z+3+5z-1,用卷积方法计算X1(z)X2(z)。

数字信号处理实验报告_五个实验

数字信号处理实验报告_五个实验

实验一 信号、系统及系统响应一、 实验目的1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;2、熟悉时域离散系统的时域特性;3、利用卷积方法观察分析系统的时域特性;4、掌握序列傅立叶变换的计算机实现方法,利用序列的傅立叶变换对连续信号、离散信号及系统响应进行频域分析。

二、 实验原理及方法采样是连续信号数字处理的第一个关键环节。

对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系式的理解。

对一个连续信号)(t x a 进行理想采样的过程可用下式表示:)()()(^t p t t xx aa=其中)(^t x a 为)(t x a 的理想采样,p(t)为周期脉冲,即∑∞-∞=-=m nT t t p )()(δ)(^t x a的傅立叶变换为)]([1)(^s m a m j X T j a XΩ-Ω=Ω∑∞-∞=上式表明^)(Ωj Xa为)(Ωj Xa的周期延拓。

其延拓周期为采样角频率(T /2π=Ω)。

只有满足采样定理时,才不会发生频率混叠失真。

在实验时可以用序列的傅立叶变换来计算^)(Ωj X a 。

公式如下:Tw jw ae X j X Ω==Ω|)()(^离散信号和系统在时域均可用序列来表示。

为了在实验中观察分析各种序列的频域特性,通常对)(jw e X 在[0,2π]上进行M 点采样来观察分析。

对长度为N 的有限长序列x(n),有:n jw N n jw k ke m x eX--=∑=)()(1其中,k Mk πω2=,k=0,1,……M-1 时域离散线性非移变系统的输入/输出关系为 ∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(上述卷积运算也可在频域实现)()()(ωωωj j j e H e X eY =三、 实验程序s=yesinput(Please Select The Step Of Experiment:\n 一.(1时域采样序列分析 s=str2num(s); close all;Xb=impseq(0,0,1); Ha=stepseq(1,1,10);Hb=impseq(0,0,3)+2.5*impseq(1,0,3)+2.2*impseq(2,0,3)+impseq(3,0,3); i=0;while(s);%时域采样序列分析 if(s==1) l=1; k=0;while(1)if(k==0)A=yesinput('please input the Amplitude:\n',...444.128,[100,1000]); a=yesinput('please input the Attenuation Coefficient:\n',...222.144,[100,600]); w=yesinput('please input the Angle Frequence(rad/s):\n',...222.144,[100,600]); end k=k+1;fs=yesinput('please input the sample frequence:\n',...1000,[100,1200]); Xa=FF(A,a,w,fs); i=i+1;string+['fs=',num2str(fs)]; figure(i)DFT(Xa,50,string); 1=yesinput 1=str2num(1); end%系统和响应分析else if(s==2)kk=str2num(kk);while(kk)if(kk==1)m=conv(Xb,Hb);N=5;i=i+1;figure(i)string=('hb(n)');Hs=DFT(Hb,4,string);i=i+1;figure(i)string('xb(n)');DFT(Xb,2,string);string=('y(n)=xb(n)*hb(n)');else if (kk==2)m=conv(Ha,Ha);N=19;string=('y(n)=ha(n)*(ha(n)');else if (kk==3)Xc=stepseq(1,1,5);m=conv(Xc,Ha);N=14;string=('y(n)=xc(n)*ha(n)');endendendi=i+1;figure(i)DFT(m,N,string);kk=yesinputkk=str2num(kk);end卷积定理的验证else if(s==3)A=1;a=0.5;w=2,0734;fs=1;Xal=FF(A,a,w,fs);i=i+1;figure(i)string=('The xal(n)(A=1,a=0.4,T=1)'); [Xa,w]DFT(Xal,50,string);i=i+1;figure(i)string =('hb(n)');Hs=DFT(Hb,4,string);Ys=Xs.*Hs;y=conv(Xal,Hb);N=53;i=i+1;figure(i)string=('y(n)=xa(n)*hb(n)');[yy,w]=DFT(y,N,string);i=i+1;figure(i)subplot(2,2,1)plot(w/pi,abs(yy));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title(FT[x(n)*h(n)]');subplot(2,2,3)plot(w/pi,abs(Ys));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title('FT[xs(n)].FT[h(n)]');endendend子函数:离散傅立叶变换及X(n),FT[x(n)]的绘图函数function[c,l]=DFT(x,N,str)n=0:N-1;k=-200:200;w=(pi/100)*k;l=w;c=x*Xc=stepseq(1,1,5);子函数:产生信号function c=FF(A,a,w,fs)n=o:50-1;c=A*exp((-a)*n/fs).*sin(w*n/fs).*stepseq(0,0,49); 子函数:产生脉冲信号function [x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];子函数:产生矩形框信号function [x,n]=stepseq(n0,n1,n2) n=[n1:n2];x=[(n-n0>=0)];四、 实验内容及步骤1、认真复习采样理论,离散信号与系统,线性卷积,序列的傅立叶变换及性质等有关内容,阅读本实验原理与方法。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。

在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。

本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。

实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。

通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。

实验设置如下:1. 设置采样频率为8kHz。

2. 生成一个正弦信号:频率为1kHz,振幅为1。

3. 生成一个方波信号:频率为1kHz,振幅为1。

4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。

这体现了正弦信号和方波信号在时域上的不同特征。

实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。

在实际应用中,信号的采样和重构对信号处理的准确性至关重要。

实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。

2. 设置采样频率为8kHz。

3. 对正弦信号进行采样,得到离散时间信号。

4. 对离散时间信号进行重构,得到连续时间信号。

5. 将重构的信号通过DAC输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。

这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。

重邮课程实验报告

重邮课程实验报告

一、实验名称数字信号处理实验二、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握数字滤波器的设计方法及其应用。

3. 熟悉数字信号处理软件的使用,提高实验技能。

三、实验原理数字信号处理(Digital Signal Processing,DSP)是研究数字信号的产生、处理、分析和应用的科学。

本实验主要涉及以下几个方面:1. 数字滤波器的基本概念:数字滤波器是一种对数字信号进行频率选择的装置,可以用于信号的滤波、增强、抑制等。

2. 滤波器的设计方法:主要包括有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器的设计方法。

3. 数字信号处理软件的使用:利用MATLAB等软件进行数字信号处理实验,提高实验效率。

四、实验器材1. 实验计算机2. MATLAB软件3. 实验指导书五、实验步骤1. 实验一:FIR滤波器设计(1)打开MATLAB软件,创建一个新的脚本文件。

(2)根据实验指导书的要求,输入FIR滤波器的参数,如滤波器的阶数、截止频率等。

(3)运行脚本文件,观察滤波器的频率响应曲线。

(4)根据实验结果,分析滤波器的性能。

2. 实验二:IIR滤波器设计(1)打开MATLAB软件,创建一个新的脚本文件。

(2)根据实验指导书的要求,输入IIR滤波器的参数,如滤波器的阶数、截止频率等。

(3)运行脚本文件,观察滤波器的频率响应曲线。

(4)根据实验结果,分析滤波器的性能。

3. 实验三:数字信号处理软件的使用(1)打开MATLAB软件,创建一个新的脚本文件。

(2)根据实验指导书的要求,输入信号处理的参数,如采样频率、滤波器类型等。

(3)运行脚本文件,观察信号处理的结果。

(4)根据实验结果,分析数字信号处理软件的应用。

六、实验结果与分析1. 实验一:FIR滤波器设计实验结果表明,所设计的FIR滤波器具有较好的频率选择性,滤波效果符合预期。

2. 实验二:IIR滤波器设计实验结果表明,所设计的IIR滤波器具有较好的频率选择性,滤波效果符合预期。

北邮 数字信号处理硬件实验实验报告

北邮 数字信号处理硬件实验实验报告

数字信号处理硬件实验实验报告学院:电子工程学院一、5416常规实验(一)实验一常用指令实验1.代码及注释2.代码实现过程首先,为堆栈分配地址,然后输出端口置为1,灯亮,延时,累加器对此累加,如此循环。

(二)实验二数据存储实验1.代码及注释2.代码实现过程首先设定辅助寄存器ar1的地址,然后将数据存储到ar1中,每次完成操作后ar1指向下一地址,重复8次后结束。

3.相关截图(1)查看内存单元,将之修改为“0x0000”(2)run后,内存单元全部变成了“0xAAAA”3)查看CPU Registers单元(三)实验三I/O实验1.代码及注释2.代码实现过程开始后,读入I/O数据,写出I/O数据,结束。

3.实验结果图拨动开关前拨动开关后(四)实验四定时器实验1.代码及注释exp04.c2.代码实现过程开始后,系统初始化,计时器初始化。

随后输出端口赋值,LED灯开始闪烁。

定时器中断,跳到C程序中断子函数,依次计数,判断是否达到设定的时间,若达到,灯亮灭状态相反,若没有,继续亮灭,并且再次判断。

直到达到设定时间后,重新计数,定时器中断,跳到C程序中断子函数,依次计数,如此反复。

3.实验结果图交替闪烁:(五)实验五INT2中断实验1.代码及注释int2.cPORT.ASMVECTORS.ASMINITIAL.ASM2. 代码实现过程开始后,系统初始化,并中断子程序,八个LED灯在S5的控制下亮灭。

3.实验结果图反复按S5键,灯亮灭变化(六)实验六A/D转换实验1.代码及注释2.代码实现过程开始后,系统初始化并中断子程序。

将采样数据存入数组,并读取出来。

3.相关截图断点处停止A/D转化后的数据波形变化频率调节幅度调节观察memory点击animate,数据变成红色(七)实验七D/A转换实验1.代码及注释DA7303.C/*;***********************************************************************;* 北京达盛科技有限公司;* 研发部;*;* ;*;*--------------------------------------------- 文件信息 --------------- ;*;* 文件名称 : DA7303.C;* 文件功能 : 该文件为测试AD7303的测试程序,CPU=TMS320VC5402LF2407;* 接口说明: CS = SPISTE(IOPC5)-- 配置成IO模式CLK = SPICLK -- 配置成SPI模式DATA = SPIMOSI -- 配置成SPI模式;*-------------------------------------------- 最新版本信息 ------------;* 文件作者 : 迟利刚;* 创建日期 : 2005/01/19;* 版本声明 : v1.0.0;*-----------------------------------------------------------------------//------------------头文件--------------------------------------/*******************************************************************/#include "lf2407.h"#include "math.h"/*******************************************************************///----------------------------------------------------------// --------------- 宏定义 ---------------------------------///----------------------------------------------------------#define UCHAR unsigned char#define UINT16 unsigned int#define UINT32 unsigned long#define TRUE 1#define FALSE 0#define pi 3.1415926#define LEN 1024//--------------- AD7303 控制字 --------------------------------// 15--------14-------13-----12-----11-----10------9-------8-----// INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---// 参考电压--保留---- -B省电--A省电----0/A-1/B-//-------------------------------------------------------------//---------------------------------------------------------/* 端口定义 *///---------------------------------------------------------ioport UINT16 port8001; //定义输出io端口为0x8001;//----------------------------------------------------------/* 全局变量定义 *///---------------------------------------------------------int data_buff[LEN]; //数据缓冲UINT16 show = 0x00aa; //LED显示的数值/************************************************************************************** 所使用的函数原型 ****************************************************************************************/void cpu_init(void); //初始化CPUvoid xint1_init(void); //外部中断1初始化子程序void iopc_init(void); //初始化IOPC设置寄存器void spi_init(void); //初始化SPI设置寄存器interrupt void PHANTOM(void); //伪中断程序interrupt void int1(void); //中断1中断子程序void delay_3us(void); //3us延迟void Delay(UINT16 numbers); //长延迟//-------------------------------------------------------------------/************************************************************************************************ 函数定义 *******************************************************************************************///--------------------------------------------------------------------// 函数名称 : void cpu_init(void)// 函数说明 : 初始化CPU// 输入参数 : 无// 输出参数 : 无//--------------------------------------------------------------------void cpu_init(){asm(" nop ");asm(" nop ");asm(" nop ");asm(" setc INTM"); //禁止所有中断 ST0.9=INTMasm(" clrc SXM"); //抑制符号位扩展asm(" clrc OVM"); //累加器中结果正常溢出asm(" clrc CNF"); //配置 B0为数据储存器/*** Configure the System Control and Status registers ***/* SCSR1=0x00FD; //配置时钟锁相为4倍频CLKOUT=4*10MHZ=40MHZ,MAX CPU freq/*bit 15 0: reservedbit 14 0: CLKOUT = CPUCLKbit 13-12 00: IDLE1 selected for low-power mode when execute IDLE instructionbit 11-9 000: PLL x1 modebit 8 0: reservedbit 7 1: 1 = enable ADC module clockbit 6 1: 1 = enable SCI module clockbit 5 1: 1 = enable SPI module clockbit 4 1: 1 = enable CAN module clockbit 3 1: 1 = enable EVB module clockbit 2 1: 1 = enable EVA module clockbit 1 0: reservedbit 0 1: clear the ILLADR bit*/*SCSR2 = (*SCSR2 | 0x000B) & 0x000F;/*bit 15-7 0's: reservedbit 6 0: Input Qualifier Clocks=5 clockbit 5 0: D'ont write this bit.allows user to disable WD through the WDDIS bit in the WDCR.bit 4 0: XMIF_HI-Z, 0=normal mode, 1=Hi-Z'dbit 3 1: disable the boot ROM, enable the FLASHbit 2 no change MP/MC* bit reflects state of MP/MC* pin bit 1-0 11: 11 = SARAM mapped to prog and data*//*** Disable the watchdog timer ***/* WDCR=0x00EF; //禁止看门狗/*bits 15-8 0's: reservedbit 7 1: clear WD flagbit 6 1: disable the dogbit 5-3 101: must be written as 101bit 2-0 111: WDCLK divider = 64 WDCLK= CLKOUT/512*//*** Setup external memory interface for LF2407 ***/WSGR = 0x001F;/*bit 15-11 0's: reservedbit 10-9 00: bus visibility offbit 8-6 111: 7 wait-state for I/O spacebit 5-3 111: 7 wait-state for data spacebit 2-0 111: 7 wait state for program space*//*** Setup shared I/O pins ***/*MCRA = 0x0000; /* group A pins *//*bit 15 0: 0=IOPB7, 1=TCLKINAbit 14 0: 0=IOPB6, 1=TDIRAbit 13 0: 0=IOPB5, 1=T2PWM/T2CMPbit 12 0: 0=IOPB4, 1=T1PWM/T1CMPbit 11 0: 0=IOPB3, 1=PWM6bit 10 0: 0=IOPB2, 1=PWM5bit 9 0: 0=IOPB1, 1=PWM4bit 8 0: 0=IOPB0, 1=PWM3bit 7 0: 0=IOPA7, 1=PWM2bit 6 0: 0=IOPA6, 1=PWM1bit 5 0: 0=IOPA5, 1=CAP3bit 4 0: 0=IOPA4, 1=CAP2/QEP2bit 3 0: 0=IOPA3, 1=CAP1/QEP1bit 2 0: 0=IOPA2, 1=XINT1bit 1 0: 0=IOPA1, 1=SCIRXDbit 0 0: 0=IOPA0, 1=SCITXD*/*MCRB = 0xFE03; /* group B pins *//*bit 15 1: 0=reserved, 1=TMS2 (always write as 1) bit 14 1: 0=reserved, 1=TMS (always write as 1) bit 13 1: 0=reserved, 1=TD0 (always write as 1) bit 12 1: 0=reserved, 1=TDI (always write as 1) bit 11 1: 0=reserved, 1=TCK (always write as 1) bit 10 1: 0=reserved, 1=EMU1 (always write as 1) bit 9 1: 0=reserved, 1=EMU0 (always write as 1) bit 8 0: 0=IOPD0, 1=XINT2/ADCSOCbit 7 0: 0=IOPC7, 1=CANRXbit 6 0: 0=IOPC6, 1=CANTXbit 5 0: 0=IOPC5, 1=SPISTEbit 4 0: 0=IOPC4, 1=SPICLKbit 3 0: 0=IOPC3, 1=SPISOMIbit 2 0: 0=IOPC2, 1=SPISIMObit 1 1: 0=IOPC1, 1=BIO*bit 0 1: 0=IOPC0, 1=W/R**/*MCRC = 0x0001; /* group C pins *//*bit 15 0: reservedbit 14 0: 0=IOPF6, 1=IOPF6bit 13 0: 0=IOPF5, 1=TCLKINBbit 12 0: 0=IOPF4, 1=TDIRBbit 11 0: 0=IOPF3, 1=T4PWM/T4CMPbit 10 0: 0=IOPF2, 1=T3PWM/T3CMPbit 9 0: 0=IOPF1, 1=CAP6bit 8 0: 0=IOPF0, 1=CAP5/QEP4bit 7 0: 0=IOPE7, 1=CAP4/QEP3bit 6 0: 0=IOPE6, 1=PWM12bit 5 0: 0=IOPE5, 1=PWM11bit 4 0: 0=IOPE4, 1=PWM10bit 3 0: 0=IOPE3, 1=PWM9bit 2 0: 0=IOPE2, 1=PWM8bit 1 0: 0=IOPE1, 1=PWM7bit 0 1: 0=IOPE0, 1=CLKOUT*//*** Configure IOPA pin as an INPUT ***/*PADATDIR = *PADATDIR & 0x00FF;/*** Configure IOPB pin as an INPUT ***/*PBDATDIR = *PBDATDIR & 0x00FF;/*** Configure IOPC pin as an INPUT ***/*PCDATDIR = *PCDATDIR & 0x00FF;/*** Configure IOPD pin as an INPUT ***/*PDDATDIR = *PDDATDIR & 0xFEFF;/*** Configure IOPE pin as an INPUT ***/*PEDATDIR = *PEDATDIR & 0x00FF;/*** Configure IOPF pin as an INPUT ***/*PFDATDIR = *PFDATDIR & 0x7FFF;/*** Setup timers 1 and 2, and the PWM configuration ***/*T1CON = 0x0000; /* disable timer 1 */*T2CON = 0x0000; /* disable timer 2 */*GPTCONA = 0x0000; /* configure GPTCONA */*GPTCONB = 0x0000; /* configure GPTCONB *//*bit 15 0: reservedbit 14 0: T2STAT, read-onlybit 13 0: T1STAT, read-onlybit 12-11 00: reservedbit 10-9 00: T2TOADC, 00 = no timerX event starts ADCbit 8-7 00: T1TOADC, 00 = no timerX event starts ADCbit 6 0: TCOMPOE, 0 = Hi-z all timer compare outputs bit 5-4 00: reservedbit 3-2 00: TXPIN, 00 = forced lowbit 1-0 00: TXPIN, 00 = forced low*/* IMR=0x0000;/*bit 15-6 0: reservedbit 5 0: Level INT6 is maskedbit 4 0: Level INT5 is maskedbit 3 0: Level INT4 is maskedbit 2 0: Level INT3 is maskedbit 1 0: Level INT2 is maskedbit 0 0: Level INT1 is masked*/* IFR=0xFFFF; //清除所有中断标志,"写1清0"}//--------------------------------------------------------------------// 函数名称 : void xint1_init(void)// 函数说明 : 初始化XINT1// 输入参数 : 无// 输出参数 : 无//--------------------------------------------------------------------void xint1_init() //外部中断1初始化子程序{* IMR=0x0001; //使能int1中断 --SPI Peripheral Interrupt Vector 0005h //when SPI INT IS high-priority mode/*bit 15-6 0: reservedbit 5 0: Level INT6 is maskedbit 4 0: Level INT5 is maskedbit 3 0: Level INT4 is maskedbit 2 0: Level INT3 is maskedbit 1 0: Level INT2 is maskedbit 0 0: Level INT1 is masked*/asm(" clrc INTM"); //开总中断}//--------------------------------------------------------------------// 函数名称 : void iopc_init(void)// 函数说明 : 初始化IOPC设置寄存器// 输入参数 : 无// 输出参数 : 无//--------------------------------------------------------------------void iopc_init(){// *MCRB = *MCRB | 0x003C; // 配置SPISTE为IO,SPICLK、SPISOMI、SPISIMO为SPI口 *MCRB = *MCRB | 0x001C;/*bit 15 1: 0=reserved, 1=TMS2 (always write as 1)bit 14 1: 0=reserved, 1=TMS (always write as 1)bit 13 1: 0=reserved, 1=TD0 (always write as 1)bit 12 1: 0=reserved, 1=TDI (always write as 1)bit 11 1: 0=reserved, 1=TCK (always write as 1)bit 10 1: 0=reserved, 1=EMU1 (always write as 1)bit 9 1: 0=reserved, 1=EMU0 (always write as 1)bit 8 0: 0=IOPD0, 1=XINT2/ADCSOCbit 7 0: 0=IOPC7, 1=CANRXbit 6 0: 0=IOPC6, 1=CANTXbit 5 0: 0=IOPC5, 1=SPISTEbit 4 0: 0=IOPC4, 1=SPICLKbit 3 0: 0=IOPC3, 1=SPISOMIbit 2 0: 0=IOPC2, 1=SPISIMObit 1 1: 0=IOPC1, 1=BIO*bit 0 1: 0=IOPC0, 1=W/R**/*PCDATDIR = *PCDATDIR | 0x2020; /*** ConfigureSPISTE as an OUTPUT ***//****output high ******************//*bit 15-8 0: EnDIR 1 = output, 0 = inputbit 7-0 0: IOPEn in--1=high,0=low; out--1=high,0=low*/}//--------------------------------------------------------------------// 函数名称 : void spi_init(void)// 函数说明 : 初始化SPI设置寄存器// 输入参数 : 无// 输出参数 : 无//--------------------------------------------------------------------void spi_init(){* SPICCR = * SPICCR & 0xFF7F; //复位SPI/*bit 7 0: reset SPI*/* SPICCR = 0x004f;/*bit 15-8 0: reservedbit 7 0: reset SPIbit 6 1: Data is output on falling edge and input on rising edge bit 5-4 0: reservedbit 3-0 1: Character Length 16bit*/* SPICTL = 0x000e;/*bit 15-5 0: reservedbit 4 0: Disable RECEIVER OVERRUN Flag bitbit 3 1: SPICLK signal delayed by one half-cycle;bit 2 1: SPI configured as a master.bit 1 1: Enables transmissionbit 0 0: Disables interrupt*/* SPIBRR = 0x0003;/*bit 15-7 0: reservedbit 6-0 3: 10MHZ Baud-Rate*/* SPIPRI = 0x0000;/*bit 15-7 0: reservedbit 6 0: Interrupts are high-priority requestsbit 5-4 0: Immediate stop on suspendbit 3-0 0: Reserved.*/* SPICCR=* SPICCR | 0x0080; //启动spi工作/*bit 7 1: start SPI}//-------------------------------------------------------------------- // 函数名称 : void int1(void)// 函数说明 : 中断1的子程序// 输入参数 : 无// 输出参数 : 无//-------------------------------------------------------------------- interrupt void int1() //中断1中断子程序{UINT16 temp;temp = *PVIR;* IFR=0xFFFF; //清除所有中断标志,"写1清0"asm(" clrc INTM"); //开总中断return;}/************************************************************- 函数名称 : void Delay(int numbers)- 函数说明 : 延时- 输入参数 : numbers- 输出参数 : 无************************************************************/void Delay(UINT16 numbers){UINT16 i,j;for(i=0;i<40000;i++);for(j=0;j<numbers;j++);}/************************************************************- 函数名称 : interrupt void PHANTOM(void)- 函数说明 : 伪中断子程序- 输入参数 : 无- 输出参数 : 无*********************************************************** */interrupt void PHANTOM(void){* IFR=0xFFFF; //清除所有中断标志,"写1清0"asm(" clrc INTM"); //开总中断return;}/************************************************************* ****************** 主函数 ******************************************************************************* */void main(){UINT16 temp,i;//----------系统初始化-------------------------------asm(" nop ");cpu_init(); //初始化CPUasm(" nop ");iopc_init(); //初始化IOPE设置寄存器asm(" nop ");xint1_init(); //外部中断1初始化子程序asm(" nop ");spi_init(); //初始化SPI设置寄存器asm(" nop ");//----------产生正弦波的数据------------------------for(i=0; i<LEN;i++){data_buff[i] = 127 + (int)(127.0*sin(2*pi*i/(LEN-1)));data_buff[i] = data_buff[i] & 0x00ff;}asm(" nop ");//---------发送给AD7303-----------------------------for(;;){for(i=0; i<LEN;i++){*PCDATDIR = *PCDATDIR & 0xffdf; /*** ConfigureSPISTE as an OUTPUT ***//****output low ******************//*bit 15-8 0: EnDIR 1 = output, 0 = inputbit 7-0 0: IOPEn in--1=high,0=low; out--1=high,0=low*///----------------------------------------------------------------* SPITXBUF = data_buff[i] & 0x00ff; //发送控制字、数据给AD7303//AD7303的控制字高8位// 15--------14-------13-----12-----11-----10------9-------8-----// INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---// 0 0 0 0 0 0 0 0//内部参考电压源,DAC-A、B DAC-A、B工作//----------------------------------------------------------------while((* SPISTS & 0x0040) == 0x0); //判断 SPISTS.6(SPI Interrupt Flag) //等于 1 ,说明SPITXBUF中数据发送完 //可以写入数据//等于0,不能再写入数据*PCDATDIR = *PCDATDIR | 0x0020; /*** ConfigureSPISTE as an an OUTPUT ***/ temp = *SPIRXBUF; // 读接收缓冲寄存器,清除SPI Interrupt Flagdelay_3us(); //延迟等待DA转换结束/****output high ******************/}} //----------- 等待SPI中断----------------------------------------while(1){port8001 = show;}}DA7303_54.c/*************************************************************;* 北京达盛科技有限公司;* 研发部;*;* ;*************************************************************//*;* 文件名称 : da7303_54.c;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP TMS320VC54X;* 软件环境 : CCS3.1 (5000系列);* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 用示波器检测D/A转换单元的2号孔接口"输出1"输出一个正弦波;;*************************************************************///------------------头文件--------------------------------------#include "DspRegDefine.h" //VC5402 寄存器定义#include "math.h"//---------------------------------------------------------------/* ****************** 宏定义 ****************************************************************************/#define UCHAR unsigned char#define UINT16 unsigned int#define UINT32 unsigned long#define TRUE 1#define FALSE 0#define pi 3.1415926#define LEN 256//--------------- AD7303 控制字 --------------------------------// 15--------14-------13-----12-----11-----10------9-------8-----// INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---// 参考电压--保留---- -B省电--A省电----0/A-1/B-//-------------------------------------------------------------//---------------------------------------------------------/* 端口定义 *///---------------------------------------------------------ioport UINT16 port8001; //定义输出io端口为0x8001;//----------------------------------------------------------//----------------------------------------------------------/* 全局变量定义 *///---------------------------------------------------------int data_buff[LEN]; //数据缓冲UINT16 show = 0x00aa; //LED显示的数值/*********************************************************************** *************** 所使用的函数原型 *************************************************************************************** */void cpu_init(void); //初始化CPUvoid Delay(UINT16 numbers); //延迟extern void delay_3us(void); //3us延迟void mcbsp0_write_rdy(UINT16 out_data);//MCBSP0发送一个数据void mcbsp0_init_SPI(void);//MCBSP0设置为SPI模式void mcbsp0_close(void);//MCBSP0关闭//-------------------------------------------------------------------/************************************************************************************************ 函数定义 *******************************************************************************************///--------------------------------------------------------------------// 函数名称 : void cpu_init(void)// 函数说明 : 初始化CPU// 输入参数 : 无// 输出参数 : 无//--------------------------------------------------------------------void cpu_init(void){asm(" nop ");asm(" nop ");asm(" nop ");//-------------------------------------------------------------------//CLKMD DEFINITIONS:// PLLMUL (bit 15-12) - 0000 PLL multiplier = 0 (mult by 1)// PLLDIV (bit 11) - 0 PLL divider = 0 (div by 1)// PLLCOUNT (bit 10-3)- 11111111 PLL counter set to max// PLLONOFF (bit 2) - 1 PLL on// PLLNDIV (bit 1) - 1 Select PLL mode// PLLSTATUS (bit 1) - x PLL Status (read only)// ------------------// 0000011111111111 = 0x07ff CLKMD=1 X CLKIN//--------------------------------------------------------------------*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkinwhile(((*(unsigned int*)CLKMD)&01)!=0);*(unsigned int*)CLKMD=0x37ff; //switch to PLL X 4 mode//--------------------------------------------------------------------// ST0 DEFINITIONS:// ARP (bit 15-13) - 000 Auxiliary register pointer// TC (bit 12) - 1 Test/control flag// C (bit 11) - 1 Carry is set to 1 if the result of an addition generates a carry; it is cleared to 0 if the// result of a subtraction generates a borrow.// OVA (bit 10) - 0 Overflow flag for accumulator A// OVB (bit 9) - 0 Overflow flag for accumulator B// DP (bit 8-0) - 00000000 Data-memory page pointer// --------------------// 0001 1000 0000 0000 =0x1800 Reset value//--------------------------------------------------------------------// *(unsigned int*)ST0=0x1800;//--------------------------------------------------------------------// ST1 DEFINITIONS:// BRAF (bit 15) - 0 Block-repeat active flag// CPL (bit 14) - 1 Compiler mode CPL=0 DP;CPL=1 SP// XF (bit 13) - 1 XF status// HM (bit 12) - 0 Hold mode// INTM (bit 11) - 1 Interrupt mode INTM=0,All unmasked interrupts are enabled// Reser (bit 10) - 0 Always read as 0// OVM (bit 9) - 0 Overflow mode// SXM (bit 8) - 1 Sign-extension mode// C16 (bit 7) - 0 Dual 16-Bit/double-precision arithmetic mode// FRCT (bit 6) - 0 Fractional mode// CMPT (bit 5) - 0 Compatibility mode// ASM (bit 4-0) - 00000 Accumulator shift mode// --------------------// 0110 1001 0000 0000 =0x2900 Reset value//--------------------------------------------------------------------// *(unsigned int*)ST1=0x6900;//--------------------------------------------------------------------//IPTR DEFINITIONS?// IPTR (bit 15-7) - 001111111 Run-time Interrupt vector location = 0x3f80 (for now)// MP/~MC (bit 6) - 1 Turn off internal Instruction ROM (use RAM)// OVLY (bit 5) - 1 Turn on internal RAM// AVIS (bit 4) - 1 Address visibility on// DROM (bit 3) - 0 Data ROM of FF00~FFFF is external// CLKOFF (bit 2) - 0 Clockout enabled,only for use clkout=cpu clock// SMUL (bit 1) - 1 Saturate before multiply on MAC// SST (bit 0) - 0 Do not saturate before store// -----------------// 0011 1111 1111 0010 = 0x3ff2/*---------------------------------------------------------------------*/*(unsigned int*)PMST=0x3FF2;//---------------------------------------------------------------------// SWWSR DEFINITIONS?// XPA (bit 15) - 0 Extended program address control bit. XPA is used in conjunctionwith the program space fields// (bits 0 through 5) to select the address range for program spacewait states// I/O (bits 14-12) - 111 set to max wait states for seven// Data1 (bits 11-9) - 111 Seven Wait state for Upper data space(0x8000-0xFFFF)// Data2 (bits 8-6) - 111 Seven Wait states for Lower data space (0x0000 - 0x7FFF)// Prog1 (bits 5-3) - 111 Seven Wait state for Upper program space. (xx8000-xxFFFF)// Prog2 (bits 2-0) - 111 Seven Wait states for Program space. (xx0000-xx7FFF)// -----------------// 1 111 111 111 111 111 - 0x7fff/*--------------------------------------------------------------------*/*(unsigned int*)SWWSR=0x7fff;//--------------------------------------------------------------------//SWCR DEFINITIONS?// Reserved (bits 15-1)// SWSM (bit 0) - 1 wait-state base values are mulitplied by 2// for a maximum of 14 wait states.// --------------------------// 0000 0000 0000 0001//--------------------------------------------------------------------*(unsigned int*)SWCR=0x0001;//--------------------------------------------------------------------//BSCR DEFINITIONS?// BNKCMP (bit 15-12) - 1111 Bank compare. Determines the external memory-bank size. BNKCMP is used to maskthe four MSBs of// an address.// 1111 4k// 1110 8k// 1100 16k// 1000 32k// 0000 64k// PS-DS (bit 11) - 1 One extra cycle is inserted between consecutive data and program reads. // Reserved (bits 10-3) - 00000000// HBH (bit 2) - 0 The hpi bus holder is disabled// BH (bit 1) - 0 The data bus holder is disabled// EXIO (bit 0) - 0 The external bus interface functions as usual// ------------------------------------// 1111 1000 0000 0000//--------------------------------------------------------------------*(unsigned int*)BSCR=0xf800;//--------------------------------------------------------------------asm(" ssbx intm "); //Disable all mask interrupts//--------------------------------------------------------------------// IMR DEFINITIONS// Writing a 1 to any IMR bit position enables the corresponding interrupt (when INTM = 0)// Reserved (bits 15-14) - xx// DMAC5 (bit 13) - 0 DMA channel 5 interrupt mask bit// DMAC4 (bit 12) - 0 DMA channel 4 interrupt mask bit// BXINT1/DMAC3 (bit 11) - 0 McBSP1 transmit interrupt mask bit, or the DMA channel 3// BRINT1/DMAC2 (bit 10) - 0 McBSP1 receive interrupt mask bit, or the DMA channel 2// HPINT (bit 9) - 0 Host to ’54x interrup /mask// INT3 (bit 8) - 0 External interrupt 3 mask// TINT1/DMAC1 (bit 7) - 0 timer1 interrupt mask bit, or the DMA channel 1 interrupt mask bit// DMAC0 (bit 6) - 0 reserved, or the DMA channel 0 interrupt mask bit// BXINT0 (bit 5) - 0 McBSP0 transmit interrupt mask bit// BRINT0 (bit 4) - 0 McBSP0 receive interrupt mask bit// TINT0 (bit 3) - 0 Timer 0 interrupt mask bit// INT2 (bit 2) - 0 External interrupt 2 mask bit// INT1 (bit 1) - 0 External interrupt 1 mask bit// INT0 (bit 0) - 0 External interrupt 0 mask bit// ------------------------------// 0000 0000 0000 0000//--------------------------------------------------------------------*(unsigned int*)IMR=0x0;//--------------------------------------------------------------------// IFR DEFINITIONS// Writing a 1 to any IFR bit position clear the corresponding interrupt mask ,when corresponding interrupt occur IFR corresponding bit=1// Reserved (bits 15-14) - xx// DMAC5 (bit 13) - 1 DMA channel 5 interrupt flag bit// DMAC4 (bit 12) - 1 DMA channel 4 interrupt flag bit// BXINT1/DMAC3 (bit 11) - 1 McBSP1 transmit interrupt flag bit, or the DMA channel 3// BRINT1/DMAC2 (bit 10) - 1 McBSP1 receive interrupt flag bit, or the DMA channel 2// HPINT (bit 9) - 1 Host to ’54x interrutpflak// INT3 (bit 8) - 1 External interrupt 3 flag// TINT1/DMAC1 (bit 7) - 1 timer1 interrupt flag bit, or the DMA channel 1 interrupt mask bit// DMAC0 (bit 6) - 1 reserved, or the DMA channel 0 interrupt flag bit// BXINT0 (bit 5) - 1 McBSP0 transmit interrupt flag bit// BRINT0 (bit 4) - 1 McBSP0 receive interrupt flag bit// TINT0 (bit 3) - 1 Timer 0 interrupt flag bit// INT2 (bit 2) - 1 External interrupt 2 flag bit// INT1 (bit 1) - 1 External interrupt 1 flag bit// INT0 (bit 0) - 1 External interrupt 0 flag bit// ------------------------------// 1111 1111 1111 1111/*--------------------------------------------------------------------*/ *(unsigned int*)IFR=0xffff;//--------------------------------------------------------------------asm(" nop ");asm(" nop ");asm(" nop ");}/************************************************************- 函数名称 : void Delay(int numbers)- 函数说明 : 延时- 输入参数 : numbers- 输出参数 : 无************************************************************/void Delay(UINT16 numbers){UINT16 i,j;for(i=0;i<4000;i++)for(j=0;j<numbers;j++);}/************************************************************************** - 函数名称 : void mcbsp0_write_rdy(UINT16 out_data);- 函数说明 : MCBSP0发送一个数据- 输入参数 : data- 输出参数 : 无- 补充说明 : 内部带是否发送完成的判断************************************************************************** */void mcbsp0_write_rdy(UINT16 out_data){UINT16 j;*(unsigned int*)McBSP0_SPSA=0x0001; //McBSP0_SPSA 指向 SPCR2while ((*(unsigned int *)McBSP0_SPSD&0x0002)==0);//mask XRDY bit,XRDY = 1 Transmitter is ready for new data in DXR[1,2].for(j=0;j<20;j++); //delay*(unsigned int *)McBSP0_DXR1= out_data;}/**************************************************************************- 函数名称 : void mcbsp0_init_SPI(void);- 函数说明 : MCBSP0设置为SPI模式- 输入参数 : 无- 输出参数 : 无- 补充说明 :***************************************************************************/void mcbsp0_init_SPI(void){//--------------------------------------------------------//复位 McBSP0*(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1*(unsigned int*)McBSP0_SPSD=0x0000;//设置SPCR1.0(RRST=0)*(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2*(unsigned int*)McBSP0_SPSD=0x0000;//设置SPCR1.0(XRST=0)//---------------------------------------------------------//延迟Delay(0); //延迟 4000*CPU 时钟周期//等待复位稳定//--------------------------------------------------------- //配置 McBSP0为 SPI 模式*(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1*(unsigned int*)McBSP0_SPSD=0x1800;//DLB (bit 15) 0 Digital loop back mode disabled//RJUST (bit 14-13) 00 Right-justify and zero-fill MSBs in DRR[1,2] //CLKSTP (bit 12-11) 11//X (bit 10-8) 000 Reserved//DXENA (bit 7) 0 data transmit delay bit.DX enabler is off//ABIS (bit 6) 0 A-bis mode is disabled//RINTM (bit 5-4) 00 RINT driven by RRDY。

数字信号处理实验报告

数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握离散时间信号的基本运算和变换方法。

3. 熟悉数字滤波器的设计和实现。

4. 培养实验操作能力和数据分析能力。

二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。

本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。

2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。

3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。

4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。

三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。

(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。

2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。

(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。

3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。

(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。

4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。

(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。

四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。

dsp实验报告

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开发板上进行实时处理。

五、实验结果与分析通过以上实验,我们成功完成了信号采集与重构、滤波器设计与实现、频谱分析与频域处理以及音频处理与效果实现等一系列实验。

数字信号处理实验报告完整版[5篇模版]

数字信号处理实验报告完整版[5篇模版]

数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。

2.应用 DFT 分析信号的频谱。

3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。

2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。

而要研究离散时间信号,首先需要产生出各种离散时间信号。

使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。

通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。

数字信号处理实验报告11-12-10

数字信号处理实验报告11-12-10

《数字信号处理》实验报告专业学号姓名实验一 利用FFT 实现快速卷积一、实验目的1.加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT 进行数字信号处理。

2.掌握循环卷积和线性卷积两者之间的关系。

二、实验原理用FFT 来快速计算有限长度序列的线性卷积。

这种方法就是先将输入信号x(n)通过FFT 变换为它的频谱采样值()x k ,然后再和FIR 滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT )还原为时域序列,即得到输出y(n)。

现以FFT 求有限长序列的卷积及求有限长度序列与较长序列间的卷积为例来讨论FFT 的快速卷积方法。

序列x(n)和h(n)的长差不多。

设x(n)的长为N 1,h(n)的长为N 2,要求∑-=-=⊗=1)()()()()(N m m n x m h n y n x n y用FFT 完成这一卷积的具体步骤如下:①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度121-+≥N N N ,若采用基2-FFT 完成卷积运算,要求m N 2=(m 为整数)。

②用补零方法使x(n)和h(n)变成列长为N 的序列。

1122()01()01()01()01x n n N x n N n N h n n N h n N n N ≤≤-⎧=⎨≤≤-⎩≤≤-⎧=⎨≤≤-⎩③用FFT 计算x(n)和h(n)的N 点离散傅里叶变换。

④完成X(k)和H(k)乘积,)()()(k H k x k Y = ⑤用FFT 计算 ()Y k 的离散傅里叶反变换得*10*10)(1)(1)(⎭⎬⎫⎩⎨⎧⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=∑∑-=--=N k nk N nk N N k W k Y N W k Y N n y三、主要实验仪器及材料微型计算机、Matlab6.5教学版。

四、实验内容1.数字滤波器的脉冲响应为()22()1/2(),8nN h n R n N ==。

数字信号处理实验一报告

数字信号处理实验一报告

实验一:用FFT 对信号作频谱分析1.实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。

2. 实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。

经常需要进行谱分析的信号是模拟信号和时域离散信号。

对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。

频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。

可以根据此式选择FFT 的变换区间N 。

误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。

如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。

如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

3.实验步骤及内容(1)对以下序列进行谱分析。

⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它nn n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。

分别打印其幅频特性曲线。

并进行对比、分析和讨论。

(2)对以下周期序列进行谱分析。

4()cos4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。

分别打印其幅频特性曲线。

并进行对比、分析和讨论。

(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。

数字信号处理

数字信号处理

数字信号处理实验报告一、 实验目的1. 熟练掌握用DFT 对离散序列进行频谱分析;2. 掌握DET 对连续函数频谱分析的方法;3. 了解频谱泄露的原因并解决;4. 对比矩形窗、汉宁窗处理连续函数的优劣并分析;5. 了解FDMA 处理音频信号。

二、 实验内容1. 已知序列 12()=0.5sin(2f n)+sin(2n),015x n f n ππ≤≤,令12f 0.22,0.34f ==,取N=16,32,64,128,画出4个DFT 的频谱图,分析DFT 长度对频谱特性的影响;取12f 0.22,0.25f ==,如何选择DFT 参数才能在频谱分析中分辨出两个频率分量。

2. 假设实际测得的一段信号的表达式为:12()=cos(2f t)+0.75cos(2t)x t f ππ,其中12,f f 自定,试确定一合适的采样频率s f ,利用fft 分析该信号的频谱。

在信号截短时要求:1)使用矩形窗,考虑频谱泄露和频率分辨率等的影响,确定采样数据的长度。

画出信号的时域和频域波形。

2)使用汉宁窗,确定能够分辨出最小谱峰间距的信号长度,并画出对应的信号时域和频域波形图。

3. 频分多址(FDMA )通信系统模型的仿真实现频分多址(FDMA )通信系统模型如图所示:载波信号n载波信号n频分多址(FDMA )通信系统模型要求:1)读入或录制2路及以上的语音信号。

2)将多路语音信号分别与各自的高频载波信号相乘,由于各高频载波信号将各语音信号频谱移到不同频段,复用信号频谱为各信号频谱的叠加,因此,只需传输该复用信号便可在同一信道上实现多路语音信号的同时传输。

3)传输完成后,通过选择合适的带通滤波器,即可获得多个已调信号。

4)再进行解调,即将多个已调信号分别乘以各自的高频载波信号,这样,原始低频信号被移到低频段。

5) 最后通过选择合适的低通滤波器恢复出各原始语音信号,从而实现FDMA通信传输。

三、 分析处理及结论1. 已知序列 12()=0.5sin(2f n)+sin(2n),015x n f n ππ≤≤,令12f 0.22,0.34f ==,取N=16,32,64,128,画出4个DFT 的频谱图,分析DFT 长度对频谱特性的影响;取12f 0.22,0.25f ==,如何选择DFT 参数才能在频谱分析中分辨出两个频率分量(1) 原理分析离散序列存在两个基频f1和f2,对于第一个要求,直接做DFT 变换即可;至于第二个要求,能在频谱分析中分辨出两个频率分量,则分辨率至少满足两个频率之差,此时所取得DFT 点数才能分辨出f1和f2两个频率。

实验一 数字信号处理

实验一  数字信号处理

实验一系统响应及系统稳定性一、实验目的(1)掌握求系统响应的方法。

(2)掌握时域离散系统的时域特性。

(3)分析、观察及检验系统的稳定性。

二实验内容及步骤1、给定一个低通滤波器的差分方程为y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1),输入信号x1(n)=R8(n)x2(n)=u(n)a)分别求出系统对x1(n)=R8(n)和x2(n)=u(n)的响应序列,并画出其波形。

b)求出系统的单位冲响应,画出其波形。

xn1=[1 1 1 1 1 1 1 1 zeros(1,50)];xn2=ones(1,128);xn3=[1,zeros(1,50)];B=[0.05,0.05];A=[1,-0.9];yn1=filter(B,A,xn1);yn2=filter(B,A,xn2);yn3=filter(B,A,xn3);figure(1);n1=0:length(yn1)-1;subplot(2,2,1);stem(n1,yn1,'.');xlabel('n');ylabel('yn1');title('yn1');n2=0:length(yn2)-1;subplot(2,2,2);stem(n2,yn2,'.');xlabel('n');ylabel('yn2');title('yn2');n3=0:length(yn3)-1;subplot(2,2,3);stem(n3,yn3,'.');xlabel('n');ylabel('yn3');title('yn3');2、给定系统的单位脉冲响应为h1(n)=R10(n),h2(n)=δ(n)+2.5δ(n-1)+δ(n-2)+δ(n-3)用线性卷积法分别求系统h1(n)和h2(n)对x1(n)=R8(n)的输出响应,并画出波形。

《数字信号处理》信号卷积实验

《数字信号处理》信号卷积实验

《数字信号处理》信号卷积实验一、实验目的1. 理解卷积的概念及物理意义;2. 通过实验的方法加深对卷积运算的图解方法及结果的理解。

二、实验设备1. 信号与系统实验箱 1台2. 双踪示波器1台3. 铆孔连接线 若干二、实验原理说明卷积积分的物理意义是将信号分解为冲激信号之和,借助系统的冲激响应,求解系统对任意激励信号的零状态响应。

设系统的激励信号为)t (x ,冲激响应为)t (h ,则系统的零状态响应为)(*)()(t h t x t y =()()x t h t d ττ∞-∞=-⎰。

对于任意两个信号)t (f 1和)t (f 2,两者做卷积运算定义为:()()()12f t f t f t d ττ∞-∞=-⎰=)t (f 1*)t (f 2=)t (f 2*)t (f 1。

1. 两个矩形脉冲信号的卷积过程两信号)t (x 与)t (h 都为矩形脉冲信号,如图10-1所示。

下面由图解的方法(图10-1)给出两个信号的卷积过程和结果,以便与实验结果进行比较。

0≤<∞-t210≤≤t 1≤≤t 41≤≤t ∞<≤t 2124τ(b)(a)(c)(d)(e)(f)(g)(h)(i)2卷积结果图10-1 两矩形脉冲的卷积积分的运算过程与结果2. 矩形脉冲信号与锯齿波信号的卷积信号)t (f 1为矩形脉冲信号,)t (f 2为锯齿波信号,如图10-2所示。

根据卷积积分的运算方法得到)t (f 1和)t (f 2的卷积积分结果)t (f ,如图10-2(c)所示。

)t (f 1111tt)t (f 212)t (f *)t (f )t (f 21 (a)(b)(c)t100.5图10-2 矩形脉冲信号与锯齿脉冲信号的卷积积分的结果3. 本实验进行的卷积运算的实现方法在本实验装置中采用了DSP 数字信号处理芯片,因此在处理模拟信号的卷积积分运算时,是先通过A/D 转换器把模拟信号转换为数字信号,利用所编写的相应程序控制DSP 芯片实现数字信号的卷积运算,再把运算结果通过D/A 转换为模拟信号输出。

数字信号处理实验报告_完整版

数字信号处理实验报告_完整版

实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。

2.应用DFT 分析信号的频谱。

3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列x (n )(0≤n ≤N −1)的离散时间傅里叶变换X (e jω)在频率区间(0≤ω≤2π)的N 个等间隔分布的点kω=2πk /N (0≤k ≤N −1)上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列x (n )的N 点DFT X k ,实际上就是x (n )序列的DTFT 在N 个等间隔频率点kω=2πk /N (0≤k ≤N −1)上样本X k 。

2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFTX (ejω)12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。

由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。

如果没有更多的数据,可以通过补零来增加数据长度。

3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。

数字信号处理课程实验报告

数字信号处理课程实验报告

数字信号处理课程实验报告课题名称:IIR滤波器相位校正实验一、实验内容与分析1、实验目的和内容1)利用MATLAB设计一个IIR滤波器;2)结合课本关于全通滤波器特性知识(课本p128),在IIR滤波器后级联一个全通相位滤波器进行相位校正,使此滤波器最终实现线性相位特性;3)分别使用相位校正前后两滤波器实现对某一信号的处理;4)画出IIR滤波器、全通滤波器、相位校正后滤波器的幅度频率特性曲线、相位频率特性曲线,信号时域波形、信号的幅度频率特性曲线、相位频率特性曲线;5)详述实验设计原理,分析相位校正前后两类滤波器对信号处理后的区别。

2、实验的分析1)、IIR滤波器的设计通过对实验内容的理解,我们首先需要设计一个IIR滤波器,对课本第六章的学习我们知道IIR数字滤波器有两种设计方法:间接设计法和直接设计法。

间接设计法中有巴特沃斯滤波器,切比雪夫I型、II型滤波器,椭圆滤波器和贝塞尔滤波器五种。

我们选择设计切比雪夫II型低通滤波器,其中的技术指标为:通带边界频率fp=1000Hz,阻带边界频率fs=2000 Hz,阻带最小衰减As=40 dB,通带最大衰减Ap=1 dB。

2)全通滤波器的设计全通滤波器的幅度特性是在整个频带上均等于常数,或者等于1.信号通过全通滤波器后,其输出的幅度特性保持不变,仅相位发生变化。

由于IIR滤波器后需要级联一个全通相位滤波器,使整个系统实现线性相位特性,为了求解全通滤波器的参数,我们先假设整个系统具有线性相位特性,再根据已经设计好了的切比雪夫II 型滤波器的系统参数,求解全通滤波器的参数。

二、实验的过程1、切比雪夫II型滤波器的设计过程在确定了滤波器的参数之后,我们运用cheb2ord函数计算模拟低通滤波器的最小阶数;然后用cheby2计算滤波器传输函数的系数。

然后运用脉冲响应不变法将模拟低通滤波器转换成数字滤波器。

这样我们就设计出了满足给定参数的切比雪夫II型滤波器。

数字信号的实验报告总结

数字信号的实验报告总结

一、实验背景数字信号处理是现代通信、电子技术、计算机科学等领域的重要基础。

随着科技的不断发展,数字信号处理技术已经广泛应用于各个领域。

为了更好地理解和掌握数字信号处理技术,我们进行了数字信号实验,通过实验加深对数字信号处理理论知识的理解和实际应用。

二、实验目的1. 理解数字信号与模拟信号的区别,掌握数字信号的基本特性。

2. 掌握数字信号的采样、量化、编码等基本过程。

3. 熟悉数字信号处理的基本方法,如滤波、变换等。

4. 提高动手实践能力,培养创新意识。

三、实验内容1. 数字信号的产生与观察首先,我们通过实验软件生成了一些基本的数字信号,如正弦波、方波、三角波等。

然后,观察这些信号在时域和频域上的特性,并与模拟信号进行对比。

2. 数字信号的采样与量化根据奈奎斯特采样定理,我们选取合适的采样频率对模拟信号进行采样。

在实验中,我们设置了不同的采样频率,观察信号在时域和频域上的变化,验证采样定理的正确性。

同时,我们还对采样信号进行了量化,观察量化误差对信号的影响。

3. 数字信号的编码与解码为了便于信号的传输和存储,我们对数字信号进行了编码。

在实验中,我们采用了两种编码方式:脉冲编码调制(PCM)和非归一化脉冲编码调制(A律PCM)。

然后,我们对编码后的信号进行解码,观察解码后的信号是否与原始信号一致。

4. 数字信号的滤波与变换数字滤波是数字信号处理中的重要环节。

在实验中,我们分别实现了低通滤波、高通滤波、带通滤波和带阻滤波。

通过对滤波前后信号的观察,我们了解了滤波器的作用和性能。

此外,我们还进行了离散傅里叶变换(DFT)和快速傅里叶变换(FFT)实验,掌握了信号在频域上的特性。

5. 实际应用案例分析为了更好地理解数字信号处理在实际中的应用,我们选取了两个实际案例进行分析。

第一个案例是数字音频处理,通过实验软件对音频信号进行滤波、压缩等处理。

第二个案例是数字图像处理,通过实验软件对图像进行边缘检测、图像增强等处理。

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

数字信号处理实验电信1班 3120503005 詹筱珊1-11给出如下差分方程:n n x n n y n y ∀=-+--);()2(9.0)1()((1)计算并画出单位脉冲响应12020);(,, -=n n h 。

(2)由此)(n h 规定的系统是否稳定?解:MATLAB 实现程序: a=[1,-1,0.9];b=[1];x=impseq(0,-20,120); %输入x 为单位脉冲序列 n=[-20:120];h=filter(b,a,x); %系统输出为单位脉冲响应 stem(n,h,'.');axis ([-20,120,-1.1,1.1])title('脉冲响应');text(125,-1.1,'n');ylabel('h(n)')sum(abs(h)) %对单位脉冲响应的模值求和程序运行结果:ans =14.8785系统是稳定的。

1-12 已知某模拟信号ta et x 1000)(-=,将它分别用不同的采样频率进行采样得到离散时间信号,试分析在以下两种采样情况下对信号频率的影响。

(1) 采样频率Hz f s 5000=; (2) 采样频率Hz f s 1000=解:(1)MATLAB 实现程序: dt=0.00005;t=-0.005:dt:0.005; xa=exp(-1000*abs(t));fs=5000,Ts=1/fs;n=-25:1:25; x=exp(-1000*abs(n*Ts)); N=500;k=0:1:N;w=pi*k/N; X=x*exp(-j*n'*w);X=real(X);W=[-fliplr(w),w(2:N+1)];X=[fliplr(X),X(2:N+1)];subplot(2,1,1);plot(t*1000,xa);xlabel('时间:ms');ylabel('x1(n)') title('离散信号');hold on stem(n*Ts*1000,x);hold off subplot(2,1,2);plot(w/pi,X);xlabel('以pi 为单位的频率');ylabel('X1(w)');title('离散信号傅里叶变换')运行结果:(2)MATLAB 实现程序: dt=0.00005;t=-0.005:dt:0.005; xa=exp(-1000*abs(t));fs=1000,Ts=1/fs;n=-25:1:25; x=exp(-1000*abs(n*Ts)); N=500;k=0:1:N;w=pi*k/N; X=x*exp(-j*n'*w);X=real(X);W=[-fliplr(w),w(2:N+1)];X=[fliplr(X),X(2:N+1)];subplot(2,1,1);plot(t*1000,xa);xlabel('时间:ms');ylabel('x1(n)') title('离散信号');hold on stem(n*Ts*1000,x);hold off subplot(2,1,2);plot(w/pi,X);xlabel('以pi 为单位的频率');ylabel('X1(w)');title('离散信号傅里叶变换')运行结果:2-25 已知某系统的系统函数为432143213.08.05.12.112.01.03.01.03.0)(--------+-+-++++=z z z z z z z z z H求其零、极点并绘出零、极点图。

解:MATLAB 实现程序:b=[0.3 0.1 0.3 0.1 0.2];a=[1 -1.2 1.5 -0.8 0.3]; r1=roots(a)r2=roots(b) zplane(b,a)运行结果: r1 =0.1976 + 0.8796i 0.1976 - 0.8796i 0.4024 + 0.4552i 0.4024 - 0.4552i r2 =0.3236 + 0.8660i 0.3236 - 0.8660i -0.4903 + 0.7345i -0.4903 - 0.7345i2-26 已知因果系统)()1(9.0)(n x n y n y +-=,绘出)(ωj e H 的幅频和相频特性曲线。

解:MATLAB 实现程序: b=[1,0];a=[1,-0.9][H,w]=freqz(b,a,100,'whole');magH=abs(H);phaH=angle(H); subplot(2,1,1),plot(w/pi,magH);grid xlabel('');ylabel('幅度');title('幅频响应') subplot(2,1,2);plot(w/pi,phaH/pi);gridxlabel('频率( 单位:pi)');ylabel('相位(单位:pi )');title('相频响应')运行结果:2-27 一个线性时不变系统,描绘它的差分方程为)2()1(2)()2(25.0)1(5.0)(-+-+=-+--n x n x n x n y n y n y(1)在1000≤≤n 之间求得并画出系统的脉冲响应,从脉冲响应确定系统的稳定性; (2)画出该系统的幅频、相频特性;(3)如果此系统的输入为)()]3.0sin(4)2.0cos(35[)(1n u n n n x ππ++=,在2000≤≤n 间求系统的输出)(n y ;(4)讨论当输入改为)()]8.0sin(4)2.0cos(35[)(2n u n n n x ππ++=时,输出波形如何变化?为什么?试根据系统的幅频特性解释。

解:MATLAB 实现程序: b=[1,2,1];a=[1,-0.5,0.25]; x=impseq(0,0,100);n=0:100;h=filter(b,a,x);stem(n,h,'.');title('脉冲响应波形');sum(abs(h))figure;[H,w]=freqz(b,a,200);magH=abs(H);phaH=angle(H);subplot(2,1,1),plot(w/pi,magH);grid;xlabel('');ylabel('幅度');title('幅频响应')subplot(2,1,2);plot(w/pi,phaH/pi);grid;xlabel('频率(单位:pi)');ylabel('相位(单位:pi)');title('相频响应');figure;n1=0:200;x1=5+3*cos(0.2*pi*n1)+4*sin(0.3*pi*n1);y1=filter(b,a,x1);subplot(2,1,1);plot(n1,x1);title('输入x1波形');subplot(2,1,2);plot(n1,y1);title('输出y1波形');figure;n1=0:200;x2=5+3*cos(0.2*pi*n1)+4*sin(0.8*pi*n1);y2=filter(b,a,x2);subplot(2,1,1);plot(n1,x2);title('输入x2波形');subplot(2,1,2);plot(n1,y2);title('输出y2波形') 运行结果:ans =6.57143-4 )(n x 是一4点序列:⎩⎨⎧≤≤,030,1)(n n x (1)计算离散时间傅里叶变换(DTFT )即()ωj e X ,并画出它的幅度和相位。

(2)计算)(n x 的4点DFT 。

解:(1)MATLAB 实现程序:x=[1,1,1,1]; w=[0:1:500]*2*pi/500; [H]=freqz(x,1,w);magH=abs(H);phaH=angle(H); subplot(2,1,1);plot(w/pi,magH);gridxlabel('');ylabel('|X|');title('DTFT 的幅度') subplot(2,1,2);plot(w/pi,phaH/pi*180);gridxlabel('以pi 为单位的频率');ylabel('度');title('DTFT 的相角')运行结果:(2)MATLAB实现程序:N=4;k=0:N-1;X=dft(x,N);magX=abs(X),phaX=angle(X)*180/pisubplot(2,1,1);plot(w*N/(2*pi),magH,'--');axis([-0.1,4.1,0,5]);hold onstem(k,magX);ylabel('|X(k)|');title('DFT的幅度:N=4');text(4.3,-1,'k') hold offsubplot(2,1,2);plot(w*N/(2*pi),phaH*180/pi,'--');axis([-0.1,4.1,-200,200]);hold onstem(k,phaX);ylabel('度');title('DFT相角:N=4');text(4.3,-200,'k') 运行结果:3-12 )]52.0cos()48.0[cos()(n n n x ππ+=,利用MA TLAB 程序求如下()ωj e X 、()k X 。

(1)取)(n x 的前10点数据,求N=10点的()ωj e X 、()k X 并作图;(2)将)(n x 补零至100点,求N=100点的()ωj eX 、()k X 并作图。

解:(1)MATLAB 实现程序:n=[0:1:9];x=cos(0.48*pi*n)+cos(0.52*pi*n); w=[0:1:500]*2*pi/500; X=x*exp(-j*n'*w); magX=abs(X);x1=fft(x);magX1=abs(x1(1:1:10)); k1=0:1:9;w1=2*pi/10*k1;subplot(3,1,1);stem(n,x);title('x(n),0<=n<=9');xlabel('n') axis([0,10,-2.5,2.5]);line([0,10],[0,0]);subplot(3,1,2);plot(w/pi,magX);title('DFT 幅度');xlabel('频率(单位:pi )');axis([0,1,0,10]) subplot(3,1,3);stem(w1/pi,magX1);title('DFT 幅度'); xlabel('频率(单位:pi )');axis([0,1,0,10])运行结果:(2)MATLAB实现程序:n=[0:1:9];y=cos(0.48*pi*n)+cos(0.52*pi*n);n1=[0:1:99];x=[y(1:1:10) zeros(1,90)];w=[0:1:500]*2*pi/500;X=x*exp(-j*n1'*w);magx=abs(X);x1=fft(x);magx1=abs(x1(1:1:50));k1=0:1:49;w1=2*pi/100*k1;subplot(3,1,1);stem(n,y);title('x(n),0<=n<=90 zeros');xlabel('n')axis([0,100,-2.5,2.5]);line([0,100],[0,0]);subplot(3,1,2);plot(w/pi,magx);title('DTFT幅度');xlabel('频率(单位:pi)');axis([0,1,0,10]) subplot(3,1,3);stem(w1/pi,magx1);title('DFT幅度');xlabel('频率(单位:pi)');axis([0,1,0,10])运行结果:5-7 利用脉冲响应不变法设计一个数字巴特沃斯低通滤波器,滤波器的技术要求为:通带截止频率π600=Ωs rad/s ,阻带最小衰减dB s 12=α。

相关文档
最新文档