搜档网
当前位置:搜档网 › 常见离散信号的MATLAB产生和图形显示

常见离散信号的MATLAB产生和图形显示

常见离散信号的MATLAB产生和图形显示
常见离散信号的MATLAB产生和图形显示

实验一 常见离散信号的MATLAB 产生和图形显示

实验目的:加深对常用离散信号的理解; 实验原理:

1.单位抽样序列

???=01

)(n δ

0≠=n n

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

;

1)1();,1(==x N zeros x

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

???=-01

)(k n δ

≠=n k n

2.单位阶跃序列

??

?0

1)(n u

0<≥n n

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

);,1(N ones x =

3.正弦序列

)/2sin()(?π+=Fs fn A n x

在MATLAB 中

)

/***2sin(*1

:0fai Fs n f pi A x N n +=-=

4.复正弦序列

n

j e

n x ?=)(

在MATLAB 中

)

**exp(1:0n w j x N n =-=

5.指数序列

n

a

n x =)(

在MATLAB 中

n

a x N n .^1:0=-=

实验内容:编制程序产生上述5种信号(长度可输入确定),并绘出其图形。 实验要求:讨论复指数序列的性质。 实验过程: 1. 单位冲击序列:

>> n=0:10;

>> x1=[1 zeros(1,10)]; >> x2=[zeros(1,8) 1 zeros(1,8)]; >> subplot(1,2,1); >> stem(n,x1);

>> xlabel ('时间序列n'); >> ylabel('幅度');

>> title('单位冲激序列δ(n )'); >> subplot(1,2,2); >> stem(x2);

>> xlabel('时间序列n'); >> ylabel('幅度');

>> title('延时了8个单位的冲激序列δ(n-8)'); >>

>> n=0:10;

>> u=[ones(1,11)];

>> stem(n,u);

>> xlabel ('时间序列n');

>> ylabel('信号幅度');

>> title('单位阶跃序列u(n)');

>>

3.正弦序列:

>> n=1:30;

>> x=2*sin(pi*n/6+pi/4);

>> stem(n,x);

>> xlabel ('时间序列n');

>> ylabel('振幅');

>> title('正弦函数序列x=2*sin(pi*n/6+pi/4)'); >>

>> n=1:30;

>> x=5*exp(j*3*n);

>> stem(n,x);

>> xlabel ('时间序列n');

>> ylabel('振幅');

>> title('复指数序列x=5*exp(j*3*n)');

>>

5.指数序列:

>> n=1:30;

>> x=1.8.^n;

>> stem(n,x);

>> xlabel ('时间序列n');

>> ylabel('振幅');

>> title('指数序列x=1.8.^n');

>>

复指数序列的周期性讨论:

为了研究复指数序列的周期性质,我们分别作了正弦函数x1=1.5sin(0.3πn)和x2=sin(0.6n); 的幅度特性图像。由下图看出:x1=1.5sin(0.3πn)的周期是20,而x2=sin(0.6n)是非周期的。理论计算中对第一个,N=2π/(0.3π)=20/3,为有理数。而第二个0.6不是π的倍数,所以不是周期的。因此可以看出,实验结果和理论相符。

对于离散复指数函数zn

=?,只有当z是纯虚数,且纯虚数的系数是π的

x a e

倍数时,才是周期的。其它情况下均不是。

MATLAB实现过程:

>> n=0:80;

>> x1=1.5*sin(0.3*pi*n);

>> x2=sin(0.6*n);

>> subplot(1,2,1);

>> stem(n,x1);

>> xlabel ('时间序列n');

>> ylabel('振幅');

>> title('正弦序列x1=1.5*sin(0.3*pi*n)');

>> subplot(1,2,2);

>> stem(n,x2);

>> xlabel ('时间序列n');

>> ylabel('振幅');

>> title('正弦序列x1=1.5*sin(0.3*pi*n)');

>>

实验2 离散系统的差分方程、冲激响应和卷积分析

实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。

实验原理:离散系统

其输入、输出关系可用以下差分方程描述:

∑=∑=-=

-M k k N k k k n x p k n y d 0

]

[][

输入信号分解为冲激信号,

∑-=∞

-∞

=m m n m x n x ]

[][][δ。记系统单位冲激响应

][][n h n →δ,则系统响应为如下的卷积计算式:

∑∞

-∞

=-=

*=m m n h m x n h n x n y ]

[][][][][

N

k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系

统为FIR 系统;反之,称系统为IIR 系统。

在MATLAB 中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。

实验内容:编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其

图形。

[]0.6[1]0.08[2][][1]

y n y n y n x n x n +-+-=--

[]0.2{[1][2][3][4][5][6]}

y n x n x n x n x n x n x n =-+-+-+-+-+-

实验要求:给出理论计算结果和程序计算结果并讨论。 实验过程:

[]0.6[1]0.08[2][][1] +-+-=--y n y n y n x n x n (1)单位冲激响应:

>> a=[1,0.6,0.08];

>> b=[1,-1];

>> N=20;

>>n=0:1:N;

>> x=[1,zeros(1,N)];

>> y=filter(b,a,x);

>> stem(n,y);

>> xlabel('时间序列n');

>> ylabel('信号幅度');

>> title('单位冲激响应h(n)');

>>

(2)单位阶跃响应:

>> a=[1,0.6,0.08];

>> b=[1,-1];

>> N=20;

>>n=0:1:N-1;

>> x=[ ones(1,N)];

>> y=filter(b,a,x);

>> stem(n,y);

>> xlabel('时间序号'); >> ylabel('信号幅度');

>> title('单位阶跃响应h (n )'); >>

理论分析:

由差分方程得系统函数为:1

1

2

1()10.60.08z

H z z

z

----=

++

利用分部分式法可得:1

1

76

()10.410.2H z z

z

--=-

++,z 反变换得:

()[7(0.4)6(0.2)n

n

h n u n =?--

?- h(n)即为单位冲击响应。

对于阶跃响应, 1

1()1X z z

-=

-,所以阶跃响应()()()Y z X z H z =?

=1

2

1

10.60.08z

z

--++

=11

21

10.410.2z

z

---

++

所以,()[2(0.4)(0.2)]()n n

y n u n =?---

可见,实验结果与理论分析是一致的。

=-+-+-+-+-+-[]0.2{[1][2][3][4][5][6]}

y n x n x n x n x n x n x n (1)单位冲激响应

>> a=[1];

>> b=[0.2,0.2,0.2,0.2,0.2,0.2];

>> N=20;

>>n=0:1:N;

>> x=[1,zeros(1,N)];

>> y=filter(b,a,x);

>> stem(n,y);

>> xlabel('时间序号n');

>> ylabel('信号幅度');

>> title('单位冲激响应h(n)');

>>

(2)单位阶跃响应

>> a=1;

>> b=[0.2,0.2,0.2,0.2,0.2,0.2];

>> N=20;

>>n=0:1:N-1;

>> x=[ones(1,N)]; >> y=filter(b,a,x); >> stem(n,y);

>> xlabel('时间序号'); >> ylabel('信号幅度');

>> title('单位阶跃响应h (n )'); >>

理论分析:

由差分方程得系统函数为:1

2

3

4

5

6

()0.2()H z z

z

z

z

z

z

------=?+++++

z 反变换得:

()0.2((1)(2)(3)(4)(5)(6))h n n n n n n n δδδδδδ=?-+-+-+-+-+-

h(n)即为单位冲击响应。

对于阶跃响应, 1

1()1X z z

-=

-,所以阶跃响应:

()()()Y z X z H z =?

=

1

2

3

4

5

6

1

0.2()

1z

z

z

z

z

z

z

-------?+++++-

所以,()0.2((1)(2)(3)(4)(5)(6))y n u n u n u n u n u n u n =?-+-+-+-+-+- 可见,实验结果与理论分析是一致的。

实验3 离散系统的频率响应分析和零、极点分布

实验目的:加深对离散系统的频率响应分析和零、极点分布的概念理解。

实验原理:离散系统的时域方程为

==-=

-M

k k N

k k k n x p k n y d 0

)

()(

其变换域分析方法如下:

频域

)

()()(][][][][][ω

ω

ω

j j j m e

H e

X e

Y m n h m x n h n x n y =?-=

*=∑∞

-∞

=

系统的频率响应为

ω

ω

ω

ωω

ωω

jN N j jM M j j j j e

d e

d d

e p e p p e

D e p e

H ----++++++=

=

......)

()()(1010

Z 域

)

()()(][][][][][z H z X z Y m n h m x n h n x n y m =

?-=

*=∑∞

-∞

=

系统的转移函数为

N

N M M z

d z

d d z p z p p z D z p z H ----++++++=

=

......)

()()(1

10110

分解因式

∏-∏-=∑∑=

=-=-=-=-N

i i M

i i N

i i

k M

i i

k z z K

z

d z p z H 11

11

0)

1()1()(λξ ,其中

i

ξ和

i

λ称为零、极

点。

在MATLAB 中,可以用函数[z ,p ,K]=tf2zp (num ,den )求得有理分式形式的系统转移函数的零、极点,用函数zplane (z ,p )绘出零、极点分布图;也可以用函数zplane (num ,den )直接绘出有理分式形式的系统转移函数的零、极点分布图。

另外,在MATLAB 中,可以用函数 [r ,p ,k]=residuez (num ,den )完成部分分式展开计算;可以用函数sos=zp2sos (z ,p ,K )完成将高阶系统分解为2阶系统的串联。

实验内容:求系统

1

2

3

4

5

1

2

3

4

5

0.05280.7970.12950.12950.7970.0528()1 1.8107 2.4947 1.88010.95370.2336z z

z

z

z

H z z

z z z z

----------+++++=

-+-+-

的零、极点和幅度频率响应。

实验要求:编程实现系统参数输入,绘出幅度频率响应曲线和零、极点分布图。

实验过程:

画出零极点图:

>> num=[0.0528,0.797,0.1295,0.1295,0.797,0.0528];

>> den=[1,-1.8107,2.4947,-1.8801,0.9537,-0.2336];

>> [z,p,K]=tf2zp(num,den);

>> zplane(b,a);

>> title('零极点图');

>>

绘制幅度频率响应曲线:

>> num=[0.0528,0.797,0.1295,0.1295,0.797,0.0528];

>> den=[1,-1.8107,2.4947,-1.8801,0.9537,-0.2336];

>> [H,W]=freqz(num,den);

>> M=abs(H);

>> subplot(2,1,1);

>> xlabel('Mormalized Frequency(xΠrad/sample)');

>> ylabel('Magritude(dB)');

>> title('幅度频率响应曲线');

>> grid;

>> subplot(2,1,2);

>> plot(W);

>> xlabel('Mormalized Frequency(xΠrad/sample)'); >> ylabel('Phase(degree)');

>> grid;

>>

实验4 离散信号的DTFT 和DFT

实验目的:加深对离散信号的DTFT 和DFT 的及其相互关系的理解。 实验原理:序列x[n] 的DTFT 定义:∑=∞

-∞

=-n jn ω

j ω

x[n]e

)X(e

N 点序列x[n] 的DFT 定义:

∑-=-=-=

=

=1

1

22][][)(][N n kn

N

N n kn

N

j

k

N j W n x e

n x e

X k X ππ

在MATLAB 中,对形式为ω

ω

ω

ωω

ωωjN N j jM M j j j j e

d e

d d

e p e p p e

D e p e X ----++++++=

=

......)

()()(1010的DTDFT 可以

用函数H=Freqz (num ,den ,w )计算;可以用函数U=fft (u ,N )和u=ifft (U ,N )计算N 点序列的DFT 正、反变换。

实验内容: 分别计算16点序列 15

0,16

5cos

)(≤≤=n n n x π的16点和32点DFT ,

绘出幅度谱图形,并绘出该序列的DTFT 图形。

实验要求:讨论DTFT 和DFT 之间的相互关系。说明实验产生的现象的原因。

实验步骤:

①16点序列X(n)的16点及32点DFT:

>> N=16; >> n=1:16;

>> x= sin(5*pi*n/16); >> X1=fft(x,16); >> X11=abs(X1); >> subplot(2,1,1); >> stem(X11);

>> xlabel('频率'); >> ylabel('幅度');

>> title('16点序列x (n )的16点DFT'); >> X2=fft(x,32);

>> X22=abs(X2);

>> subplot(2,1,2);

>> stem(X22);

>> xlabel('频率');

>> ylabel('幅度');

>> title('16点序列x(n)的32点DFT'); >>

②序列x(n)的DTFT:

>> x= sin(5*pi*n/16);

>> X1=fft(x);

>> X11=abs(X1);

>> stem(X11);

>> xlabel('频率');

>> ylabel('幅度');

>> title('序列x(n)的DTFT');

>>

DTFT和DFT之间的区别和关系:

实验5 FFT 算法的应用

实验目的:加深对离散信号的DFT 的理解及其FFT 算法的运用。

实验原理:N 点序列的DFT 和IDFT 变换定义式如下:

1

[][]N kn N

n X k x n W

-==

1

1[][]N kn

N

k x n X k W N

--==

利用旋转因子

2j nk

kn N

N

W

e

π-=具有周期性,可以得到快速算法(FFT )。

在MATLAB 中,可以用函数X=fft (x ,N )和x=ifft (X ,N )计算N 点序列的

DFT 正、反变换。

实验内容:

2N 点实数序列

???

???????-=+=n N n n N

n N n x 其它,012,...,2,1,0),192cos(21)72cos()(ππ

N=64。用一个64点的复数FFT 程序,一次算出N

n x DFT k X 2)]([)(=,并绘

)

(k X 。

(2)已知某序列)(n x 在单位圆上的N=64等分样点的Z 变换为

63

,...,2,1,0,8.011

)()(/2=-=

=-k e

k X z X N

k j k π。用N 点IFFT 程序计算

)]([)(_

k X IDFT n x =,绘出和)(_

n x 。

实验要求:利用MATLAB 编程完成计算,绘出相应图形。并与理论计算相比较,

说明实验结果的原因。

实验步骤:

2N 点实数序列x (n )的64点的复数FFT :

>> k=0:N-1;

>> n1=2*n;

>> n2=2*n+1;

>> x1=cos(2*pi*7*n1/N)+1/2*cos(2*pi*19*n1/N); >> x2=cos(2*pi*7*n2/N)+1/2*cos(2*pi*19*n2/N); >> XK1=fft(x1,64);

>> XK2=fft(x2,64);

>> XK11=XK1+(exp(-j*pi*k/N)).*XK2;

>> XK22=XK1-(exp(-j*pi*k/N)).*XK2;

>> XK11=[zeros(1,N),XK11];

>> XK22=[XK22,zeros(1,N)];

>> Xk=XK11+XK22;

>> k=0:1:2*N;

>> mag=abs(Xk);

>> stem(mag);

>> xlabel('k');

>> ylabel('幅度|X(k)|');

>> title('128点序列x(n)的64点的复数FFT'); >>

理论计算:

由欧拉公式:)192cos(

2

1)72cos(

][n N

n N

n x ?+

?=ππ

)2

12

1(2

1)

19(2192)

7(272n N N

j

n

N

j n N N

j n

N

j e

e

e

e -??-??+

+

+=

ππππ

设kn

N j e n p ?=π2][,则其2N 点的DFT 变换为:

∑∑

-=--=-=

=

1

20

)

2(221

20

22][][N n m k N

n j

N n n

N

m j

e

e

n p m p ππ

当m k ≠2时,)

2(22)

2(22211][m k N

j

m k N N j

e

e

m p --?--=

ππ =0

当m k =2时,即N k p 2]2[=

由此可得][k x 当k=14,38,90,114时有值其余为0120(-≤≤N k ) 64]114[]14[==x x ,32]90[]38[==x x 与程序计算有相同的结论,可见,理论与实验结果相符合。

(2) X(k)的N 点IFFT:

>> N=64; >> n=0:N-1;

>> Xk=1./(1-0.8.*exp(-2*pi*j*n/N)); >> xn=ifft(Xk,N); >> stem(n,xn);

>> xlabel('时间序列n'); >> ylabel('序列x (n )'); >> title('X(k)的ifft 变换'); >>

理论计算:

由][][n u a n x n =,其Z 变换为1

11)(--=

az

z X 可得

][8.0][n u n x n

=,其N=64点的DFT 为:

=

63

,...,2,1,0,8.011

)()(/2=-=

=-k e

k X z X N

k j k π

其IDFT 为:

n

64

8.08.08.011

][≈?-=n

n x )632,1,0( =n 则x[0]=1,x[1]=0.8,x[2]=0.64,x[3]=0.512…

与图像所示的x[n]相差很小,可以认为程序计算值与理论计算值相符。

∑=-=

63

64

2][][n n

k j e

n x k X π64

264

2648.0118.018

.01k j k j

e

e

ππ---≈

--

matlab 三维图形绘制实例

三维图形 一. 三维曲线 plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) 其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同。当x,y ,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y ,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。 Example1.绘制三维曲线。 程序如下: clf, t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); %向量的乘除幂运算前面要加点 plot3(x,y,z); title('Line in 3-D Space'); xlabel('X');ylabel('Y');zlabel('Z'); grid on; 所的图形如下: -1 1 X Line in 3-D Space Y Z 二. 三维曲面 1. 产生三维数据 在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。

语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。 2. 绘制三维曲面的函数 surf 函数和mesh 函数 example2. 绘制三维曲面图z=sin(x+sin(y))-x/10。 程序如下: clf, [x,y]=meshgrid(0:0.25:4*pi); %产生平面坐标区域内的网格坐标矩阵 z=sin(x+sin(y))-x./10; surf(x,y,z); axis([0 4*pi 0 4*pi -2.5 1]); title('surf 函数所产生的曲面'); figure; mesh(x,y ,z); axis([0 4*pi 0 4*pi -2.5 1]); title('mesh 函数所产生的曲面'); -2.5 -2-1.5-1-0.500.51surf 函数所产生的曲面

5 MATLAB图形功能

§5MATLAB图形功能 MA TLAB有很强的图形功能,可以方便地实现数据的视觉化。强大的计算功能与图形功能相结合为MA TLAB在科学技术和教学方面的应用提供了更加广阔的天地。下面着重介绍二维图形的画法,对三维图形只作简单叙述。 5.1 二维图形的绘制 5.1.1 基本形式 二维图形的绘制是MA TLAB语言图形处理的基础,MA TLAB最常用的画二维图形的命令是plot,看两个简单的例子: >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形见图5-1,是以序号6, ,2,1 为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形见图5-2,是] 2,0[ 上30个点连成的光滑的正弦曲线。 图5-1 图5-2 5.1.2 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 则可以画出图5-3。多重线的另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MA TLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如: >> x=linspace(0,2*pi,30); y=sin(x); plot(x,y) 先画好图5-2,然后用下述命令增加cos(x)的图形,也可得到图5-3。 >> hold on >> z=cos(x); plot(x,z)

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

matlab-离散信号傅里叶变换

1.请用MATLAB编写程序,实现任意两个有限长度序列的卷积和。要求用图 形显示两个序列及卷积结果。 解:y(n)=∑x(i)h(n-i) 假设x(n)={1,2,3,4,5}; h(n)={3,6,7,2,1,6}; y(n)=x(n)*h(n) 验证:y[n]=[1,12,28,46,65,72,58,32,29,30] 【程序】 N=5 M=6 L=N+M-1 x=[1,2,3,4,5] h=[3,6,7,2,1,6] y=conv(x,h) nx=0:N-1 nh=0:M-1 ny=0:L-1 subplot(131);stem(nx,x,'*b');xlabel('n');ylabel('x(n)');grid on subplot(132);stem(nh,h,'*b');xlabel('n');ylabel('h(h)');grid on subplot(133);stem(ny,y,'*r');xlabel('n');ylabel('y(h)');grid on 【运行结果】

2.已知两个序列x[n]=cos(n*pi/2), y[n]=e j*pi*n/4x[n],请编写程序绘制 X(e jw)和Y(e jw)和幅度和相角,说明它们的频移关系。 –提示:用abs函数求幅度,用angle求相角。 【程序】 n=0:15; x=cos(n*pi/2); y=exp(j*pi*n/4).*x; X=fft(x); Y=fft(y); magX=abs(X); angX=angle(X); magY=abs(Y); angY=angle(Y); subplot(221);stem(n,magX,'*r');xlabel('频率');ylabel('幅度');grid on; subplot(222);stem(n,angX,'*b');xlabel('频率');ylabel('相位');grid on; subplot(223);stem(n,magY,'*r');xlabel('频率');ylabel('幅度');grid on; subplot(224);stem(n,angY,'*b');xlabel('频率');ylabel('相位');grid on;

用matlab实现两个离散序列的卷积(不使用conv函数)

作业2.用matlab实现离散序列的卷积. N=14; n=[1:N-1]; f=1/16; signal1=5*sin(2*pi*n/8); figure(1); subplot(3,1,1) stem(n,signal1);title( ' 信号1' );xlabel( 'n' );ylabel( axis([0 15 -6 6]) long_M=5; signal2=ones(1,long_M); subplot(3,1,2) stem(signal2);title( ' 信号2' );xlabel( 'n' );ylabel( axis([0 6 -2 2]); grid on; long_N=length(signal1); fk=zeros(0,long_N+long_M+10); if (long_N>long_M) for k=1:1:long_N+long_M-1 a=0; if (k<=long_N) for i=1:1:k if (i>long_M) fk(k)=a; else fk(k)=a+signal2(i)*signal1(k-i+1); a=fk(k); end end else for i=1:1:k if (k-long_N+i>long_M) fk(k)=a; else fk(k)=a+signal2(k-long_N+i)*signal1(long_N-i+1); a=fk(k); end end end end end subplot(3,1,3) stem(fk);title( ' 卷积函数的实现' );xlabel( 'n' );ylabel( 'y(n)' ); 'y(n)' ); 幅度' );

用matlab绘制的漂亮图形

用matlab绘制的漂亮图形 1.不同坐标系下的图形对比 theta=0:pi/20:4*pi; phi= theta.^2- theta; [t,p]=meshgrid(theta,phi); r=t.*p; subplot(1,2,1);mesh(t,p,r); ylabel('x');xlabel('y');zlabel('z'); [x,y,z]=sph2cart(t,p,r); subplot(1,2,2);mesh(x,y,z); ylabel('x');xlabel('y');zlabel('z'); 2.球曲面的法线 [x,y,z]=sphere; Surfnorm(x,y,z)

3. x=rand(100,1)*16-8; y=rand(100,1)*16-8; r=sqrt(x.^2+y.^2)+eps; z=sin(r)./r; xlin=linspace(min(x),max(x),33); ylin=linspace(min(y),max(y),33); [X,Y]= meshgrid(xlin,ylin); Z=griddata(x,y,z,X,Y); mesh(X,Y,Z); axis tight;hold on; ylabel('x');xlabel('y');zlabel('z'); plot3(x,y,z,’r’,’MarkerSize’,15)

x=rand(1000,1)*16-8; y=rand(1000,1)*16-8; r=sqrt(x.^2+y.^2)+eps; z=sin(r)./r; xlin=linspace(min(x),max(x),99); ylin=linspace(min(y),max(y),99); [X,Y]= meshgrid(xlin,ylin); Z=griddata(x,y,z,X,Y); mesh(X,Y,Z); axis tight;hold on; ylabel('x');xlabel('y');zlabel('z'); plot3(x,y,z,'r','MarkerSize',30);

MatLab图形绘制功能

MatLab图形绘制功能MatLab图形绘制功能例子解读 一、二维平面图形 基本绘图函数 命令含义 plot 建立向量或矩阵各队队向量的图形 loglog x、y轴都取对数标度建立图形 semilogx x轴用于对数标度,y轴线性标度绘制图形semilogy y轴用于对数标度,x轴线性标度绘制图形title 给图形加标题 xlabel 给x轴加标记 ylabel 给y轴加标记 text 在图形指定的位置上加文本字符串 gtext 在鼠标的位置上加文本字符串 grid 打开网格线 plot绘图函数的叁数 字元颜色字元图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线

c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线 hold on 命令用于在已画好的图形上添加新的图形 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: x=0:0.001:10; % 0到10的1000个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); % 绘图 Y=sin(10*x); plot(x,y,'r:',x,Y,'b') % 同时画两个函数 , 若要改变颜色,在座标对後面加上相关字串即可: x=0:0.01:10; plot(x,sin(x),'r') 若要同时改变颜色及图线型态(Line style),也是在坐标对後面加上相关字串 即可: plot(x,sin(x),'r*') 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围 axis([0,6,-1.5,1]) MATLAB也可对图形加上各种注解与处理: xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解 title('余弦函数'); % 图形标题 legend('y = cos(x)'); % 图形注解 gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置 grid on; % 显示 格线

离散时间信号表与运算

离散时间信号表与运算

————————————————————————————————作者:————————————————————————————————日期:

实验一 离散时间信号的表示与运算 一 实验目的 1、熟悉MATLAB 的绘图函数; 2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法; 3、掌握离散时间信号基本运算的MATLAB 实现; 4、掌握离散时间信号线性卷积和运算的MATLAB 实现。 二 实验设备 1、计算机 2、MA TLAB R2007a 仿真软件 三 实验原理 1)序列相加和相乘 设有序列)(1n x 和)(2n x ,它们相加和相乘如下: ) ()()()()()(2121n x n x n x n x n x n x ?=+= 注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。如果不相同,在运算前应采用zeros 函数将序列左右补零使其长度相等并且位置相对应。在MATLAB 中,设序列用x1和x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2。 2)序列翻转 设有序列:)()(n x n y -=,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。MATLAB 中,翻转运算用fliplr 函数实现。设序列)(n x 用样值向量x 和位置向量nx 表述,翻转后的序列 )(n y 用样值向量y 和位置向量ny 描述。 3)序列的移位 移位序列)(n x 的移位序列可表示为:)()(0n n x n y -=,其中,00>n 时代表序列右移 0n 个单位;00

实验2matlab绘图操作

实验2 Matlab 绘图操作 实验目的: 掌握绘制二维图形的常用函数; 掌握绘制三维图形的常用函数; 掌握绘制图形的辅助操作。 实验内容: 设sin .cos x y x x ?? =+??+? ?23051,在x=0~2π区间取101点,绘制函数的曲线。 已知: y x =2 1,cos()y x =22,y y y =?312,完成下列操作: 在同一坐标系下用不同的颜色和线性绘制三条曲线; 以子图形式绘制三条曲线; 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x x e y x x ?+≤??=??+>??2 0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888 ,绘制函数z = 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?++>? ==??+-> x=(0:2*pi/100:2*pi);

>> y=+3*sin(x)/(1+x.^2))*cos(x); >> plot(x,y) 2.已知: y x =2 1,cos()y x =22,y y y =?312,完成下列操作: (1)在同一坐标系下用不同的颜色和线性绘制三条曲线; >> x= linspace(0, 2*pi, 101); >> y1=x.*x; >> y2=cos(2x); >> y3=y1.*y2; plot(x,y1,'r:',x,y2,'b',x,y3, 'ko') (2)以子图形式绘制三条曲线; >> subplot(2,2,1),plot(x,y1) subplot(2,2,2),plot(x,y2) subplot(2,2,3),plot(x,y3)

信号与系统卷积介绍

卷积积分与卷积 一、摘要: 近十年来,由于电子技术和集成电路工艺的飞速发展,电子计算机已为信号的处理提供了条件。信号与系统分析理论应用一直在扩大,它不仅应用于通信、雷达、自动控制、光学、生物电子学、地震勘探等多种领域,而且对社会和自然学科也具有重要的指导意义。 卷积运算是线性时不变系统的一个重要工具,随着信号与系统理论研究的深入,卷积运算得到了更广泛的应用。卷积运算有很多种解法,对于一般无限区间而言,可用定义法直接求解。而本文通过图解法、卷积性质法、简易算法对有限区间卷积积分和卷积和分别进行求解,最后进行了相关的比较。 二、关键词: 信号与系统;卷积;图解法;卷积性质法;简易算法 三、正文: 卷积在信号与系统理论分析中,应用于零状态响应的求解。对连续时间信号 的卷积称为卷积积分,定义式为: ∞ f t=f1τf2t?τdτ ?f1(t)?f2(t) ?∞ 对离散时间信号的卷积称为卷积和,定义式为: ∞ f n=f1m f2n?m ?f1(n)?f2(n) m=?∞ 1、卷积积分的解法 (1)图解法 图解法适合于参与卷积运算的两函数仅以波形形式给出,或者已知函数的波形易于画出的情况。利用图解法能够直接观察到许多抽象关系的具体情况,而且容易确定卷积积分的上、下限,是一种极有效的方法。

如果给定f 1 t 和f 2(t ),要求这两个函数的卷积积分f t =f 1(t )?f 2(t ),首先要改变自变量,即将f 1 t 和f 2(t )变成f 1 τ 和f 2(τ),这时函数图形与原来一样,只是横坐标变为了t ,然后再经过以下四个步骤: (1)反褶,即将f 2(τ)进行反褶,变为f 2(?τ); (2)时移,即将f 2(?τ)时移t ,变为f 2 t ?τ =f 2[?(τ?t )],当t >0时,将f 2(?τ)右移t ,而当t <0时,将f 2(?τ)左移t ; (3)相乘,即将f 1 t 与f 2 t ?τ 相乘得到f 1 t f 2 t ?τ ; (4)积分,即将乘积f 1 t f 2 t ?τ 进行积分,积分的关键是确定积分限。一般是将f 1 t f 2 t ?τ 不等于零的区间作为上下限,而当取不同的值时,不为零的区间有所变化,因此要分成不同的区间来求卷积。 例1、已知f 1 t 和f 2(t )的波形如图1-1所示,求f t =f 1(t )?f 2(t )。 图1-1 解:(1)变量代换,将变量f 1 t 和f 2(t )变成f 1 τ 和f 2(τ),此时波形不变; (2)将f 2(τ)进行反褶,变为f 2(?τ),图1-2; (3)时移,即将f 2(?τ)时移t ,图1-3; (4)相乘,即将f 1 t 与f 2 t ?τ 相乘得到f 1 t f 2 t ?τ ,图1-4~8; 图 1-3 图1-2 [τ] [τ]

实验二 matlab图形绘制

实验二matlab图形绘制 一、实验目的 1、学习MATLAB图形绘制的基本方法; 2、熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 二、实验原理 1.二维数据曲线图 (1)绘制单根二维曲线plot(x,y); (2)绘制多根二维曲线plot(x,y) 当x是向量,y是有一维与x同维的矩阵时,则绘制多根不同颜色的曲线。当x,y是同维矩阵时,则以x,y对应列 元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3)含有多个输入参数的plot函数plot(x1,y1,x2,y2,…,xn,yn) (4)具有两个纵坐标标度的图形plotyy(x1,y1,x2,y2) 2.图形标注与坐标控制 1)title (图形名称) 2)xlabel(x轴说明) 3)ylabel(y轴说明) 4)text(x,y图形说明) 5)legend(图例1,图例2,…) 6)axis ([xmin xmax ymin ymax zmin zmax]) 3.图形窗口的分割 subplot(m,n,p) 4.三维曲线 plot3(x1,y1,z1,选项1,x2,y2,选项2,…,xn,yn,zn,选项n)

5.三维曲面 mesh(x,y,z,c) 与surf(x,y,z,c)。一般情况下,x ,y ,z 是维数相同的矩阵。X ,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。 三、实验内容及步骤 1.绘制下列曲线: (1) 2 1100 x y += x=0:0.02:10; y=100./(1+x.^2); plot(x,y) title('my first plot'); xlabel('x'); ylabel('y'); grid on 截图:

离散时间信号的产生及信号的卷积和运算实验报告2

离散时间信号的产生及信号的卷积和运算 实验报告 班级:___________ 姓名:__________ 学号:____________ 一、实验目的和原理 实验原理: (一)DTFT 和DFT 的定义及其相互关系: 序列x[n] 的DTFT 定义:∑=∞ -∞ =-n jn ωj ω x[n]e )X(e 它是关于自变量ω的复函数,且是以π2为周期的连续函数。)X(e j ω 可以表示为: )(e jX )(e X )X(e j ωim j ωre j ω+= 其中,)(e X j ω re 和)(e X j ωim 分别是)X(e j ω的实部和虚部;还可以表示为: )(ωj j ωj ωe )X(e )X(e θ= 其中,)X(e j ω 和}arg{)()X(e j ω=ωθ分别是)X(e j ω的幅度函数和相位函数; 它们都是ω的实函数,也是以π2为周期的周期函数。 序列x[n]的N 点DFT 定义: ∑∑-=-=-===10 1 22][][)(][N n kn N N n kn N j k N j W n x e n x e X k X ππ ][k X 是周期为N 的序列。 )X(e j ω与][k X 的关系:][k X 是对)X(e j ω在一个周期中的谱的等间隔N 点采样,即: k N j ω)X(e k X πω2| ][= =, 而)X(e j ω 可以通过对][k X 内插获得,即:

]2/)1)][(/2([1 ) 22sin() 22sin( ] [1----=?--= ∑N N k j N k j ω e N k N k N k X N )X(e πωπωπω (二) 线性时不变离散时间系统的变换域表示: LTI 离散时间系统的时域差分方程为: ∑∑==-=-M k k N k k k n x p k n y d )()( (1) 传递函数: 对上面的差分方程两边求z 变换,得: ∑∑∑∑=-=-=-=-=? =N k k k M k k k M k k k N k k k z d z p z X z Y z p z X z d z Y 0 00 ) () ()()( 我们定义LTI 离散时间系统的输出的Z 变换Y(z)与输入的Z 变换X(z)的比值为该系统的传递函数,即) () ()(z X z Y z H = 为系统的传递函数。 N N M M z d z d d z p z p p z D z p z H ----++++++= =......)()()(110110 分解因式 ∏-∏-=∑∑= =-=-=-=-N i i M i i N i i k M i i k z z K z d z p z H 11 11 0)1()1()(λξ ,其中i ξ和i λ称为零、极点。 利用系统的传递函数)(z H ,我们可以分析系统的零极点,稳定性及实现结构等特点。 (2) 频率响应: 因为大多数离散时间信号都可以分解为n j e ω的线性组合,所以研究输入n j e ω-的响应具有极大的意义,即当输入为n j e n x ω=][时,输出为: )()()(][) (ωωωωωj n j m m j n j m n j m e H e e m h e e m h n y === ∑∑∞ -∞ =--∞ -∞ = 这里,∑∞-∞ =-= n n j j e n h e H ωω )()(是h(n)的DTFT ,称为LTI 离散时间系统的频率

信号与系统-连续信号和离散信号的表示与卷积实验报告

实验一:连续信号和离散信号的表示与卷积 一.实验目的 1. 学习MATLAB 软件产生信号和实现信号的可视化 2. 学习和掌握连续和离散信号的时域表示方法 3. 学习和掌握连续信号和离散信号卷积方法 二.实验原理 1. 信号的表示方法 ● 常用信号: 连续函数()θω+=t t f sin )(, at Ae t f =)(,t t t Sa sin )(= 离散信号()n n f 0sin ][ω=,n jw e n f 0][=,][][n u a n f n = ● 奇异信号: 连续函数:冲激函数)(t δ,阶跃函数)(t u ,斜坡函数)(t R 离散信号:冲激函数][n δ,阶跃函数][n u ,斜坡函数][n R 2.卷积 连续函数的卷积:? ∞ ∞--=τττd t f f t g )()()(21 离散函数的卷积:∑∞ -∞ =-= m m n f m f n g ][][][2 1 三.实验内容 1. 熟悉matlab 工作环境 (1) 运行matlab.exe ,进入matlab 工作环境,如图(1)所示。

图1 matlab工作环境 (2)matlab工作环境由Command Window(命令窗口)、Current Direcroty(当前目录)、workspace (工作空间)、command History(历史命令)和Editor(文件编辑器)5部分组成。其中所有文件的编辑和调试、运行在Editor编辑窗口下进行。程序的运行也可以在命令窗口进行。 程序调试的信息显示在命令窗口。 (3)程序文件的产生:点击菜单file下的New下的M_files,进入编辑器界面,如图2。

实验二 离散信号的卷积和

(数字信号处理)实验报告 实验名称 实验二 离散信号的卷积和 实验时间 年 9 月 28 日 专业班级 学 号 姓 名 成 绩 教师评语: 一、 实验目的 1、掌握两个离散信号卷积和的计算方法和编程技术。 2、进一步熟悉用MATLAB 描绘二维图像的方法。 二、 实验原理与计算方法 两个离散序列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 =的卷积和 ∑∑=∞-∞=-=--= n m 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 = n1开始的序列 ) ()()(1n n u n x n x -=和从n = n2开始的序列) ()()(2n n u n y n y -=的卷积和,其中n1和n2为任意整数。 ∑∑-=∞ -∞ =---=----= 2 1 ) ()]()([)()()()()(2 1 2 1 n n n m m n n n u m n y m x n m n u m n y n m u m x n f (2) 上式右边因子u(n-n1-n2)表示卷积和是一个从n = n1+n2开始的序列。 3、从n = n1开始的长度为N1的加窗序列) ()()(1n w n x n x N =和从n = n2开始的长度 为N2的加窗序列 ) ()()(2n w n y n y N =的卷积和,其中 ?? ?-+≤≤=otherwise 0 1 1 )(1111N n n n n w N ?? ?-+≤≤=o t h e r w i s e 0 1 1 )(2222N n n n n w N 则 ∑∞ -∞ =--= m N N m n w m n y m w m x n f ) ()()()()(21

matlab二维图形的绘制

matlab二维图形的绘制(2006-11-20 20:38:35) 转载 ▼ 分类:matlab基础(电子方向) 常用的二维图形命令:

plot:绘制二维图形loglog:用全对数坐标绘图semilogx:用半对数坐标(X)绘图semilogy:用半对数坐标(Y)绘图fill:绘制二维多边填充图形polar:绘极坐标图bar:画条形图stem:画离散序列数据图stairs:画阶梯图errorbar:画误差条形图hist:画直方图fplot:画函数图title:为图形加标题xlabel:在X轴下做文本标记ylabel:在Y轴下做文本标记zlabel:在Z轴下做文本标记text:文本注释grid:对二维三维图形加格栅 绘制单根二维曲线 plot函数,基本调用格式为:

plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 例如:在区间内,绘制曲线 y=2e-0.5xcos(4πx)程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y)

plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 p=[22,60,88,95,56,23,9,10,14,81,56,23]; plot(p) 绘制多根二维曲线 1.plot函数的输入参数是矩阵形式

(1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。 当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE = strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1 = strel('square',6) % 创建6*6的正方形 se2 = strel('line',10,45) % 创建直线长度10,角度45 se3 = strel('disk',15) % 创建圆盘半径15 se4 = strel('ball',15,5) % 创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW = roipoly(I,c,r) BW = roipoly(I) BW = roipoly(x,y,I,xi,yi) [BW,xi,yi] = roipoly(...) [x,y,BW,xi,yi] = roipoly(...) BW = roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW = roipoly(I)表示建立交互式的处理界面。 BW = roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I = imread('eight.tif'); c = [222 272 300 270 221 194]; r = [21 21 75 121 121 75]; BW = roipoly(I,c,r); imshow(I)

教你如何用matlab绘图(全面)

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一.二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 一.绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:

二连续时间信号卷积和离散时间信号卷积

二连续时间信号卷积和离散时间信号卷积 二.连续时间信号卷积和离散时间信号卷积 1.连续时间信号卷积 ) ( ) ( ) ( 2 1 t f t f t f * =; 2. 离散时间信号卷积 ) ( ) ( ) ( 2 1 n f n f n

f * = 连续时间信号卷积 function [f,k]=sconv(f1,f2,k1,k2,p) %计算连续信号卷积积分 f(t)=f1(t)*f2(t) %f: 卷积积分 f(t)对应的非零样值向量 %K: f(t)的对应时间向量 %f1: f1(t)的非零样值向量 %f2: f2(t)的非零样值向量 %K1: 序列 f1(t)的对应时间向量 %K2: 序列 f2(t)的对应时间向量 %p: 取样时间间隔 f1=0.5*(0:0.01:2);f2=0.5*(0:0.01:2);k1=0:0.01:2;k2=0:0.01:2;p=0.01; f=conv(f1,f2); %计算序列 1与序列 2的卷积和 f=f*p; k0=k1(1)+k2(1); %计算序列 f 非零样值的起点位置 k3=length(f1)+length(f2)-2; %计算卷积和 f 非零样值得宽度 k=k0:p:k0+k3*p; %确定卷积和 f 非零样值的时间向量 subplot(3,3,1) plot(k1,f1) %在子图 1绘制 f1(t)时域波形图

title('f1(t)') xlabel('t') ylabel('f1(t)') subplot(3,3,4) plot(k2,f2) %在子图 2绘制 f2(t)时域波形图 title('f2(t)') xlabel('t') ylabel('f2(t)') subplot(3,3,7) plot(k,f); %画卷积 f(t)的时域波形 h=get(gca,'position'); h(3)=2.5*h(3); set(gca,'position',h) %将第三个子图的横坐标范围扩为原来的 2.5倍title(' f(t)=f1(t)*f2(t)') xlabel('t') ylabel('f(t)') 离散时间信号卷积 function [f,k]=dconv(f1,f2,k1,k2) %The function of compute f=f1*f2 %f: 卷积和序列 f(k)对应的非零样值向量 %k: 序列 f(k)的对应序号向量

matlab的图形功能

第3章MATLAB的图形功能 MATLAB可以给计算数据以二维、三维的图形表现。通过对图形线型、色彩、光线、视角等的指定和处理,可把计算数据的特征更好地表现出来。 在MATLAB中有两个层次的绘图命令:高层与底层绘图命令。高层命令简单实用,底层命令有更强、更灵活的控制和表现图形的能力。 本章将先后介绍上述两类绘图命令。但重点介绍高层绘图命令。

3.1二维图形 3.1.1 基本二维绘图命令–plot 1、调用格式 格式1: plot(x,y) 功能: (1)若x,y为同规模的向量,则绘制以x为横坐标、y为纵坐标的一条曲线。 例如: x=0:0.02:6; y=1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6; plot(x,y)

(2)若x为向量、y是二维数组,则绘制以x为横坐标、y的每一列为纵坐标的多条曲线。 例如: x=0:0.02:6; y=[sin(x);cos(x)]'; plot(x,y)运行结果如下图所示: 模),则绘制以它们的对应列为横、纵坐标的多条曲线。 例如: x=[0:0.02:6;0:0.02:6]; y=[sqrt(x(1,:));exp(-x(2,:))]; plot(x.',y.') 运行结果如下图所示:

将被忽略。例如: x = 0:0.2:10*pi; y = sqrt(sin(x)); plot(x,y) 运行结果如下图所示:

格式2: plot(y) 功能: (1)若y为向量,其元素为实数,则绘制以其下标为横坐标、以y为纵坐标的图形,即相当于plot(1:length(y),y)。例如: x=0:0.02:6; y=1./((x–0.3).^2+0.01)+1./((x–0.9).^2+0.04)-6; plot(y) 运行结果如下图所示:

实验二 离散信号的卷积

数字信号处理实验报告 实验二 离散信号的卷积和 一、实验目的 1、掌握两个离散信号卷积和的计算方法和编程技术。 2、进一步熟悉用Matlab 描绘二维图像的方法。 二、实验内容 (1) 根据(1)式计算两个从n = 0开始的序列)()(n u n x =和)()(n u e A n y an -=的卷积和,其中A =40,a = 0.5。取50个样值点,作出序列)(n x 、)(n y 及卷积和f (n )的图像。 (2) 根据(3)式计算两个有限长序列)()(1n w n x N =和)(8 )(2n w n n y N =的卷积和,其中 ? ??≤≤=otherwise 0 910- 1 )(1n n w N ???≤≤=o t h e r w i s e 0 245 1 )(2n n w N 作出序列)(n x 、)(n y 及卷积和f (n )的图像。 (1)nx=[0:49];x=(nx>=0); nh=[0:49]; A=40,a=0.5; h=A*exp((-a)*nh); nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h)); ny=[nyb:nye]; y=conv(x,h); subplot(2,2,1);stem(nx,x); subplot(2,2,2);stem(nh,h); subplot(2,1,2);stem(ny,y); (2)nx=[-10:9];x=(nx>=-10)-(nx>9); nh=[5:24]; h=(nh/8); nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));

相关主题