预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验一matlab实现时域信号分解 一、实验原理 任何一个实数序列都可以分解成一个偶对称序列xe[n]和一个奇对称序列xo[n]之和,即 X[n]=xe[n]+xo[n]; 其中xe[n]和xo[n]都可以从原序列通过以下运算得到: xe[n]=(xn+x-n)/2 xo[n]=(xn-x-n)/2 xe[n]和xo[n]分别称为x[n]的偶对称分量和奇对称分量。 二、实验目的 熟悉matlab在简单时域信号处理中的应用。 三、实验题目 设单位阶跃序列 U[n]=0,-10≤n<01,0≤n≤10 将其分解为偶对称分量和奇分量。 四、程序代码 %Matlab编写自己的函数evenodd函数用于将偶序列和奇序列两部分,代码如下: function[xe,xo,m]=evenodd(x,n) %将实序列信号分解成奇函数部分和偶函数部分 %调用方式:[xe,xo,m]=evenodd(x,n) % ifany(imag(x)~=0)%判断是否为实信号序列 error('xisnotarealsequence') end m=-fliplr(n);%将序号翻转 m1=min([m,n]);m2=max([m,n]);m=m1:m2; %创建新信号序列 nm=n(1)-m(1);n1=1:length(n); x1=zeros(1,length(m));%创建空序列 x1(n1+nm)=x;x=x1; xe=0.5*(x+fliplr(x));%求得偶序列信号 xo=0.5*(x-fliplr(x));%求得奇序列信号 %信号分解的具体实现 n0=0; n1=-10; n2=10;n=[n1:n2];%序号序列 x=[(n-n0)>=0];%阶跃信号值序列 subplot(2,2,1) stem(n,x);%绘出阶跃信号 xlabel('n');ylabel('x[n]');title('阶跃序列'); gridon; [xeven,xodd,m]=evenodd(x,n); %进行奇偶分解得到偶序列xeven和奇序列xodd subplot(2,2,2) stem(m,xeven);%绘制偶序列信号 xlabel('m');ylabel('xeven(n)');title('偶函数部分'); gridon; subplot(2,2,3) stem(m,xodd);%绘制奇序列图 xlabel('m');ylabel('xodd(n)');title('奇函数部分'); gridon 五、运行结果 图1.1阶跃序列 图1.2分解成的偶函数部分 图1.3分解成的奇函数部分 六、实验结论 运行结果如图1.1-1.3所示。可见,程序确实能够将阶跃信号分解为以y轴对称的偶函数和以原点对称的奇函数,验证了前面的分析结果。 实验二matlab实现FFT应用 一、实验原理 FFT快速算法,matlabfft(x,N)实现应用。 二、实验目的 熟悉matlab在数字信号处理中的应用,并掌握基二FFT算法的实现。 三、实验题目 考虑信号x[n]=cos(2*pi*0.24*n)+cos(2*pi*0.26*n),0≤n≤10。 ①取x[n]为输入信号时,求x[n]的快速Fourier变换; ②将①的x[n]以补零方式使x[n]加长到0≤n≤100,求Fourier变换; ③取x[n],但0≤n≤100,求Fourier变换。分析高密度频谱和搞分辨率频谱之间的差异。 四、程序代码 %FFT应用 N1=10;dt=1; N1=10;dt=1;%采样点数和采样间隔 n1=0:N1-1;t1=n1*dt;%时间序列 x=cos(2*pi*0.24*t1)+cos(2*pi*0.26*t1);%原始信号 subplot(2,3,1);stem(t1,x);holdon; plot([010],[00]);%绘制横轴 title('信号x[n],n=0-9');xlabel('时间/s') Y1=fft(x);magY1=abs(Y1); f1=n1/(N1*dt); subplot(2,3,4);plot(f1(1:N1/2),magY1(1:N1/2)*2/N1); %NYquist频率前的振幅 xlim([00.5]); title('10个数据点信号的FFT'); xlabel('频率/Hz'); N3=100;dt=1;%采用10个数据点和90个零点的情况 n3=0:N3-1;t3=n3*dt; x=cos(2*0.24*pi*t1)+cos(2*0.26*pi*t1); y3=[x(1:10)zeros(1,90)]; subplot(2,3,2);stem(t3,y3); title('含有90个零点的100个数据