时域离散信号的产生与基本运算
信号与系统实验(MATLAB 西电版)实验4 离散时间信号的时域基本运算_OK

图 4.5 序列及其平移
2021/7/3
16
实验4 离散时间信号的时域基本运算
2.
已知序列f(k)={2,3,1,2,3,4,3,1},对应的k值为 -3≤k≤4 f1(k)=f(k-2),f2(k)=f(-k),f3(k)=f(k-1)ε(k), f4(k)=f(-k+2),f5(k)=f(k+1), f6(k)=f(k-2)ε(k),f7(k)=f(k+2)ε(k)
5) MATLAB x1=-2:2; %序列1 k1=-2:2; k0=2; k=k1+k0; f=x1; stem(k,f,′filled′); axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]); 序列及其平移如图4.5
2021/7/3
15
实验4 离散时间信号的时域基本运算
2021/7/3
17
实验4 离散时间信号的时域基本运算
(1) 在计算机中输入程序,验证并记录实验结果,经过 (2) 对于设计性实验,应自行编制完整的实验程序,重复 验证性实验的过程,并在实验报告中给出完整的自编程序。
2021/7/3
18
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
序列及其翻转如图4.3所示。
2021/7/3
11
实验4 离散时间信号的时域基本运算
图 4.3 序列及其翻转
2021/7/3
12
实验4 离散时间信号的时域基本运算
4)
MATLAB
x1=-2:2;
%序列1
两个序列的乘法如图4.2
2021/7/3
离散时间信号的时域分析实验报告

离散时间信号的时域分析实验报告实验报告:离散时间信号的时域分析一、实验目的本实验旨在通过MATLAB软件,对离散时间信号进行时域分析,包括信号的显示、基本运算(如加法、减法、乘法、反转等)、以及频域变换(如傅里叶变换)等,以加深对离散时间信号处理的基本概念和原理的理解。
二、实验原理离散时间信号是在时间轴上离散分布的信号,其数学表示为离散时间函数。
与连续时间信号不同,离散时间信号只能在特定的时间点取值。
离散时间信号的时域分析是研究信号的基本属性,包括幅度、时间、频率等。
通过时域分析,我们可以对信号进行各种基本运算和变换,以提取有用的信息。
三、实验步骤1.信号生成:首先,我们使用MATLAB生成两组简单的离散时间信号,一组为正弦波,另一组为方波。
我们将这些信号存储在数组中,以便后续分析和显示。
2.信号显示:利用MATLAB的绘图功能,将生成的信号在时域中显示出来。
这样,我们可以直观地观察信号的基本属性,包括幅度和时间关系。
3.基本运算:对生成的信号进行基本运算,包括加法、减法、乘法、反转等。
将这些运算的结果存储在新的数组中,并绘制出运算后的信号波形。
4.傅里叶变换:使用MATLAB的FFT(快速傅里叶变换)函数,将信号从时域变换到频域。
我们可以得到信号的频谱,进而分析信号的频率属性。
5.结果分析:对上述步骤得到的结果进行分析,包括比较基本运算前后的信号波形变化,以及傅里叶变换前后的频谱差异等。
四、实验结果1.信号显示:通过绘制图形,我们观察到正弦波和方波在时域中的波形特点。
正弦波呈现周期性的波形,方波则呈现明显的阶跃特性。
2.基本运算:通过对比基本运算前后的信号波形图,我们可以观察到信号经过加法、减法、乘法、反转等运算后,其波形发生相应的变化。
例如,两个信号相加后,其幅度和时间与原信号不同。
反转信号则使得波形在时间轴上反向。
3.傅里叶变换:通过FFT变换,我们将时域中的正弦波和方波转换到频域。
正弦波的频谱显示其频率为单一的直流分量,方波的频谱则显示其主要频率分量是直流分量和若干奇数倍的谐波分量。
《数字信号处理》序列的基本运算和时域变换与离散信号的卷积和实验

《数字信号处理》序列的基本运算和时域变换与离散信号的卷积和实验一、实验目的1、掌握两个离散信号卷积和的计算方法和编程技术。
2、进一步熟悉用MATLAB 描绘二维图像的方法。
3、熟悉用MA TLAB 描绘二维图像的方法。
4、掌握用MA TLAB 对序列进行基本的运算和时域变换的方法。
二、实验器材 MATLAB 软件2019三、实验原理离散信号的卷积和原理:两个离散序列x (n )与y (n )的卷积和f (n )定义为∑∞-∞=-=*=m m n y m x n y n x n f )()()()()(由于通常信号处理中所碰到的都是有始信号或有限时间信号,因此在实际计算卷积和时,求和是在有限范围内进行的。
计算过程中上下限的选取和所得结果的分布区间取决于参与卷积的两个序列,下面将分别进行讨论:1、两个从n = 0开始的序列)()()(n u n x n x =和)()()(n u n y n y =的卷积和∑∑=∞-∞=-=--=nm m n u m n y m x m n u m n y m u m x n f 0)()]()([)()()()()( (1)上式右边因子u (n )表示卷积和的结果也是一个从n = 0开始的序列。
2、从n = n 1开始的序列)()()(1n n u n x n x -=和从n = n 2开始的序列)()()(2n n u n y n y -=的卷积和,其中n 1和n 2为任意整数。
∑∑-=∞-∞=---=----=21)()]()([)()()()()(2121n n n m m n nn u m n y m x n m n u m n y n m u m x n f (2)上式右边因子u (n -n 1-n 2)表示卷积和是一个从n = n 1+n 2开始的序列。
上机:conv.m 用来实现两个离散序列的线性卷积。
其调用格式是:y=conv(x,h)若x 的长度为N ,h 的长度为M ,则y 的长度L=N+M -1。
信号与系统-离散信号与系统

(1)
y (k + 3) − 2 2 y (k + 2) + y (k + 1) + 0 y (k ) = f (k ) 1 y (k + 2) − y (k + 1) + y (k ) = f (k ) 4
(2)
解:用转移算子法求。
1 (1) H ( E ) = 3 2 E − 2 2E + E 1 = E ( E − 2 − 1)( E − 2 + 1) 1 1 1 2( 2 + 1) 2( 2 − 1) = + − E E − 2 −1 E − 2 + 1
f ( n )= ∑ i=-∞ f(i) ∗ δ (k-i)=f(n) ∗ δ (n)
∞
四 离散信号的卷积和
l 定义
f1 (n) ∗ f2 (n)=∑i=-∞ f1 (i) ∗ f2 (k-i)=∑i=-∞ f2 (i) ∗ f1 (k-i)
∞ ∞
l 上下限范围
– 当f1(n), f2(n)均为因果序列
yh (n) =
l
l
∑
K
N i =1
A iα
n i
i −1 n yh (n) = ∑i =+1 An α1 + ∑i=k +1 Aiαin i N
l l l
将所求得的强迫解和自由解相加,即可得到全响应 将给定的全响应的初始值代入到方程中,已确定待定系数 将所求得的待定系数带入到全响应方程中
例:求下列差分方程所 描述的系统的单位响应 h(k)
1 故h(k) =δ (k −1) +[ ( 2 +1)k−1 − 2( 2 +1) 1 k−1 ( 2 −1) ]U(k −1) 2( 2 −1) 1 k−2 1 k−2 =δ (k −1) +[ ( 2 +1) − ( 2 −1) ]U(k −2) −δ (k −1) 2 2 1 k−2 k−2 = [( 2 +1) −( 2 −1) ]U(k −2) 2
DSP实验报告――离散信号的产生及运算(精)

离散信号的产生(chǎnshēng)及运算报告一、实验(shíyàn)目的:1、复习(fùxí)和巩固数字信号处理中离散信号的产生和运算2、学习和掌握(zhǎngwò)用MATLAB产生离散信号的方法3、学习(xuéxí)和掌握用MATLAB对离散信号进行运算二、实验原理:1.用MATLAB函数产生离散信号信号是数字信号处理的最基本内容。
没有信号,数字信号处理就没了工作对象。
MATLAB7.0内部提供了大量的函数,用来产生常用的信号波形。
例如,三角函数(sin,cos),指数函数(exp),锯齿波函数(sawtooth), 随机数函数(rand)等。
1 产生被噪声污染的正弦信号用随机数函数产生污染的正弦信号。
2 产生单位脉冲序列和单位阶跃序列按定义,单位脉冲序列为单位阶跃序列为。
3 矩形脉冲信号:在MATLAB 中用rectpuls 函数来表示,其调用形式为:y=rectpuls(t,width,用以产生一个幅值为1,宽度为width,相对于t=0 点左右对称的矩形波信号,该函数的横坐标范围(fànwéi)由向量t 决定,是以t=0 为中心向左右各展开width/2 的范围,width 的默认值为1。
例:以t=2T(即t-2×T=0为对称中心的矩形脉冲信号(xìnhào)的MATLAB 源程序如下:(取T=1)t=0:0.001:4;T=1;ft=rectpuls(t-2*T,2*T;plot(t,ft;grid on; axis([0 4 –0.5 1.5];4 周期性矩形波(方波)信号在MATLAB 中用square 函数来表示,其调用形式为:y=square(t,DUTY,用以产生一个周期为2π、幅值为±1 的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值(zhènɡ zhí)所占的百分比。
第二章 时域离散信号和系统(数字信号处理)

第二章 时域离散信号和系统
6. 复指数序列
x(n)=e(σ+jω0)n 式中ω0为数字域频率,设σ=0,用极坐标和实部虚 部表示如下式: x(n)=e jω0n
x(n)=cos(ω0n)+jsin(ω0n)
由于n取整数,下面等式成立: e j(ω0+2πM)n= e jω0n, M=0,±1,±2…
第二章 时域离散信号和系统
图1.2.5 正弦序列
第二章 时域离散信号和系统
则要求N=(2π/ω0)k,式中k与N均取整数,且k的取
值要保证N是最小的正整数,满足这些条件,正弦序列 才是以N为周期的周期序列。
正弦序列有以下三种情况:
(1)当2π/ ω0为整数时,k=1,正弦序列是以2π/ ω0 为周期的周期序列。例如sin(π/8)n, ω0 =π/8,2π/ ω0 =16,该正弦序列周期为16。
例 设x(n)=R4(n),h(n)=R4(n),求y(n)=x(n)*h(n)。
解 按照公式,
y (n )
m
R ( m) R ( n m)
4 4
上式中矩形序列长度为4,求解上式主要是根据矩
形序列的非零值区间确定求和的上、下限,R4(m)的非
令n-k=m,代入上式得到
u( n )
n
( m)
n
第二章 时域离散信号和系统
u(n) 1 „ n 0 1 2 3
单位阶跃序列
第二章 时域离散信号和系统
3. 矩形序列RN(n) 1, RN(n)= 0, 0≤n≤N-1 其它n
上式中N称为矩形序列的长度。当N=4时,R4(n)的
第二章 时域离散信号和系统
第2章 时域离散信号和系统
时域离散信号实验报告(3篇)

第1篇一、实验目的1. 理解时域离散信号的基本概念和特性。
2. 掌握时域离散信号的表示方法。
3. 熟悉常用时域离散信号的产生方法。
4. 掌握时域离散信号的基本运算方法。
5. 通过MATLAB软件进行时域离散信号的仿真分析。
二、实验原理时域离散信号是指在时间轴上取离散值的一类信号。
这类信号在时间上不连续,但在数值上可以取到任意值。
时域离散信号在数字信号处理领域有着广泛的应用,如通信、图像处理、语音处理等。
时域离散信号的基本表示方法有:1. 序列表示法:用数学符号表示离散信号,如 \( x[n] \) 表示离散时间信号。
2. 图形表示法:用图形表示离散信号,如用折线图表示序列。
3. 时域波形图表示法:用波形图表示离散信号,如用MATLAB软件生成的波形图。
常用时域离散信号的产生方法包括:1. 单位阶跃信号:表示信号在某个时刻发生突变。
2. 单位冲激信号:表示信号在某个时刻发生瞬时脉冲。
3. 正弦信号:表示信号在时间上呈现正弦波形。
4. 矩形脉冲信号:表示信号在时间上呈现矩形波形。
时域离散信号的基本运算方法包括:1. 加法:将两个离散信号相加。
2. 乘法:将两个离散信号相乘。
3. 卷积:将一个离散信号与另一个离散信号的移位序列进行乘法运算。
4. 反褶:将离散信号沿时间轴翻转。
三、实验内容1. 实验一:时域离散信号的表示方法(1)使用序列表示法表示以下信号:- 单位阶跃信号:\( u[n] \)- 单位冲激信号:\( \delta[n] \)- 正弦信号:\( \sin(2\pi f_0 n) \)- 矩形脉冲信号:\( \text{rect}(n) \)(2)使用图形表示法绘制以上信号。
2. 实验二:时域离散信号的产生方法(1)使用MATLAB软件生成以下信号:- 单位阶跃信号- 单位冲激信号- 正弦信号(频率为1Hz)- 矩形脉冲信号(宽度为2)(2)观察并分析信号的波形。
3. 实验三:时域离散信号的基本运算(1)使用MATLAB软件对以下信号进行加法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(2)使用MATLAB软件对以下信号进行乘法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(3)使用MATLAB软件对以下信号进行卷积运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(4)使用MATLAB软件对以下信号进行反褶运算:- \( u[n] \)4. 实验四:时域离散信号的仿真分析(1)使用MATLAB软件对以下系统进行时域分析:- 系统函数:\( H(z) = \frac{1}{1 - 0.5z^{-1}} \)(2)观察并分析系统的单位冲激响应。
离散时间信号的时域描述及基本运算

[例] 画出信号f (t) 的奇、偶分量 画出信号f
解:
f(t) 2 1
-1
0
f(t) 2 1
1
t
-1
0
1
t
3.信号分解为实部分量与虚部分量 信号分解为实部分量 实部分量与
连续时间信号
f (t ) = f r (t ) + j f i (t )
实部分量 虚部分量
f * (t ) = f r (t ) j f i (t )
在序列2点之间插入 个点 在序列 点之间插入M1个点 点之间插入
4. 序列相加
指将若干离散序列序号相同的数值相加
y[k ] = f1[k ] + f 2 [k ] + … + f n [k ]
f1 [ k ]
1 k 0 1
f1[k ] + f 2 [k ]
2
f 2 [k ]
k
1 k
0
0
5. 序列相乘
1 f o (t ) = [ f (t ) f (t )] 2 f o (t ) = f o (t )
离散时间信号
f [k ] = f e [k ] + f o [k ] 1 f o [k ] = { f [k ] f [ k ]} 2
1 f e [k ] = { f [k ] + f [k ]} 2
1. 翻转
f [k] → f [k]
以纵轴为中心作180度翻转 将 f [k] 以纵轴为中心作 度翻转
f [k] 2 1 1 0 1 2 3 k
2 1 0 1
3 2
f [k] 2
3 2 1 2 k
2. 位移 f [k] → f [k±n]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 时域离散信号的产生与基本运算一、实验目的1、了解常用的时域离散信号及其特点。
2、掌握MATLAB 产生常用时域离散信号的方法。
3、掌握时域离散信号简单的基本运算方法。
二、实验内容1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。
2、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、信号能量。
3、已知信号(1) 描绘)(n x 序列的波形。
(2) 用延迟的单位脉冲序列及其加权和表示)(n x 序列。
(3) 描绘以下序列的波形:)2()(),2(2)(),2(2)(321n x n x n x n x n x n x -=+=-=三、实现步骤1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。
(1)单位抽样序列程序:x=zeros(1,10);x(2)=1;stem(x,'filled')axis([0,10,-0.2,1]);title('µ¥Î»³éÑùÐòÁÐ');-0.200.20.40.60.8图1 (2)单位阶跃序列程序:N=10;u=ones(1,N);stem(u,'filled')axis([-10,10,0,1]);title('µ¥Î»½×Ô¾ÐòÁÐ');00.10.20.30.40.50.60.70.80.91单位阶跃序列图2 (3)正弦序列程序:x=-20:1:20;y=sin(0.2*pi.*x+0.5*pi);stem(x,y,'filled');axis([-20,20,-2,2]);title('ÕýÏÒÐòÁÐ');正弦序列-20-15-10-505101520图3 (4)实指数序列a=1/2程序:n=0:10;a1=1/2;y1=a1.^n;stem(n,y1,'filled');axis([0,10,0,1]);title('ʵָÊýÐòÁУ¬a=1/2');实指数序列,a=1/2图4 5实指数序列a=2程序:n=0:10;a2=2;y2=a2.^n;stem(n,y2,'filled');title('ʵָÊýÐòÁÐ,a=2');实指数序列,a=2图5 6 随机序列程序:y=rand(1,20);stem(y,'filled');title('Ëæ»úÐòÁÐ');0246810121416182000.10.20.30.40.50.60.70.80.91随机序列图62、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、信号能量。
信号的移位:(1)信号移位程序:n=-3:10;k0=3;k1=-3;%ʵÏÖÐźŵÄÒÆÎ»x=cos(2*pi*n/10);x1=cos(2*pi*(n-k0)/10);x2=cos(2*pi*(n-k1)/10);subplot(3,1,1),stem(n,x,'filled');ylabel('x(n)');subplot(3,1,2),stem(n,x1,'filled');ylabel('x(n-2)');subplot(3,1,3),stem(n,x2,'filled');ylabel('x(n+2)');2信号相加、信号相乘程序:n=-3:20;x1=cos(2*pi*n/10);subplot(2,2,1);stem(n,x1,'filled');title('x(1)');axis([-4,20,-2,2]);x2=cos(2*pi*n/10);subplot(2,2,2);stem(n,x2,'filled');title('x(2)');axis([-4,20,-2,2]);y=x1+x2;subplot(2,2,3);stem(n,y,'filled');title('ÐźÅÏà¼Ó');axis([-4,20,-2,2]);y=x1.*x2;subplot(2,2,4);stem(n,y,'filled');title('ÐźÅÏà³Ë');axis([-4,20,-2,2]);n=-5:5;x=exp(-0.4*n);x1=fliplr(x);n1=-fliplr(n);subplot(2,1,1),stem(n,x,'filled');title('x(n)'); subplot(2,1,2),stem(n1,x1,'filled');title('x(-n)');信号和、信号积、信号能量:程序:x=[1,2,3,4,5,6,7,8,9];y1=sum(x)y2=prod(x)E1=sum(x.*conj(x))得到:y1 =45y2 =362880E1 =2853、已知信号(1)描绘)x序列的波形;(n(2)用延迟的单位脉冲序列及其加权和表示)x序列;(n(3)描绘一下序列的波形function f=u(t)f=(t>=0);subplot(2,1,1)n=-10:10;y1=(2*n+5).*(u(n+4)-u(n))+6.*(u(n)-u(n-5));stem(n,y1,'filled')axis([-10,10,-3,6]);title('序列波形');t=-10:10;subplot(2,1,2)y=(-3)*(u(t+4)-u(t+3))+(-1)*(u(t+3)-u(t+2))+(u(t+2)-u(t+1))+3*(u( t+1)-u(t))+6*(u(t)-u(t-1))+6*(u(t-1)-u(t-2))+6*(u(t-2)-u(t-3))+6*(u(t-3)-u(t-4))+6*(u(t-4)-u (t-5));stem(t,y,'filled')axis([-10,10,-3,6]);title('用单位脉冲序列及其加权和表示序列波形');subplot(2,2,1)t=-10:10;y=(-3)*(u(t+4)-u(t+3))+(-1)*(u(t+3)-u(t+2))+(u(t+2)-u(t+1))+3*(u( t+1)-u(t))+6*(u(t)-u(t-1))+6*(u(t-1)-u(t-2))+6*(u(t-2)-u(t-3))+6*(u(t-3)-u(t-4))+6*(u(t-4)-u (t-5));stem(t,y,'filled')axis([-10,10,-6,12]);title('x(n)');subplot(2,2,2)t=-10:10;y=(-3)*(u(t+4)-u(t+3))+(-1)*(u(t+3)-u(t+2))+(u(t+2)-u(t+1))+3*(u( t+1)-u(t))+6*(u(t)-u(t-1))+6*(u(t-1)-u(t-2))+6*(u(t-2)-u(t-3))+6*(u(t-3)-u(t-4))+6*(u(t-4)-u (t-5));stem(t+2,2*y,'filled')axis([-10,10,-6,12]);title('2x(n-2)');subplot(2,2,3)t=-10:10;y=(-3)*(u(t+4)-u(t+3))+(-1)*(u(t+3)-u(t+2))+(u(t+2)-u(t+1))+3*(u( t+1)-u(t))+6*(u(t)-u(t-1))+6*(u(t-1)-u(t-2))+6*(u(t-2)-u(t-3))+6*(u(t-3)-u(t-4))+6*(u(t-4)-u (t-5));stem(t-2,2*y,'filled')axis([-10,10,-6,12]);title('2x(n+2)');subplot(2,2,4)t=-10:10;y=(-3)*(u(t+4)-u(t+3))+(-1)*(u(t+3)-u(t+2))+(u(t+2)-u(t+1))+3*(u( t+1)-u(t))+6*(u(t)-u(t-1))+6*(u(t-1)-u(t-2))+6*(u(t-2)-u(t-3))+6*(u(t-3)-u(t-4))+6*(u(t-4)-u (t-5));stem(2-t,y,'filled')axis([-10,10,-6,12]);title('x(2-n)');4、思考题当进行离散序列的相乘运算时,例1-6程序中有yp=xa1.*xa2,请问此处进行的相乘运算是矩阵乘还是数组乘,为何这样使用?答:此处进行的是数组乘,因为只有用数乘组,才能将序列中对应的数乘起来,实现序列相乘。