实验一离散时间信号的分析_精品文档Word下载.docx

上传人:b****2 文档编号:14437166 上传时间:2022-10-22 格式:DOCX 页数:19 大小:1.10MB
下载 相关 举报
实验一离散时间信号的分析_精品文档Word下载.docx_第1页
第1页 / 共19页
实验一离散时间信号的分析_精品文档Word下载.docx_第2页
第2页 / 共19页
实验一离散时间信号的分析_精品文档Word下载.docx_第3页
第3页 / 共19页
实验一离散时间信号的分析_精品文档Word下载.docx_第4页
第4页 / 共19页
实验一离散时间信号的分析_精品文档Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验一离散时间信号的分析_精品文档Word下载.docx

《实验一离散时间信号的分析_精品文档Word下载.docx》由会员分享,可在线阅读,更多相关《实验一离散时间信号的分析_精品文档Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

实验一离散时间信号的分析_精品文档Word下载.docx

3.序列的基本运算

l移位y(n)=x(n-m)

l反褶y(n)=x(-n)

l和

l积

l标乘y(n)=mx(n)

l累加

l差分运算

4.离散傅里叶变换的相关概念

l定义

l两个性质

1)

2)当x(n)为实序列时,的幅值在区间内是偶对称函数,相位是奇对称函数。

5.Z变换的相关概念

l定义(双边Z变换)

(单边Z变换)

四、实验内容与步骤

1.离散时间信号(序列)的产生

利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。

1.单位取样序列的产生函数

function[x,n]=impseq(n0,n1,n2)

%产生x(n)=delta(n-n0);

n1<

=n,n0<

=n2;

%[x,n]=impseq(n0,n1,n2)

if((n0<

n1)|(n0>

n2)|(n1>

n2))

error('

参数必须满足n1<

=n0<

=n2'

end

n=[n1:

n2];

%x=[zeros(1,(n0-n1)),1,zeros(1,(n2-n0))];

x=[(n-n0)==0];

2.单位阶跃序列的产生函数

function[x,n]=stepseq(n0,n1,n2)

%产生x(n)=u(n-n0);

%[x,n]=stepseq(n0,n1,n2)

error('

%x=[zeros(1,(n0-n1)),ones(1,(n2-n0+1))];

x=[(n-n0)>

=0];

Matlab产生各种常见序列的程序

n=[-5:

5];

x1=impseq(0,-5,5);

subplot(2,2,1);

stem(n,x1);

title('

单位取样序列'

);

xlabel('

n'

ylabel('

x(n)'

n=[-3:

10];

x2=stepseq(0,-3,10);

subplot(2,2,2);

stem(n,x2);

单位阶跃序列'

n=[-10:

x3=(0.5).^n;

subplot(2,2,3);

stem(n,x3);

实指数序列'

n=[0:

20];

x4=sin(0.3*n);

subplot(2,2,4);

stem(n,x4);

正弦序列'

Matlab产生复指数序列的程序

1:

alpha=-0.1+0.5j;

x=exp(alpha*n);

stem(real(x));

实部'

stem(imag(x));

虚部'

stem(abs(x));

振幅'

stem(n,(180/pi)*angle(x));

相位'

Matlab产生随机离散信号的程序

n=[1:

x=rand(1,10);

figure;

stem(n,x);

随机序列'

grid

2.序列的运算

(1)利用MATLAB语言编程实现信号平滑运算。

程序

r=65;

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-.'

n'

legend('

d[n]'

s[n]'

x[n]'

x1=[00x];

x2=[0x0];

x3=[x00];

y=(x1+x2+x3)/3;

subplot(2,1,2);

plot(m,y(2:

r+1),'

y[n]'

(2)利用MATLAB语言编程实现信号的调制。

Fm=10;

Fc=100;

Fs=500;

k=0:

199;

t=k/Fs;

x=sin(2*pi*Fm*t);

y=x.*cos(2*pi*Fc*t);

X=fft(x,256);

Y=fft(y,256);

plot(x);

t(s)'

x'

原信号'

plot(X);

plot([-128:

127],fftshift(abs(X)));

w'

X(jw)'

原信号频谱'

plot(y);

y'

调制信号'

plot(Y);

127],fftshift(abs(Y)));

Y(jw)'

已调信号频谱'

(3)利用MATLAB语言编程实现信号卷积运算。

序列卷积的产生函数

function[y,ny]=conv_m(x,nx,h,nh)

%信号处理的卷积程序

%[y,ny]=conv_m(x,nx,h,nh)

%y=卷积结果

%ny=y的基底(support)

%x=基底nx上的第一个信号

%nx=x的基底

%h=基底nh上的第二个信号

%nh=h的基底

nyb=nx

(1)+nh

(1);

nye=nx(length(x))+nh(length(h));

ny=[nyb:

nye];

y=conv(x,h);

Matlab实现线性卷积的程序

x=[00.511.50];

nx=0:

4;

h=[11100];

nh=0:

[y,ny]=conv_m(x,nx,h,nh);

stem(nx,x);

序列x'

stem(nh,h);

序列h'

h(n)'

stem(ny,y);

两序列卷积'

);

y(n)'

(4)利用MATLAB语言编程实现信号离散傅立叶的正反变换。

离散傅立叶正变换的产生函数

function[Xk]=dft(xn,N)

N-1];

k=n;

WN=exp(-j*2*pi/N);

nk=n'

*k;

WNnk=WN.^nk;

Xk=xn*WNnk;

离散傅立叶反变换的产生函数

function[Xk]=idft(xn,N)

WNnk=WN.^(-nk);

Xk=xn*WNnk/N;

(5)利用MATLAB语言编程实现信号的圆周移位,圆周卷积,验证DFT的圆周时移、圆周卷积性质和圆周卷积与线性卷积的关系。

functionm=sigmod(n,N);

m=rem(n,N);

m=m+N;

m=rem(m,N);

functiony=cirshift(x,m,N);

iflength(x)>

N

error('

Nmustbegreaterthenlength(x)'

x=[xzeros(1,N-length(x))];

n=sigmod(n-m,N);

y=x(n+1);

Matlab实现圆周移位的程序

M=6;

N=11;

x=15*0.4.^n;

y=cirshift(x,M,N);

原序列波'

stem(n,y);

圆周移位序波形'

圆周卷积

functiony=circonvt(x1,x2,N)

iflength(x1)>

length(x1)isnotgreatthanN'

iflength(x2)>

length(x2)isnotgreaterthanN'

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

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

m=[0:

x2=x2(mod(-m,N)+1);

H=zeros(N,N);

forn=1:

N;

H(n,:

)=cirshift(x2,n-1,N);

y=x1*H'

Matlab实现圆周卷积的程序

x1=[2,4,3];

x2=[4351];

disp('

N=7'

N=7;

y=circonvt(x1,x2,N)

subplot(3,1,1);

stem(x1);

x1(n)'

subplot(3,1,2);

stem(x2);

x2(n)'

subplot(3,1,3);

stem(y);

圆周卷积'

(6)验证一个周期实序列奇偶部分的DFT与此序列本身的DFT之间的关系。

function[x1,x2]=circevod(x)

ifany(imag(x)~=0)

不是实序列0'

N=length(x);

n=0:

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

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1