信号与系统.docx

上传人:b****2 文档编号:2395474 上传时间:2023-05-03 格式:DOCX 页数:13 大小:186.73KB
下载 相关 举报
信号与系统.docx_第1页
第1页 / 共13页
信号与系统.docx_第2页
第2页 / 共13页
信号与系统.docx_第3页
第3页 / 共13页
信号与系统.docx_第4页
第4页 / 共13页
信号与系统.docx_第5页
第5页 / 共13页
信号与系统.docx_第6页
第6页 / 共13页
信号与系统.docx_第7页
第7页 / 共13页
信号与系统.docx_第8页
第8页 / 共13页
信号与系统.docx_第9页
第9页 / 共13页
信号与系统.docx_第10页
第10页 / 共13页
信号与系统.docx_第11页
第11页 / 共13页
信号与系统.docx_第12页
第12页 / 共13页
信号与系统.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

信号与系统.docx

《信号与系统.docx》由会员分享,可在线阅读,更多相关《信号与系统.docx(13页珍藏版)》请在冰点文库上搜索。

信号与系统.docx

信号与系统

连续时间信号卷积运算的MATLAB实现

一、实验目的

1、理解掌握卷积的概念及物理意义;

2、理解单位冲击响应的概念及物理意义;

二、实验原理

根据前述知识,连续信号卷积运算定义为

卷积计算可以通过信号分段求和来实现,即

如果只求当

(n为整数)时

的值

,则由上式可得

上式中的

实际上就是连续信号

经登时间间隔均匀抽样的离散序列

的卷积和。

足够小,

就是卷积积分的结果—连续时间信号

的较好的数值近似。

三、实验内容

例:

、已知两连续时间信号如下图所示,绘制信号f1(t)、f2(t)及卷积结果f(t)的波形;

 

程序为:

t1=0:

0.5:

2.5

t2=-1:

0.5:

1

y1=0.4.*t1.*[ut(t1)-ut(t1-2.5)]

y2=0.5.*(t2+1).*[ut(t2+1)-ut(t2-1)]

y=0.5.*conv(y1,y2)

t0=t1

(1)+t2

(1)

t3=length(y)

t=t0:

0.5:

t0+(t3-1)*0.5

subplot(221)

plot(t1,y1)

title('y1=f(t)')

xlabel('t')

subplot(222)

plot(t2,y2)

title('y2=f(t)')

xlabel('t')

subplot(223)

plot(t,y)

title('y=f1(t)*f2(t)')

xlabel('t')

%定义阶跃函数,以供调用

functionx=ut(t)

x=(t>0)

 

程序截图如下

实验小结:

通过本次对连续时间卷积的实验,我加深了对卷积的理解,通过实验,更加验证了理论计算的正确性,为以后的学习奠定了基础。

用FFT实现信号谱分析

一、实验目的

1、了解FFT在信号谱分析中的作用;

2、了解谱分析的一般步骤和方法;

二、实验原理

1、谱分析中的参数选择

设待分析的信号为连续时间信号xa(t),为此先定义一些谱分析中要用到的参数。

T为抽样周期(s);fs为抽样频率(HZ),fs=1/T;f0为连续时间信号的最高频率(HZ);F为连续时间信号xa(t)的频率分辨间隔或称为频率分辨率(HZ);tp为信号最小记录长度,tp=1/F;N为一个记录长度中的抽样数。

设被分析信号的频谱主要集中在低频段,下面来确定参数的选择。

为了避免混叠失真,要求

fs>=2f0

因此应选择

T<=1/2f0

最小记录长度必须按所需要的频率分辨率来选择,即

tp=1/F

tp还可以表示为:

tp=N*T=1/F

从上式中看出,在谱分析中,信号的高频容量与频率分辨率之间存在矛盾。

要增加高频容量,在N不变的情况下,T就必须减小,这就必然导致记录长度缩短。

因而降低了频率分辨率;相反,要提高分辨率,在给定N的情况下,就必须增加tp,这就导致T的增加,结果减少了高频容量。

在保持另一参数不变的情况下,增加高频容量或提高分辨率的唯一方法是增加在以记录长度内的抽样数N。

如果f0和F都给定,则N必须满足

N>=2f0/F

2、谱分析的步骤

(1)数据准备

设待分析的信号为任意长的连续时间信号xa(t)。

若已知信号的最高长度为f0,频率分辨率为F,那么根据T<=1/2f0、tp=1/F、N>=2f0/F分别求出抽样周期T,最小记录长度tp和抽样数N。

因为要利用以2为基的FFT算法,所以如果由式N>=2f0/F计算得到的N值不是2的整数幂,则必要用补零的方法来增加N的值,使之等于2的整数幂。

在一个记录长度中对xa(t)抽样,抽样数为N,于是得

x(n)=xa(t)︱t=nT=xa(nT)

(2)使用FFT计算信号的频谱

用FFT计算信号的频谱,即计算

WNkn

一般是由实部XR(k)和虚部X1(k)组成的复数,即

=XR(k)+jX1(k)

(3)由频谱

计算幅度谱、相位谱、功率谱

=XR(k)+jX1(k)可求出幅度谱︱

︱、相位谱和功率谱。

例题如下

1.已知序列x(n)=sin(0.56*pi*n)+2*cos(0.25*pi*n)0≤n<100,试绘制x(n)及它的频谱图。

clearall

N=100;

n=0:

N-1;

xn=sin(0.56*pi*n)+2*cos(0.25*pi*n);

XK=fft(xn,N);

magXK=abs(XK);

phaXK=angle(XK);

subplot(1,2,1)

plot(n,xn)

xlabel('n');ylabel('x(n)');

title('x(n)N=100');

subplot(1,2,2)

k=0:

length(magXK)-1;

stem(k,magXK,'.');

xlabel('k');ylabel('|X(K)|');

title('X(K)N=100');

实验小结:

通过本次对FFT的实验,我加深了对快速卷积的理解,通过实验,更加验证了理论计算的正确性,为以后的学习奠定了基础。

 

循环卷积与线性卷积的实现

一、实验目的

1、进一步理解并掌握循环卷积与线性卷积的概念;

2、理解掌握二者的关系;

二、实验原理

两个序列的N点循环卷积的定义为:

从定义中可以看到,循环卷积和线性卷积的不同之处在于:

两个N点序列的N点循环卷积的结果仍为N点序列,而它们的线性卷积的结果的长度则为2N-1;循环卷积对序列的位移采取循环位移,而线性卷积对序列采取线性位移。

正是这些不同,导致了线性卷积和循环卷积有不同的结果和性质。

循环卷积和线性卷积虽然是不同的概念,但它们之间由一个有意义的公式联系在一起:

其中

也就是说,两个序列的N点循环卷积是他们的线性卷积以N为周期延拓。

设序列

的长度为N1,序列

的长度为N2,此时,线性卷积结果的序列的点数为

;因此如果循环卷积的点数N小于

那么上述周期性延拓的结果就会产生混叠,从而两种卷积会有不同的结果。

而如果N满足

的条件,就会有

这就意味着在时域不会产生混叠。

因此,我们得出结论:

若通过在序列的末尾填充适当的零值,使得

成为

点序列,并作出这两个序列的

循环卷积,那么循环卷积与线性卷积的结果在

范围内相同。

根据DFT循环卷积性质中的卷积定理

便可通过两种方法求两个序列的循环卷积:

一是直接根据定义计算;二是根据性质先分别求两个序列的N点DFT,并相乘,然后取IDFT以得到循环卷积。

第二种方法看起来要经过若干个步骤,但由于求序列的DFT和IDFT都有快速算法,因此它的效率比第一种方法高得多。

同样,根据线性卷积和循环卷积的关系,可以通过计算循环卷积以求得线性卷积,提高计算序列线性卷积的效率。

1线性卷积的MATLAB设计源程序

本次实训的源程序如下:

functiony=myconv(x1,x2)

x1=input('x1=');

x2=input('x2=');

N1=length(x1);

M=length(x2);

L=N1+M-1;

for(n=1:

L)

y(n)=0;

for(m=1:

M)

k=n-m+1;

if(k>=1&k<=N1)

y(n)=y(n)+x2(m)*x1(k);

end

end

end

y1=conv(x1,x2);

nx1=0:

N1-1;

nx2=0:

M-1;

ny=0:

L-1;

subplot(231);

stem(nx1,x1,'.k');xlabel('n');ylabel('x1(n)');gridon;

title('序列x1')

subplot(232);

stem(nx2,x2,'.k');xlabel('n');ylabel('x2(n)');gridon;

title('序列x2')

subplot(233);

stem(ny,y,'.k');xlabel('n');ylabel('y(n)');gridon;

title('线性卷积')

subplot(234);

stem(y1');xlabel('n');ylabel('y1');gridon;

title('conv直接卷积')

运行程序,输入序列x1和x2

x1=[-1124]

x2=[2.44556]

线性卷积结果:

[-2.4000-1.60003.800017.600025.000036.000032.000024.0000]

运行如下

根据循环卷积流程图设计matlab源代码

functiony=myconv(x1,x2)

x1=input('x1=');

x2=input('x2=');

N=input('N=');

x1=[x1,zeros(1,N-length(x1))];

x2=[x2,zeros(1,N-length(x2))];

V=circlel(x2)

Z=x1*V;

stem(Z');xlabel('n');ylabel('Z');gridon;

title('循环卷积结果Z')

运行程序,输入序列x1,x2

x1=[-123-5]

x2=[67-10412]

循环卷积结果

[10-5542-33-6986]

运行图形如图4.2所示

图4.2循环卷积运行结果

实验小结:

通过本次对离散卷积和循环卷积的实验,我加深了对它们的理解,通过实验,更加验证了理论计算的正确性,为以后的学习奠定了基础。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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