ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:361.17KB ,
资源ID:5094897      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5094897.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字信号实验.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字信号实验.docx

1、数字信号实验 实验一:信号的表示一、实验目的:1、了解MATLAB 程序设计语言的基本特点,熟悉MATLAB 软件运行环境。2、掌握各种信号的建模方式。3、掌握各种信号的图形表示方法。4、掌握变量等有关概念,具备初步的将一般数学模型转化为对应的计算机模型并进行处理的能力二、实验设备:PC 机MATLAB7.0 软件三、实验内容学习使用 MATLAB7.0 软件。学习信号的图形表示方法,掌握各种信号的建模方式。实现单位采样序列 (n)、单位阶跃序列u(n)、矩形序列 ( ) N R n 、三角波、方波、锯齿波、Sinc 函数。四、参考实例:常用的 MATLAB 绘图语句有figure、plot、

2、subplot、stem 等,图形修饰语具有title、axis、text 等。(1)figure 语句figure 有两种用法。当只有一句figure 命令时,程序会创建一个新的图形窗口,并返回一个整数型的窗口编号。当采用figure(n)时,表示将第n 个图形窗口作为当前的图形窗口,将其显示在所有窗口的最前面。如果该图形窗口不存在,则新建一个窗口,并赋以编号n。(2)plot 语句线形绘图函数。用法为 plot(x,y,s)。参数x 为横轴变量,y 为纵轴变量,s 用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表1-1 所示。表 1-1 plot 命令的参数及其含义参数 含

3、义 参数 含义 参数 含义y 黄色 . 点 - 实线m 紫色 o 圆 : 虚线c 青色 x 打叉 -. 点划线r 红色 + 加号 - 破折线g 绿色 * 星号 向上三角形b 蓝色 s 正方形 向右三角形k 黑色 v 向下三角形 p 五角星形(3)subplot 语句subplot(m,n,i)是分割显示图形窗口命令,它把一个图形窗口分为m 行n 列共mn 个小窗口,并指定第i 个小窗口为当前窗口。(4)二维统计分析图在 MATLAB 中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项)stairs(x,y,选项)stem(x,y,选项)f

4、ill(x1,y1,选项1,x2,y2,选项2,)例1-1 分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。程序如下:x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g);axis(0,7,-2,2);subplot(2,2,2);stairs(x,y,b);title(stairs(x,y,b);axis(0,7,-2,2);subplot(2,2,3);stem(x,y,k);title(stem(x,y,k);axis(0,7,-2,2);subplot(2,2,4);fill(x,y,

5、y);title(fill(x,y,y);axis(0,7,-2,2);0 2 4 6-2-1012bar(x,y,g)0 2 4 6-2-1012stairs(x,y,b)0 2 4 6-2-1012stem(x,y,k)0 2 4 6-2-1012fill(x,y,y)(5)图形保持hold on/off 命令控制是保持原有图形还是刷新原有图形,不带参数的hold 命令在两种状态之间进行切换。例 1-2 采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。数字信号处理实验第 3 页共 39 页程序如下:x=0:pi/100:2*pi

6、;y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1)hold ony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);hold off0 1 2 3 4 5 6 7-1.5-1-0.500.511.52(6)绘图修饰命令title(图形名称)xlabel(x 轴说明)ylabel(y 轴说明)text(x,y,图形说明)legend(图例1,图例2,)例1-3 在0x2 区间内,绘制曲线y1=2e-0.5x 和y2=cos(4x),并给图形添加图形标注。程序如下:x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=

7、cos(4*pi*x);plot(x,y1,x,y2)title(x from 0 to 2pi); %加图形标题xlabel(Variable X); %加X 轴说明ylabel(Variable Y); %加Y 轴说明text(0.8,1.5,曲线y1=2e-0.5x); %在指定位置添加图形说明text(2.5,1.1,曲线y2=cos(4pix);legend(y1, y2) %加图例0 1 2 3 4 5 6 7-1-0.500.511.52x from 0 to 2Variable XVariable Y曲线y1=2e-0.5x曲线y2=cos(4x)y1y2(7)MATLAB 常

8、用信号生成函数: ZEROS 功能:产生全零阵列 调用格式:X=ZEROS (N) %产生N 行N 列的全零矩阵 X=ZEROS(M,N) %产生M 行N 列的全零矩阵 ONES 功能:产生全 1 阵列 调用格式:X=ONES(N) %产生N 行N 列的全1 矩阵 X=ONES(M,N) %产生M 行N 列的全1 矩阵 SINC 功能:辛格函数 调用格式:Y= SINC(X) % RECTPULS 功能:产生矩形脉冲信号 调用格式:Y= RECTPULS (T) %产生高度为1、宽度为1、关于T0 对称的矩形脉冲 Y= RECTPULS (T,W) %产生高度为1、宽度为W、关于T0 对称的矩

9、形脉冲 RAND 功能:产生伪随机序列 调用格式:Y= RAND (1,N) %产生0,1上均匀分布的随机序列 Y= RANDN (1,N) %产生均值为0,方差为1 的白噪声序列 SAWTOOTH 功能:产生周期锯齿波或三角波 调用格式:Y= SAWTOOTH (T) %产生幅值为1,1,以2 为周期的方波 Y=SAWTOOTH(T,WIDTH)% 产生幅值为1,1,以WIDTH *2 为周期的方波 SQUARE 功能:产生方波 调用格式:Y= SQUARE (T) %产生幅值为1,1,以2 为周期的锯齿波 Y= SQUARE(T,DUTY) % 产生幅值为1,1,以占空比为DUTY 的方波

10、 例: t = 0:.0001:.0625; y = SQUARE(2*pi*30*t,80); plot(t,y)产生一个占空比为80%的方波 FLIPLR 功能: 序列左右翻转 调用格式:Y = FLIPLR(X) % X = 1 2 3 翻转后 3 2 1 4 5 6 6 5 4 CUMSUM 、SUM 功能: 计算序列累加 调用格式:Y = CUMSUM(X) % 向量X 元素累加,记录每一次的累加结果,而SUM只记录最后的结果五、实验报告(1)实现单位采样序列 (n)、单位阶跃序列u(n)、矩形序列 ( ) N R n ,并用图形显示。写出程序及输出图形单位采样序列 (n) n=-5

11、:10;y=zeros(1,5),1,zeros(1,10);stem(n,y)axis(-5,10,0,2);单位阶跃序列u(n) n=-5:10;y=zeros(1,5),ones(1,11);stem(n,y,r)axis(-5,10,0,2);矩形序列 ( ) N R n n=-5:10;y=zeros(1,5),ones(1,5),zeros(1,6);plot(n,y)stem(n,y)axis(-5,10,0,2);title(矩形序列);(2)实现三角波、方波、锯齿波、Sinc 函数,并用图形显示。写出程序及输出图形三角波fs=10000;t=-1:1/fs:1;w=0.4;x

12、=tripuls(t,w);plot(t,x)title(三角波);方波 t=-2*pi:0.001:2*pi;x=square(t);plot(t,x);xlabel(t),ylabel(x=square(t);锯齿波x= 0:0.01:5;y=1-mod(x,1);plot(x,y)title(锯齿波)Sinc 函数clearn=-5:0.5:10;y=sin(0.5*pi*n);stem(n,y,g)title(正弦序列); 实验二:FFT 频谱分析及应用一、实验目的:1、通过实验加深对FFT 的理解;2、熟悉应用FFT 对典型信号进行频谱分析的方法。二、实验设备:PC 机MATLAB7

13、.0 软件三、实验内容使用 MATLAB 程序实现信号频域特性的分析。涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。四、实验原理与方法在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT 不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的 DFT 是其z 变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT 是DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。在 MATLAB 信号处

14、理工具箱中的函数fft(x,n),可以用来实现序列的N 点快速傅立叶变换。经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。五、实验报告(1)模拟信号x(t) = 2sin(4t) + 5cos(8t),以t = 0.01n(n = 0 : N 1)进行采样,求:1 N40 点FFT 的幅度频谱,从图中能否观察出信号的2 个频谱分量?N=128;n=0:N-1; t=0.01*n; x=2*sin(4*pi*t)+5*cos(8*pi*t); k=0:N/2;w=2*pi/N*k; X=f

15、ft(x,N); magX=abs(X(1:N/2+1); subplot(2,1,1);stem(n,x,.);title(128点FFT的幅度频谱); subplot(2,1,2);plot(w/pi,magX);title(FFT N=128); xlabel(f (unit :pi);ylabel(|X|);grid 2 提高采样点数,如N128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的2 个模拟频率和数字频率各为多少?FFT频谱分析结果与理论上是否一致?N=40;n=0:N-1; t=0.01*n; x=2*sin(4*pi*t)+5*cos(8*pi*t); k=0

16、:N/2;w=2*pi/N*k; X=fft(x,N); magX=abs(X(1:N/2+1); subplot(2,1,1);stem(n,x,.);title(40点FFT的幅度频谱); subplot(2,1,2);plot(w/pi,magX);title(FFT N=40); xlabel(f (unit :pi);ylabel(|X|);grid (2)一个连续信号含三个频谱分量,经采样得以下序列:x(n) = sin(2 0.15n) + cos(2 (0.15 + df )n) + cos(2 (0.15 + 2df )n)1 N64,df 分别为1 16、1/64,观察其频

17、谱;2 N64、128,df 为1/64,做128 点得FFT,其结果有何不同?N=64;n=0:N-1;df=1/16;x=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1);subplot(2,1,1);stem(n,x,.);title(信号 x(n);subplot(2,1,2);plot(w/pi,magX);title(频谱 N=64);xlabel(f(unit:pi);ylabel(|x|);grid N=

18、64;n=0:N-1;df=1/64;x=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1);subplot(2,1,1);stem(n,x,.);title(信号 x(n);subplot(2,1,2);plot(w/pi,magX);title(频谱 N=64);xlabel(f(unit:pi);ylabel(|x|);grid N=128;n=0:N-1;df=1/64;x=sin(2*pi*0.15*n)+cos

19、(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1);subplot(2,1,1);stem(n,x,.);title(信号 x(n);subplot(2,1,2);plot(w/pi,magX);title(频谱 N=128);xlabel(f(unit:pi);ylabel(|x|);grid(3)被噪声污染得信号,比较难看出所包含得频率分量,如一个由50Hz 和120Hz正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz,试用FFT 函数来

20、分析其信号频率成分,要求:1 画出时域波形;2 分析信号功率谱密度。t=0:0.001:0.8;x=sin(2*pi*50*t)+cos(2*pi*120*t);y=x+1.5*randn(1,length(t);subplot(3,1,1);plot(t,x);subplot(3,1,2);plot(t,y);%title(press any key,continue.);%pause;Y=fft(y,512);P=Y.*conj(Y)/512;f=1000*(0:255)/512;subplot(3,1,3);plot(f,P(1:256);注:在 MATLAB 中,可用函数rand(1,

21、N)产生均值为0,方差为1,长度为N 的高斯随机序列。九、参考程序程序 1:N=40;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1);subplot(2,1,1);stem(n,x,.);title(signal x(n);subplot(2,1,2);plot(w/pi,magX);title(FFT N=40);xlabel(f (unit :pi);ylabel(|X|);grid程序 3:t=0:0.001:0.8;x=sin(2*pi*50

22、*t)+cos(2*pi*120*t);y=x+1.5*randn(1,length(t);subplot(3,1,1);plot(t,x);subplot(3,1,2);plot(t,y);%title(press any key,continue.);%pause;Y=fft(y,512);P=Y.*conj(Y)/512;f=1000*(0:255)/512;subplot(3,1,3);plot(f,P(1:256); 实验三:信号的运算-卷积一、实验目的:1、掌握信号的线性卷积运算。2、掌握信号的循环卷积运算。3、掌握信号循环卷积计算线性卷积的条件。二、实验设备:PC 机MATLAB

23、7.0 软件三、实验内容学习使用 MATLAB7.0 软件进行建模。学习信号的卷积运算的MATLAB 实现。实现信号的线性卷积运算、应用DFT 实现线性卷积运算、验证循环卷积计算线性卷积的条件。四、参考实例:如果信号x(n) = x1(n) x2 (n)利用循环卷积计算,用circonvt函数实现如下:function y = circonvt(x1,x2,N)if (length(x1)N | length(x2)N)error(N必须大于等于x的长度);endx1=x1 zeros(1,N-length(x1);x2=x2 zeros(1,N-length(x2);X1=fft(x1,N)

24、; X2=fft(x2,N);X=X1.*X2;y = ifft(X,N);y = real(y);如果信号1 2 x(n) = x (n) x (n)利用线性卷积计算,用conv函数实现如下:y = conv(x1,x2)五、实验报告(1)假设卷积下面信号X(n)= 0n13 0 elseh(n)= 1 0n12 0 else选定循环卷积的长度为N = 21。确定 1y (n) = x(n)h(n)的哪些数值与线性卷积 2y (n) = x(n) *h(n)结果中的数值相同。编写程序代码并输出图形,并分析错误数据的原因,怎样才能使两者数据相同n1=0:1:12;x1=0.9.n1;h=one

25、s(1,12);h=0 h;N=length(x1)+length(h)-1;n=0:N-1;ny=0:20;y1=circonvt(x1,h,21); y2=circonvt(x1,h,N);x1=x1 zeros(1,N-length(x1);h=h zeros(1,N-length(h);X1= fft(x1,N);H=fft(h,N);X=X1.*H;x=ifft(X);x=real(x);subplot(2,2,1);stem(n,x1);title(x1(n);axis(0,33,0,1);subplot(2,2,2);stem(n,h);title(h(n);axis(0,33,

26、0,1);subplot(2,2,3);stem(ny,y1,fill);title(21点循环卷积);axis(0,33,0,8);hold on;subplot(2,2,4);stem(n,x);title(线性卷积);axis(0,33,0,8);subplot(2,2,3);stem(n,x,r,-);axis(0,33,0,8);hold off(2)假设卷积下面信号X(n)= 0n13 0 elseh(n)= 1 9n21 0 else选定循环卷积的长度为N = 21。确定 1y (n) = x(n)h(n)的哪些数值与线性卷积 2y (n) = x(n) *h(n)结果中的数值相

27、同。编写程序代码并输出图形,怎样才能使两者数据相同。并分析既然h(n)自开始就有零点,好点和差点在哪里?n1=0:1:12;x1=0.9.n1;h=ones(1,12);h=zeros(1,9) h;N=length(x1)+length(h)-1;n=0:N-1;ny=0:20;y1=circonvt(x1,h,21); y2=circonvt(x1,h,N);x1=x1 zeros(1,N-length(x1);h=h zeros(1,N-length(h);X1= fft(x1,N);H=fft(h,N);X=X1.*H;x=ifft(X);x=real(x);subplot(2,2,1

28、);stem(n,x1);title(x1(n);axis(0,33,0,1);subplot(2,2,2);stem(n,h);title(h(n);axis(0,33,0,1);subplot(2,2,3);stem(ny,y1,fill);title(21点循环卷积);axis(0,33,0,8);hold on;subplot(2,2,4);stem(n,x);title(线性卷积);axis(0,33,0,8);subplot(2,2,3);stem(n,x,r,-);axis(0,33,0,8);hold off(3)已知系统响应为h(n) = sin(0.2n) + cos(0.5n) 0 n 20,输入为x(n) = exp(0.2n) 0 n N | length(x2)N) error(N必须大于等于x的长度);endx1=x1 zeros(1,N-length(x1);x2=x2 zeros(1,N-length(x2);X1=fft

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2