数字信号处理实验1
- 格式:doc
- 大小:50.50 KB
- 文档页数:13
实验一: 系统及响应时域采样及频域采样1. 实验目的(1)掌握用卷积求系统响应及卷积定理的验证;(2)掌握连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。
(3)掌握频域采样引起时域周期化概念, 加深对频域采样定理的理解。
(4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
3. 实验内容及步骤(1) 认真复习卷积定理、 时域采样和频域采样理论。
(2) 编制实验用主程序及相应子程序。
①系统单位脉冲响应序列产生子程序。
有限长序列线性卷积子程序,用于完成两个给定长度的序列的卷积。
可以直接调用MATLAB 语言中的卷积函数conv 。
conv 用于两个有限长度序列的卷积,它假定两个序列 都从n=0开始。
调用格式如下: y=conv (x, h) ② 卷积定理的验证。
(3)时域采样定理的验证:信号产生子程序, 用于产生实验中要用到的下列信号序列:x a (t)=Ae -at sin(Ω0t)u(t) 进行采样, 可得到采样序列x a (n)=x a (nT)=Ae -anT sin(Ω0nT)u(n), 0≤n<50其中A 为幅度因子, a 为衰减因子, Ω0是模拟角频率, T 为采样间隔。
这些参数都要在实验过程中由键盘输入, 产生不同的x a (t)和x a (n)。
>> %1时域采样序列分析 A=400;a=200;w=200; n=0:50-1;fs=1000;xa=A*exp((-a)*n/fs).*sin(w*n/fs); k=-200:200;w=(pi/100)*k;Xk=fft(xa,length(k));magX=abs(Xk);angX=angle(Xk); subplot(2,1,1);stem(n,xa,'.');xlabel('n');ylabel('xa(n)'); title('信号的类型');)()(10n R n h a =)3()2(5.2)1(5.2)()(-+-+-+=n n n n n h b δδδδ1,,2,1,0,)()()(-==M k e H e X e Y k k k j j a j ωωωsubplot(2,1,2);plot(w/pi,magX);xlabel('w/pi'); ylabel('|Yjw|');title('Y(|jw|)');5101520253035404550n x a (n )信号的类型-2.5-2-1.5-1-0.500.51 1.5205001000w/pi|Y j w |Y(|jw|)(4)频域采样定理的验证:>> %1时域采样序列分析fs=1000 A=400; a=200; w=200;;ts=64*10^(-3); fs=1000;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);subplot(3,2,1);stem(n,xn);xlabel('n,fs=1000Hz'); ylabel('xn');title('xn'); subplot(3,2,2);plot(n,abs(Xk));xlabel('k,fs=1000Hz'); title('|X(k)|');20406080n,fs=1000Hzx nxn2040608005001000k,fs=1000Hz|X(k)|51015n,fs=200Hzx nxn51015100200k,fs=200Hz |X (k)|10203040n,fs=500Hzx nxn102030400500k,fs=500Hz|X (k)|>> %频域采样定理验证M=26;N=32;n=0:M;n1=0:13;x1=n1+1; n2=14:26;x2=27-n2; x=[x1,x2];Xk=fft(x,512); X32k=fft(x,32);k=0:511;w=(pi/512)*k;subplot(321);stem(n,x);xlabel('n'); ylabel('xn');axis([0,31,0,15]);subplot(322);plot(w,abs(Xk));xlabel('k'); ylabel('|X(k)|');axis([0,1,0,200]) X16k=X32k(1:2:N);x32n=ifft(X32k);x16n=ifft(X16k,16); k1=0:31;k2=0:15;subplot(323);stem(k1,abs(X32k));xlabel('k'); ylabel('X32k');axis([0,31,0,200]);subplot(325);stem(k2,abs(X16k));xlabel('k'); ylabel('|X(k)|');axis([0,15,0,200]) n=0:31;subplot(324);stem(n,abs(x32n));xlabel('n'); ylabel('|x(n)|');axis([0,31,0,15]) n1=0:15;subplot(326);stem(n1,abs(x16n));xlabel('n'); ylabel('|x(n)|');axis([0,31,0,15])102030nx n0.51100200k|X (k )|kX 32kn|x (n )|k|X (k )|102030n|x (n )|实验二:用FFT作谱分析1.实验目的(1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】实验一熟悉Matlab环境一、实验目的1.熟悉MATLAB的主要操作命令。
2.学会简单的矩阵输入和数据读写。
3.掌握简单的绘图命令。
4.用MATLAB编程并学会创建函数。
5.观察离散系统的频率响应。
二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。
在熟悉了MATLAB基本命令的基础上,完成以下实验。
上机实验内容:(1)数组的加、减、乘、除和乘方运算。
输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
clear all;a=[1 2 3 4];b=[3 4 5 6];c=a+b;d=a-b;e=a.*b;f=a./b;g=a.^b;n=1:4;subplot(4,2,1);stem(n,a);xlabel('n');xlim([0 5]);ylabel('A');subplot(4,2,2);stem(n,b);xlabel('n');xlim([0 5]);ylabel('B');subplot(4,2,3);stem(n,c);xlabel('n');xlim([0 5]);ylabel('C');subplot(4,2,4);stem(n,d);xlabel('n');xlim([0 5]);ylabel('D');subplot(4,2,5);stem(n,e);xlabel('n');xlim([0 5]);ylabel('E');subplot(4,2,6);stem(n,f);xlabel('n');xlim([0 5]);ylabel('F');subplot(4,2,7);stem(n,g);xlabel('n');xlim([0 5]);ylabel('G');(2)用MATLAB实现下列序列:a) x(n)= 0≤n≤15b) x(n)=e+3j)n 0≤n≤15c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15(n)=x(n+16),绘出四个周期。
1.已知系统的差分方程如下式:y1(n)=0.9y1(n-1)+x(n)程序编写如下:(1)输入信号x(n)=R10 (n),初始条件y1(-1)=1,试用递推法求解输出y1(n);a=0.9; ys=1; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10),定义其宽度为0~9n=1:35; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=sign(sign(10-n)+1);B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,1);stem(n,yn,'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1 ');xlabel('n');ylabel('y(n)')(2) 输入信号x(n)=R10 (n),初始条件y1(-1)=0,试用递推法求解输出y1(n)。
a=0.9; ys=0; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10)B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,2);stem(n,yn, 'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0 ');xlabel('n');ylabel('y(n)') 图形输出如下:-505101502468图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1ny (n )-55101502468图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0ny (n )2. 已知系统差分方程为: y 1(n )=0.9y 1(n -1)+x (n ) 用递推法求解系统的单位脉冲响应h (n ),要求写出h (n )的封闭公式,并打印h (n )~n 曲线。
实验一时域离散信号的产生及时域处理实验目的:了解Matlab软件数字信号处理工具箱的初步使用方法。
掌握其简单的Matlab语言进行简单的时域信号分析。
实验内容:[1.1]已知两序列x1=[0,1,2,3,4,3,2,1,0];n1=[-2:6];x2=[2,2,0,0,0,-2,-2],n2=[2:8].求他们的和ya及乘积yp. 程序如下:x1=[0,1,2,3,4,3,2,1,0];ns1=-2;x2=[2,2,0,0,0,-2,-2];ns2=2;nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;ny=min(ns1,ns2):max(nf1,nf2);xa1=zeros(1,length(ny));xa2=xa1;xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;ya=xa1+xa2yp=xa1.*xa2subplot(4,4,1),stem(ny,xa1,'.')subplot(4,1,2),stem(ny,xa2,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,3),stem(ny,ya,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,4),stem(ny,yp,'.')line([ny(1),ny(end)],[0,0])[1.2]编写产生矩形序列的程序。
并用它截取一个复正弦序列,最后画出波形。
程序如下:clear;close alln0=input('输入序列起点:n0=');N=input('输入序列长度:N=');n1=input('输入位移:n1=');n=n0:n1+N+5;u=[(n-n1)>=0];x1=[(n-n1)>=0]-[(n-n1-N)>=0];x2=[(n>=n1)&(n<(N+n1))];x3=exp(j*n*pi/8).*x2;subplot(2,2,1);stem(n,x1,'.');xlabel('n');ylabel('x1(n)');axis([n0,max(n),0,1]);subplot(2,2,3);stem(n,x2,'.');xlabel('n');ylabel('x2(n)');axis([n0,max(n),0,1]);subplot(2,2,2);stem(n,real(x3),'.'); xlabel('n');ylabel('x3(n)的实部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);subplot(2,2,4);stem(n,imag(x3),'.'); xlabel('n');ylabel('x3(n)的虚部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);[1.3]利用已知条件,利用MATLAB生成图形。
数字信号处理实验一实验目的:掌握利用Matlab产生各种离散时间信号,实现信号的相加、相乘及卷积运算实验函数:参考课本77-19页,注意式(2.11.1)的表达与各matlab子函数间的关系。
1、stem(x,y) % 绘制以x为横轴,y为纵轴的离散序列图形2、[h ,t] = impz(b, a) % 求解数字系统的冲激响应h,取样点数为缺省值[h, t] = impz(b, a, n) % 求解数字系统的冲激响应h,取样点数为nimpz(b, a) % 在当前窗口用stem(t, h)函数出图3、[h ,t] = dstep(b, a) % 求解数字系统的阶跃响应h,取样点数为缺省值[h, t] = dstep (b, a, n) % 求解数字系统的阶跃响应h,取样点数为ndstep (b, a) % 在当前窗口用stairs(t, h)函数出图4、y = filter(b,a,x) % 在已知系统差分方程或转移函数的情况下求系统输出实验原理:一、常用的时域离散信号及其程序1、产生单位抽样函数δ(n)n1 = -5;n2 = 5;n0 = 0;n = n1:n2;x = [n==n0]; % x在n=n0时为1,其余为0stem(n,x,'filled'); %filled:序列圆心处用实心圆表示axis([n1,n2,0,1.1*max(x)])title('单位抽样序列')xlabel('time(n)')ylabel('Amplitude:x(n)')2、产生单位阶跃序列u(n)n1 = -2;n2 = 8;n0 = 0;n = n1:n2;x = [n>=n0]; % x在n>=n0时为1,其余为0stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)])title('单位阶跃序列')xlabel('time(n)')ylabel('Amplitude:x(n)')3、复指数序列复指数序列的表示式为()(),00,0j n e n x n n σω+⎧≥⎪=⎨<⎪⎩,当0ω=时,()x n 为实指数序列;当0σ=时,()x n 为虚指数序列,即()()cos sin j n e n j n ωωω=+,即其实部为余弦序列,虚部为正弦序列。
实验一:系统响应及系统稳定性1 实验目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2 实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB语言的工具箱函数filter函数。
也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析系统的稳定性,包括观察系统的暂态响应和稳态响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件,可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的,系统的稳态输出是指当n→∞时,系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。
3 实验内容及步骤(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv 函数求解系统输出响应的主程序。
程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为y(n) = 0.05x(n) + 0.05x(n-1) + 0.9y(n-1)输入信号x1(n) = R8(n) , x8 = u(n)①分别求出x1 = R8(n) 和x8 = u(n) 的系统响应,并画出其波形。
实验一 离散时间信号分析一、实验目的1.熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
2.掌握各种常用的序列,理解其数学表达式和波形表示。
3.掌握在计算机中生成及绘制数字信号波形的方法。
4.掌握序列的相加、相乘、移位、反褶、卷积等基本运算及计算机实现。
5.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
二、实验原理1.序列的基本概念离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为∞<<∞-n 的整数,n 取其它值)(n x 没有意义。
离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t a x 进行等间隔采样,采样间隔为T ,得到一个有序的数字序列)}({nT x a 就是离散时间信号,简称序列。
2.常用序列常用序列有:单位脉冲序列(单位抽样))(n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算序列的运算包括移位、反褶、和、积、点乘、累加、差分运算、卷积等。
4.序列的卷积运算)()()()()(n h n x m n h m x n y m *=-=∑∞-∞=上式的运算关系称为卷积运算,式中*代表两个序列卷积运算。
两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
其计算的过程包括以下4个步骤(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。
(2)移位:将)(m h -移位n ,得)(m n h -。
当n 为正数时,右移n 位;当n 为负数时,左移n 位。
(3)相乘:将)(m n h -和)(m x 的对应点的值相乘。
数字信号处理实验1--5含代码实验一离散时间信号的时域分析 1. 在MATLAB中利用逻辑关系式n,,0来实现序列,显示范围。
(产生如下,,,n,nn,n,n012图所示的单位脉冲信号的函数为impseq(n0,n1,n2),程序如示例所示),3,n,10并利用impseq函数实现序列:; ,,,,,,yn,2,n,3,,n,6,,xn1nnnn120源代码:impseq.mfunction y=impseq(n0,n1,n2)n=[n1:n2]y=[(n-n0)==0]exp01-1.mfunction impseq(n0,n1,n2)n=-3:1:10y=2*impseq(3,-3,10)+impseq(6,-3,10);stem(n,y)n,,0,,2. 在MATLAB中利用逻辑关系式来实现序列,显示范围。
(自己编写un,nn,n,n012产生单位阶跃信号的函数,函数命名为stepseq(n0,n1,n2)) 并利用编写的stepseq函数实现序列: ,,,,,,yn,un,2,un,2,5,n,10源代码:stepseq.mfunction y=stepseq(n0,n1,n2)n=n1:1:n2y=[(n-n0)>=0]exp01-2.mfunction stepseq(n0,n1,n2)n=-5:1:20y=stepseq(-2,-5,20)+stepseq(2,-5,20)stem(n,y)3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。
如: n ,,,,xn,0.30,n,15源代码:n=0:1:15;x=0.3.^nstem(n,x)4. 在MATLAB中调用函数sin或cos产生正余弦序列,如:π,, ,,,,xn,3sin0.4πn,,5cos0.3πn0,n,20,,5,,源代码:n=0:1:20x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n)stem(n,x)思考题:1.在MATLAB环境下产生单位脉冲序列和单位阶跃序列各有几种方法,如何使用,2.在MATLAB环境下进行序列的相乘运算时应注意什么问题,实验二离散时间系统的时域分析1. 在MATLAB中利用内部函数conv来计算两个有限长序列的卷积。
实验一:用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)掌握求系统响应的方法。
(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)的输出响应,并画出波形。
《数字信号处理》·实验一实验题目:离散时间信号的时域分析教师:杨鉴专业:电子信息科学与技术学号:姓名:Q1.29 运行程序P 1.5,以产生所有相关的信号MATLAB 程序代码如下:%程序 p1.5 通过平均的信号平滑 clf; R=51;d=0.8*(rand(R,1)-0.5); m=0:R-1;s=2*m.*(0.9.^m); x=s+d';subplot(2,1,1);plot(m,d','r-',m,s,'g--',m,x,'b-.'); xlabel('时间序号n'); ylabel('振幅'); legend('d[n]','s[n]','x[n]');x1=[0 0 x]; x2=[0 x 0]; x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2);plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]');xlabel('时间序号n'); ylabel('振幅');5101520253035404550-50510时间序号n振幅d[n]s[n]x[n]051015202530354045502468时间序号n振幅y[n]s[n]Q 1.30 未污染的信号s[n]是什么样的形式?加性噪声d[n] 是什么样的形式? 信号s[n] 的MATLAB 程序代码如下:clf; R=51; m=0:R-1;s=2*m.*(0.9.^m); plot(m,s,'b-.'); xlabel('时间序号n'); ylabel('振幅');legend('未污染信号s[n]');510152025303540455001234567时间序号n振幅未污染信号s[n]信号d[n]的MATLAB 程序代码如下: clf; R=51;d=0.8*(rand(R,1)-0.5); m=0:R-1;plot(m,d','r-'); xlabel('时间序号n'); ylabel('振幅');legend('加性噪声d[n]');05101520253035404550-0.4-0.3-0.2-0.100.10.20.30.4时间序号n振幅加性噪声d[n]Q 1.31使用语句x=s+d 能产生被噪声污染的信号吗?若不能,为什么?答:不能,因为s 和d 均是 矩阵,d 与s 要想相加必须匹配,而矩阵d 本身与矩阵s 不匹配,必须把d 转置变为d'才能与s 进行相加。
数字信号处理实验一1.完成本文档内容的自学阅读和其中各例题后子问题;Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。
答: clf;n=-10:20;u=[zeros(1,10) 1 zeros(1,20)];stem(n,u);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2])Q1.2命令clf,axis,title,xlabel和ylabel的作用是什么?答:clf清除图对象,axis 控制轴刻度和风格的高层指令,title 设置图名,xlabel和ylabel设置横纵坐标轴名称。
Q1.3修改程序P1.1以产生带有延时11个单位样本的延迟单位样本序列ud[n]。
运行修改的程序并显示产生的序列。
答:clf;n=0:30;ud=[zeros(1,11) 1 zeros(1,19)];stem(n,ud);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([0 30 0 1.2])Q1.4修改程序P1.1以产生单位步长序列s[n].运行修改后程序并显示产生的序列。
答:clf;n = 0:30;u = [1.*n];stem(n,u);title('Unit Sample Sequence');axis([0 30 0 30])Q1.5修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。
运行修改后的程序并显示产生的序列。
答:clf;n = -15:30;s=[zeros(1,8) ones(1,38)];stem(n,s);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence');axis([-15 30 0 1.2]);Q1.6 运行程序P1.2,以产生复数值的指数序列。
实验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:由恢复出的方法如下:x(n)由图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 e N ωωφω--=方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
实验报告课程名称:数字信号处理授课班级:学号:姓名:指导老师:实验一离散时间信号及系统的时域分析实验类别:基础性实验1实验目的:(1)了解MA TLAB 程序设计语言的基本特点,熟悉MA TLAB软件运行环境。
(2)熟悉MA TLAB中产生信号和绘制信号的基本命令,学会用MA TLAB在时域中产生一些基本的离散时间信号,并对这些信号进行一些基本的运算。
(3)通过MA TLAB仿真一些简单的离散时间系统,并研究它们的时域特性。
(4)通过MA TLAB进行卷积运算,利用卷积方法观察分析系统的时域特性。
2. 实验报告要求●简述实验原理及目的。
●结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。
●记录调试运行情况及所遇问题的解决方法。
3.实验内容:思考题:9.2.1 运行程序P9.2.1,哪个参数控制该序列的增长或衰减:哪个参数控制该序列的振幅?若需产生实指数序列,应对程序作何修改?9.2.2运行程序P9.2.1,该序列的频率是多少?怎样改变它?哪个参数控制该序列的相位?哪个参数可以控制该序列的振幅?该序列的周期是多少?9.2.3 运行程序P9.2.3,对加权输入得到的y(n)与在相同权系数下输出y1(n)和y2(n)相加得到的yt(n)进行比较,这两个序列是否相等?该系统是线性系统吗?9.2.4 假定另一个系统为y(n)=x(n)x(n-1)修改程序,计算这个系统的输出序列y1(n),y2(n)和y(n)。
比较有y(n)和yt(n)。
这两个序列是否相等?该系统是线性系统吗?(提高部分)9.2.5运行程序P9.2.4,并比较输出序列y(n)和yd(n-10)。
这两个序列之间有什么关系?该系统是时不变系统吗?9.2.6 考虑另一个系统:修改程序,以仿真上面的系统并确定该系统是否为时不变系统。
(选做)n = 0:40; D = 10;a = 3.0;b = -2;x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);[x1,n1]=sigmult(n,n,x,n)[x2,n2]=sigshift(x,n,1)[y,ny1]= sigadd(x1,n1,x2,n2)[y1,ny11]= sigshift(y,ny1,D)[sx,sn]= sigshift(x,n,D)[sx1,sn1]=sigmult(n,n, sx,sn)[sx2,sn2]=sigshift(sx,sn,1)[y2,ny2]= sigadd(sx1,sn1,sx2,sn2)D= sigadd(y1,ny11,y2,ny22)六、实验心得体会:实验时间批阅老师实验成绩实验二 FFT 实现数字滤波实验类别:提高性实验 1.实验目的(1) 通过这一实验,加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT 进行数字信号处理。