大连理工大学数字信号处理实验一实验报告

上传人:第*** 文档编号:35054845 上传时间:2018-03-08 格式:DOC 页数:6 大小:651KB
返回 下载 相关 举报
大连理工大学数字信号处理实验一实验报告_第1页
第1页 / 共6页
大连理工大学数字信号处理实验一实验报告_第2页
第2页 / 共6页
大连理工大学数字信号处理实验一实验报告_第3页
第3页 / 共6页
大连理工大学数字信号处理实验一实验报告_第4页
第4页 / 共6页
大连理工大学数字信号处理实验一实验报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《大连理工大学数字信号处理实验一实验报告》由会员分享,可在线阅读,更多相关《大连理工大学数字信号处理实验一实验报告(6页珍藏版)》请在金锄头文库上搜索。

1、大连理工大学实验报告 学院(系): 信息与通信工程学院专业:电子信息工程 班级: 姓 名: 学号: 组: 实验时间: 实验室: 实验台: 指导教师签字: 成绩: 实验一 线性卷积和圆周卷积 1、实验目的和要求 (与预习报告相同,省略) 2、实验原理和内容 (与预习报告相同,省略) 三、实验程序和结果 1、给出序列 x=3,11,7,0,-1,1,2,h=2,3,0,-5,2,1,用两种方法求两者 的线性卷积 y,对比结果。 1.1、直接调用 matlab 内部函数 conv 函数,程序为: x=3,11,7,0,-1,1,2; h=2,3,0,-5,2,1; N=length(x); %求 x

2、序列长度 M=length(h); %求 h 序列长度 L=N+M-1; %y序列的长度 y=conv(x,h); %调用 conv 函数 nx=0:N-1;nh=0:M-1;ny=0:L-1; %各序列向量显示范围 subplot(311);stem(nx,x,*r); %画出序列波形 xlabel(n);ylabel(x(n);grid on; subplot(312);stem(nh,h,*r); xlabel(n);ylabel(h(n);grid on;subplot(313);stem(ny,y,*r); xlabel(n);ylabel(y(n);grid on; y=conv(

3、x,h); 程序运行结果为: y = 6 31 47 6 -51 -11 32 18 -7 -9 5 2 1.2、根据线性卷积步骤计算,程序为: x=3,11,7,0,-1,1,2; h=2,3,0,-5,2,1; N=length(x); M=length(h); L=N+M-1; ny=0:L-1; y=zeros(1,L); %先将 y序列置 0 for n=1:1:L %外重循环,依次得到 y(n)for m=1:1:N %內部循环,叠加求和k=n-m+1; %线性移位得到对应 h 序号 if (k=1) end if length(x2)N %x2的长度必须小于 Nerror(N m

4、ust be bigger than the length); end x1=x1,zeros(1,N-length(x1); %将 x1补零补到长度 N x2=x2,zeros(1,N-length(x2); %将 x2补零补到长度 N y=zeros(1,N); %先将 y序列置 0 for n=1:1:N %外重循环,依次得到 y(n)for m=1:1:N %内重循环,叠加求和k=mod(n-m,N)+1; %圆周移位得到对应 h 序号y(n)=y(n)+x1(m)*x2(k); %叠加求和得到 y(n)end end 3.2采用 FFT 变换法 function y=circonv2

5、(x1,x2,N) if length(x1)N %x1的长度必须小于 N error(N must be bigger than the length); end if length(x2)N %x2的长度必须小于 Nerror(N must be bigger than the length); end X1k=fft(x1,N); %对 x1进行 N 点的 FFT 变换 X2k=fft(x2,N); %对 x2进行 N 点的 FFT 变换 Yk=X1k.*X2k; y=ifft(Yk); %求反 FFT 变换求得 y end 4.求序列 和 , ) 10 ( ) ( ) ( n u n

6、u n x ) ( 9 . 0 ) ( n u n h n ) 56 , 50 : 5 ( N n a:N 个点的圆周卷积 b:3N/2 个点的圆周卷积 c:2N-1 个点的圆周卷积 d:用 FFT 变换实现其圆周卷积 程序为: nx=0:10; %取x序列的取值范围0-10 nh=0:50; %取y序列的取值范围0-50 x=uDT(nx)-uDT(nx-10); %调用单位阶跃函数 h=0.9.nh.*uDT(nh); N=56; K1=N; %圆周卷积点数 y1=circonv(x,h,K1); %调用circonv函数实现N点的圆周卷积 ny1=0:K1-1; %y序列显示的范围 su

7、bplot(211);stem(ny1,y1,*r); xlabel(n);ylabel(y(n);grid on; axis(0,115,0,8); %序列图形坐标显示范围 title(N点圆周卷 积)K2=3*N/2; y2=circonv(x,h,K2); %3N/2点的圆周卷积 ny2=0:K2-1; subplot(212);stem(ny2,y2,*r); xlabel(n);ylabel(y(n);grid on; axis(0,115,0,8); function y=uDT(x) y=x=0 endtitle(3N/2点圆周卷积)figure; K3=2*N-1; y3=ci

8、rconv(x,h,K3); %2N-1点的圆周卷积 ny3=0:K3-1; subplot(211);stem(ny3,y3,*r); xlabel(n);ylabel(y(n);grid on; axis(0,115,0,8); title(2N-1点圆 周卷积)K4=2*N-1; y4=circonv2(x,h,K4); %调用circonv2函数运用FFT实现2N-1点 ny4=0:K4-1; 的圆周卷积 subplot(212);stem(ny4,y4,*r); xlabel(n);ylabel(y(n);grid on; axis(0,115,0,8); title(FFT的2N-

9、1 点圆周卷积)figure; y5,ny5=conv_m(x,nx,h,nh); %线性卷积 stem(ny5,y5,*r); xlabel(n);ylabel(y(n);grid on; axis(0,70,0,8); title(线性卷积) N 点圆周卷积3N/2 点圆周卷积 2N-1 点圆周卷积 程序结果为:FFT 的 2N-1 点 圆周卷积 线性卷积 4、实验体会 本实验主要研究了序列的线性卷积和圆周卷积的 MATLAB 程序实现。 线性卷积:1、若序列从 0点起始,可直接调用卷积函数 conv;若序列不是从 0点起始,可用 ny1=nx(1)+nh(1);ny2=nx(length

10、(x)+nh(length(h);ny=ny1:ny2;三 句程序改变输出序列的显示范围,然后再调用 conv 函数。 2、由线性卷积定义求卷积。线性卷积是两序列经移位对应项相乘叠加得到,而 x(m)对应项应是 h(n-m+1),其中 n是输出序列号,对 m 以及 n双重循环即可得 到 y(n)序列。 圆周卷积:1、函数库里没有圆周卷积函数,故采用定义法。圆周卷积是两序列 经圆周移位对应项相乘叠加得到,此时 x(m)对应项应是 h(mod(n-m,N)+1)即 n-m 对 N 取模加 1,N 为圆周卷积点数,对 m 以及 n双重循环即可得到 y(n)序列。 2、采用快速傅里叶变换 FFT 求圆周卷积。对 x和 h序列求 FFT,相乘得到 y 的 FFT 变换,在对其求反 FFT 变化即可得到 y(n)序列。 说明:在第四题当中对 x和 h求圆周卷积时,因负半周两序列均为 0,故均默 认序列从 0起始,这样不会改变结果(只是结果的左右平移) 。 由实验得出结论:当圆周卷积长度大于等于线性卷积长度时即满足 N=L=N1+N2-1,圆周卷积和线性卷积结果相等。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号