大学dsp实验心得体会.docx

上传人:b****6 文档编号:7320444 上传时间:2023-01-22 格式:DOCX 页数:15 大小:21.36KB
下载 相关 举报
大学dsp实验心得体会.docx_第1页
第1页 / 共15页
大学dsp实验心得体会.docx_第2页
第2页 / 共15页
大学dsp实验心得体会.docx_第3页
第3页 / 共15页
大学dsp实验心得体会.docx_第4页
第4页 / 共15页
大学dsp实验心得体会.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

大学dsp实验心得体会.docx

《大学dsp实验心得体会.docx》由会员分享,可在线阅读,更多相关《大学dsp实验心得体会.docx(15页珍藏版)》请在冰豆网上搜索。

大学dsp实验心得体会.docx

大学dsp实验心得体会

大学dsp实验心得体会

通过本次大学dsp实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。

基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。

下面是为大家收集整理的大学dsp实验心得体会,欢迎大家阅读。

大学dsp实验心得体会篇1实验报告

一、实验室名称:

数字信号处理实验室

二、实验项目名称:

多种离散时间信号的产生

三、实验原理:

1、基本离散时间信号

利用MATLAB强大的数值处理工具来实现信号的分析和处理,首先就是要学会应用MATLAB函数来构成信号。

常见的基本信号可以简要归纳如下:

(1).单位采样序列

1n=0(n)=0n0

在MATLAB中可以利用zeros()函数实现。

x=zeros(1,N);

x

(1)=1;

如果(n)在时间轴上延迟了k个单位,得到(n-k)即:

(n-k)=

(2).单位阶跃序列1n=k0n0

1n0u(n)=0n0

在MATLAB中可以利用ones()函数实现。

x=ones(1,N);

(3).正弦序列

x(n)=Asin(2fn+)

采用MATLAB的实现方法,如:

n=0:

N-1

x=A*sin(2*pi*f*n+)

(4).实指数序列

x(n)=Aan

其中,A、a为实数。

采用MATLAB的实现方法,如:

n=0:

N-1

x=a.

(5).复指数序列

x(n)=Aen=0:

N-1采用MATLAB的实现方法,如:

x=A*exp((+j*0)*n)

为了画出复数信号x[n],必须要分别画出实部和虚部,或者幅值和相角。

MATLAB函数real、imag、abs和angle可以逐次计算出一个复数向量的这些函数。

2、基本数字调制信号

(1).二进制振幅键控(2ASK)

最简单的数字调制技术是振幅键控(ASK),即二进制信息信号直接调制模拟载波的振幅。

二进制幅度键控信号的时域表达式:

SASK(t)=[ang(t-nTs)]cosct

其中,an为要调制的二进制信号,gn(t)是单极性脉冲信号的时间波形,Ts表示调制的信号间隔。

(+j0)n典型波形如下:

图11二进制振幅键控信号时间波形

(2).二进制频移键控(2FSK)

在二进制数字调制中,若正弦载波的频率随二进制基带信号在f1和f2两个频率点间变化,则产生

二进制移频键控信号(2FSK信号)。

二进制频域键控已调信号的时域表达式为:

S2FSK(t)=ang(t-nTS)cos1t+ng(t-nTS)cos2tnn这里,1=2f1,2=2f2,an是an的反码。

an

载波信号1t载波信号2t

2FSK信号t

(3).二进制相移键控(2PSK或BPSK)

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。

通常用已调信号载波的0和180分别表示二进制数字基带信号的1和0。

二进制移相键控信号的时域表达式为:

S2PSK(t)=ang(t-nTS)cos(ct+i),i=0或

n

(3).二进制相移键控(2PSK或BPSK)

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。

通常用已调信号载波的0和180分别表示二进制数字基带信号的1和0。

二进制移相键控信号的时域表达式为:

S2PSK(t)=ang(t-nTS)cos(ct+i),i=0或

n

因此,DTMF信号可以看作两个有限长度的正弦序列相加,正弦信号的频率由按键数字或字母符号对应的频率决定。

如,数字8由行频852Hz和列频1336Hz决定。

四、实验目的:

1、掌握几种基本的离散时间信号(包括单位采样序列,单位阶跃序列,单频正弦序列,单频复指

数序列,实指数序列等)。

2、能够熟练利用MATLAB产生这些基本的离散时间信号。

3、理解双音多频DTMF信号、ASK、FSK、BPSK等信号的产生原理。

4、学习并运用MATLAB产生各种通信中的调制信号及双音多频信号。

五、实验内容:

1、对几种基本离散时间信号(包括单位采样序列,单位阶跃序列,正弦序列,复指数序列,实指数序列等)在MATLAB中编程产生。

2、(拓展要求)利用MATLAB编程产生2ASK,2FSK,2PSK等数字调制信号。

3、(拓展要求)利用MATLAB编程产生理解双音多频DTFM信号。

4、(拓展要求)利用MATLAB编程产生高斯白噪声序列。

5、(拓展要求)利用MATLAB中的谱分析函数对正弦信号的频谱进行分析。

6、通过硬件(DSP)实验箱演示上述信号的时域(示波器)波形与频域波形(计算结果)。

六、实验器材(设备、元器件):

安装MATLAB软件的PC机一台,DSP实验演示系统一套。

七、实验步骤:

1、在-20n20内,画出单位下列信号:

(a).单位采样序列x1[n]=[n]和单位阶跃序列x2[n]=u[n]的时域波形图。

(b).y1[n]=x1[n+5]、y2[n]=x2[n-8]的波形。

说明x1[n]与y1[n]、x2[n]与y2[n]之间的关系。

2、画出下列信号在0n100内的波形。

nx3[n]=sin16

nx4[n]=sin2

n3nx5[n]=cos+cos128

观察x3[n]、x4[n]、x5[n]是否周期信号。

如果是周期信号,信号的基波周期是什么?

如果不是

周期信号,说明原因。

3、在0n30内,画出下列信号:

nx6[n]=0.2(0.8)(-1/12+j/6)nx7[n]=e对于复数序列,要求分别画出实部和虚部;幅值和相角。

若把x6[n]中的底数0.8分别改为1.2、

-0.8,讨论产生的时域波形有何变化。

总结指数序列的底数对序列变化的影响。

4、(拓展要求)设计产生数字二进制序列:

101010的2ASK、2FSK、2PSK调制信号。

知符号速率Fd=10Hz(即时间间隔Ts为0.1),输出信号的采样频率为20Hz。

(a).2ASK信号的载波频率Fc=5Hz,

(b).2FSK信号载波1频率F1=5Hz,载波2频率F2=1Hz。

(c).2PSK载波频率Fc=1Hz。

分别画出以上信号调制前后的时域波形图。

5、(拓展要求)利用MATLAB产生DTMF双音多频信号。

画出数字0的时域波形图。

6、(拓展要求)MATLAB函数randn(1,N)可以产生均值为0,方差为1的高斯随机序列,也就是

白噪声序列。

试利用randn函数产生均值为0.15,方差为0.1的高斯白噪声序列x8[n],要求序列时域范围为0n100。

画出时域波形图。

同时将实验步骤2中产生的信号x2[n]与x8[n]相加,将得到的波形与x2[n]的波形做比较。

7、(拓展要求)利用MATLAB中的谱分析函数画出x3[n]、x4[n]、x5[n]的频谱。

与理论上根据傅

立叶变换的定义计算出的x3[n]、x4[n]、x5[n]的频谱进行比较。

8、通过硬件(DSP)实验箱演示上述信号的时域(示波器)波形与频域波形(计算结果)。

八、实验数据及结果分析:

程序:

(1)产生x1[n]、x2[n]、y1[n]、y2[n]、x3[n]、x4[n]、x5[n]、x6[n]、x7[n]序列的程序

(2)产生2ASK、2FSK、2PSK调制信号的程序(拓展要求)

(3)产生DTMF信号的程序(拓展要求)

(4)高斯白噪声序列的产生程序(扩展要求)

(4)正弦信号频谱分析的程序(扩展要求)

clearall;

clc;

n=101;

%单位采样序列

x1=zeros(1,n);

x1

(1)=1;

x1=[zeros(1,100),x1];

%单位阶跃序列

x2=ones(1,n);

x2=[zeros(1,100),x2];

%

n1=0:

n-1;

yn1=n1-5;

yn2=n1+8;

%100;

Fs=1000;

n2=0:

100;

%正弦序列

x3=sin(2*pi*n2/32);

x4=sin(n2/2);

x5=sin(pi*n2/12)+cos(3*pi*n2/8);

%指数序列

n3=0:

30;

x61=0.2*(0.8.

3);%实指数序列

x62=0.2*(1.2.

3);

x63=0.2*((-0.8).

3);

x7=exp((-1/12+1i*pi/6)*n3);%复指数序列

%画出图形

figure

(1)

subplot(2,2,1),stem(n1,x1),title(x1),axis([-20,20,0,1]);

subplot(2,2,2),stem(n1,x2),title(x2),axis([-20,20,0,1]);

subplot(2,2,3),stem(yn1,x1),title(y1),axis([-20,20,0,1]);

subplot(2,2,4),stem(yn2,x2),title(y2),axis([-20,20,0,1]);

figure

(2)

subplot(3,1,1),stem(n2,x3),title(x3),axis([0,100,-1,1]);

subplot(3,1,2),stem(n2,x4),title(x4),axis([0,100,-1,1]);

subplot(3,1,3),stem(n2,x5),title(x5),axis([0,100,min(x5),max(x5)]);

figure(3)

subplot(3,1,1),stem(n3,x61),title(x6a=0.8),axis([0,30,min(x61),max(x61)]);

subplot(3,1,2),stem(n3,x62),title(x6a=1.2),axis([0,30,min(x62),max(x62)]);

subplot(3,1,3),stem(n3,x63),title(x6a=-0.8),axis([0,30,min(x63),max(x63)]);

figure(4)

subplot(4,1,1),stem(n3,abs(x7)),title(x7幅值),axis([0,30,min(abs(x7)),max(abs(x7))]);

subplot(4,1,2),stem(n3,angle(x7)),title(x7相角),axis([0,30,min(angle(x7)),max(angle(x7))]);subplot(4,1,3),stem(n3,imag(x7)),title(x7虚部),axis([0,30,min(imag(x7)),max(imag(x7))]);subplot(4,1,4),stem(n3,real(x7)),title(x7实部),axis([0,30,min(real(x7)),max(real(x7))]);%调制

x_base=[1,0,1,0,1,0];

Fd=10000;

t=linspace(0,0.6,6*Fd);

if(x_base

(1)==1)

m=ones(1,Fd);

elseif(x_base

(1)==0)

m=zeros(1,Fd);

end

fori=2:

6

if(x_base(i)==1)

m=[m,ones(1,Fd)];

elseif(x_base(i)==0)

m=[m,zeros(1,Fd)];

end

end

%2ASK

Fc_A=5;

S_ask=m.*cos(2*pi*Fc_A*t);

%

figure(5)

subplot(4,1,1),stem(0:

0.1:

0.5,x_base),title(序列An),axis([0,0.6,0,1]),xlabel(s

subplot(4,1,2),plot(t,m),title(mt),axis([0,0.6,0,1.5]),title(mt),xlabel(s

subplot(4,1,3),plot(t,cos(2*pi*Fc_A*t)),title(mt),axis([0,0.6,-1.2,1.2]),title(载波信号),xlabel(ssubplot(4,1,4),plot(t,S_ask),title(mt),axis([0,0.6,-1.2,1.2]),title(2ASK调制信号),xlabel(s%2FSK

F1=5;F2=1;

s1=m.*cos(2*pi*F1*t);

s2=(1-m).*cos(2*pi*F2*t);

S_fsk=s1+s2;

figure(6)

subplot(4,1,1),plot(t,m),axis([0,0.6,0,1.5]),title(mt),xlabel(s

subplot(4,1,2),plot(t,s1),axis([0,0.6,-1.2,1.2]),title(载波信号1F=5Hz)),xlabel(s

subplot(4,1,3),plot(t,s2),axis([0,0.6,-1.2,1.2]),title(载波信号2F=1Hz),xlabel(s

subplot(4,1,4),plot(t,S_fsk),axis([0,0.6,-1.2,1.2]),title(2FSK调制信号),xlabel(s

%2PSK

Fc_P=1;

S_psk=(2*m-1).*cos(2*pi*Fc_P*t+pi);

figure(7)

subplot(4,1,1),plot(t,2*m-1),axis([0,0.6,-1.5,1.5]),title(mt),xlabel(s

subplot(4,1,2),plot(t,cos(2*pi*Fc_P*t+pi)),axis([0,0.6,-1.2,1.2]),title(正相载波信号),xlabel(ssubplot(4,1,3),plot(t,-cos(2*pi*Fc_P*t+pi)),axis([0,0.6,-1.2,1.2]),title(反相载波信号),xlabel(ssubplot(4,1,4),plot(t,S_psk),axis([0,0.6,-1.2,1.2]),title(2PSK调制信号),xlabel(s

%DTFM

t_dt=linspace(0,0.02,10000);

x_dtfm=cos(2*pi*941*t_dt)+cos(2*pi*1366*t_dt);

plot(t_dt,x_dtfm);

%rand

N=201;

x8=sqrt(0.1)*randn(1,N)+0.15;

x_rnd=x2+x8;

figure(8)

subplot(3,1,1),stem(n1,x2),title(X2

subplot(3,1,2),stem(n1,x8),title(高斯信号

subplot(3,1,3),stem(n1,x_rnd),title(加噪声后X2

%FFT

N_smp=length(n2);

fre=linspace(-1,1,N_smp)*Fs/2;

y3=abs(fftshift(fft(x3)));

y4=abs(fftshift(fft(x4)));

y5=abs(fftshift(fft(x5)));

figure(9)

subplot(3,1,1),plot(fre,y3),xlabel(Hz),title(X3频谱),xlabel(频率Hz),axis([-100,100,1.2*min(y3),1.2*max(y3)]);

subplot(3,1,2),plot(fre,y4),xlabel(Hz),title(X4频谱),xlabel(频率Hz),axis([-200,200,1.2*min(y4),1.2*max(y4)]);

subplot(3,1,3),plot(fre,y5),xlabel(Hz),title(X5频谱),xlabel(频率Hz),axis([-300,300,1.2*min(y5),1.2*max(y5)]);

结果:

(1)x1[n]、x2[n]、y1[n]、y2[n]、x3[n]、x4[n]、x5[n]、x6[n]、x7[n]的时域波形

(2)信号的时移:

x1[n]与y1[n]、x2[n]与y2[n]之间的关系。

答:

y1[n]相当于x1[n]向左平移5个单位,y2[n]相当于将x2[n]向右平移8个单位

大学dsp实验心得体会篇2基础实验

一、实验目的

二、实验设备

三、实验原理

浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理1.一台装有CCS软件的计算机;2.DSP实验箱的TMS320F2812主控板;3.DSP硬件仿真器。

1.掌握CCS实验环境的使用;2.掌握用C语言编写DSP程序的方法。

中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。

写实现程序时需要注意两点:

(1)浮点数的范围及存储格式;

(2)DSP的C语言与ANSIC语言的区别。

四、实验步骤

1.打开CCS并熟悉其界面;

2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out输出文件,然后通过仿真器把执行代码下载到DSP芯片中;

3.把X0,Y0和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择AddWatchWindow命令);

4.选择view-graph-time/frequency。

设置对话框中的参数:

其中StartAddress

设为sin_value,Acquisitionbuffersize和DisplayDatasize都设为100,并且把DSPDataType设为32-bitfloatingpoint,

设置好后观察信号序列的波形(sin函数,如图);

5.单击运行;

6.观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;

7.修改输入序列的长度或初始值,重复上述过程。

五、实验心得体会

通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。

基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。

从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

大学dsp实验心得体会篇3//EnablePWMpins;GpioMuxRegs.GPAMUX.all=0;GpioMuxRegs.GPBMUX.all=0;EDIS;;//Step3.Clearallinterrup;//DisableCPUinterrupts;DINT;;//InitializethePIEcontro;//ThedefaultstateisallPI;//ar

//EnablePWMpins

GpioMuxRegs.GPAMUX.all=0x00FF;//EVAPWM1-6pins

GpioMuxRegs.GPBMUX.all=0x00FF;//EVBPWM7-12pins

EDIS;

//Step3.ClearallinterruptsandinitializePIEvectortable:

//DisableCPUinterrupts

DINT;

//InitializethePIEcontrolregisterstotheirdefaultstate.

//ThedefaultstateisallPIEinterruptsdisabledandflags

//arecleared.

//ThisfunctionisfoundintheDSP281x_PieCtrl.cfile.

InitPieCtrl();

//DisableCPUinterruptsandclearallCPUinterruptflags:

IER=0x0000;

IFR=0x0000;

//InitializethePIEvectortablewithpointerstotheshellInterrupt

//ServiceRoutines(ISR).

//Thiswillpopulatetheentiretable,eveniftheinterrupt

//isnotusedinthisexample.Thisisusefulfordebugpurposes.

//TheshellISRroutinesarefoundinDSP281x_DefaultIsr.c.

//ThisfunctionisfoundinDSP281x_PieVect.c.

InitPieVectTable();

//Step4.InitializealltheDevicePeripherals:

//ThisfunctionisfoundinDSP281x_InitPeripherals.c

//InitPeripherals();//Notrequiredforthisexample

InitXintf();//Forthisexample,inittheXintf

//Step5.Userspecificcode,enableinterrupts:

init_eva();

//init_evb();

while

(1)

{

for(i=0;i65535;i+=1000)

{

Reg06=0;

EvbRegs.CMPR6=i;

delay_loop();

}

}

}

voiddelay_loop()

{shorti,j;

for(i=0;i1000;i++)

{for(j=0;jj++);}

}

voidinit_eva()

{

//EVAConfigureT1PWM,T2PWM,PWM1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1