课程名称:数字信号处理实验
实验项目名称: 实验4
学院: 信息工程学院
专业: 电子信息工程
指导教师: 陈佳义
报告人: 学号: 班级:
实验时间:11.12
实验报告提交时间:11.18
教务处制
实验目的与要求:
一、 实验目的
1) 学习、感受和理解数字序列的离散傅立叶变换(DFT)的圆周共轭对称性质。
2) 学习、感受和理解数字序列的圆周卷积和线性卷积之间的关系。
3) 学习、感受和理解由 DFT 实现线性卷积和线性相关的原理及过程。
二、 数字信号的离散傅立叶变换DFT
1. DFT 圆周共轭对称性
与 DTFT 的共轭对称性类似,序列的DFT 具有圆周共轭对称的性质,对应关系如下:
利用 DFT 圆周共轭对称的性质会减少实序列DFT 的计算量,本实验中有相应的任务进行验证。
2. 圆周卷积与线性卷积的关系
N 点圆周卷积与线性卷积的定义分别如下:
实验过程及内容: 实验 4-1 DFT 的圆周共轭对称性质的应用: 利用 DFT 的圆周共轭对称性,完成下面计算,并且选取两个序列matlab 编程验证计算的正确性。 设 x1(n) 和x2(n) 都是N 点的实数序列,试用一次N 点DFT 运算来计算它们各自的DFT。 完成以下任务: 1) 选取两个序列利用上述方法通过 Matlab 编程实现计算两个序列的DFT; 2) Matlab 编程分别计算两个序列的DFT,与1)得到的结果进行比较; 其中,DFT 计算可以参考实验3 中的matlab 程序,或者可以用matlab 中fft()函数实现。 x=1:5 xpeoridic=repmat(x,[1,3]) n=-5:9 xpeoridicreversed=fliplr(xpeoridic) -fliplr(n) xN_n=xpeoridicreversed(end-5:end-1) figure subplot(311) stem(0:4,x,'.') axis([-10 10 -0.1 6]) title('x(n)') subplot(312) stem(n,xpeoridic,'.') axis([-10 10 -0.1 6]) title('Peoridic sequency from x(n)') subplot(313) stem(-fliplr(n),xpeoridicreversed,'.') axis([-10 10 -0.1 6]) line([-0.1 -.1],[-eps 5]) line([4.1 4.1],[-eps 5]) title('Reversed version of the Peoridic sequency') pause clc x xN_n xepn=(x+xN_n)/2 xopn=(x-xN_n)/2 xepn+xopn X=fft(x) Xe=fft(xepn) Xo=fft(xopn) realpartdifference= Xe-real(X) imaginarypartdiff= Xo-j*imag(X) 实验 4-2 圆周卷积与线性卷积的关系: 在 Matlab 的editor 窗口中建立一个.m 程序文件,将下面的语句拷贝其中,并运行,出现图4-1 所示图形:%%线性卷积与圆周卷积 clc;clear xn=[ 1 1 1];%in x1 hn=[4 1 4 1 0 0 5];%in x2 N1=length(xn); N2=length(hn); N=11;%N number x1=[xn zeros(1,N-N1)]; x2=[hn zeros(1,N-N2)]; cirfun=cconv(x1,x2,N);%matlab 自带函数计算 x2=fliplr(x2); for k=1:N x2=[x2(N) x2(1:N-1) ]; cx12(k)=sum(x1.*x2); end figure(1) stem(0:(N-1),cx12) xlabel('n') ylabel('y(n)') grid on title('序列圆周卷积(自编算法)') figure(2) stem(0:(N-1),cirfun) xlabel('n') ylabel('y(n)') grid on title('序列圆周卷积(函数计算)') lincon=conv(xn,hn); figure(3) stem(0:(N1+N2-2),lincon) xlabel('n') ylabel('y_l(n)') grid on title('序列线性卷积') 完成下面任务: 1) 读懂程序,画出上述程序的程序流程图; 2) 理解程序中 for 循环语句部分的算法原理,说明其功能并图示其算法原理;选作:自行换另外方法实现此for 循环语句功能。 3) 观察图 4-1 结果,对比两种实现圆周卷积方法的结果,并与线性卷积结果对比,说明其中对应关系。 4) 改变参数,包括:两个序列的长度、取值,DFT 点数N,完成下面3 种情况圆周卷积及线性卷积的计算,并 给出相应的结论 a) N N1 N2 1 b) N N1 N2 1 c) N N1 N2 1 5) 自己设计填加一小段程序,实现由线性卷积求圆周卷积(两序列的线性卷积和以 N 为周期延拓后混叠相加序 列的主值序列,即为两序列的N 点圆周卷积和),并验证对应4)中的3 种情况,给出相应的结论。
实验 4-3 由DFT 计算线性卷积 由DFT计算两序列线性卷积的步骤: 1. 给定两序列x1(n), x2(n) 2. 取N N1 N2 1,两序列x1(n), x2(n)分别补0延拓至长度为N 3. 分别作两序列的N点DFT变换: X1(k) DFT[x1(n)]X1(k) DFT[x1(n)], X 2(k) DFT[x2(n)]X 2(k) DFT[x2(n)] 其中DFT运算由matlab中函数fft()完成。如:Xk1=fft(x1); 4. Y(k) X1(k) X 2(k) 5. y(n) IDFT[Y(k)],其中IDFT运算由matlab中函数ifft()完成。如:yn=ifft(Yk); 6. ( ) ( ),0 1 2 1 l y n y n n N N 下面是由DFT计算两序列线性卷积,matlab程序中主要计算程序: Xk1=fft(x1); Xk2=fft(x2); Yk=Xk1.*Xk2; yn=ifft(Yk); 完成下面任务: 1) 补充完整上述 matlab 程序,实现由DFT 计算序列的圆周卷积及线性卷积,并画出两序列及序列的圆周卷积、 线性卷积结果,其中序列及各参数自选; 2) 用 matlab 中conv 函数计算上述两序列的线性卷积,并画图表示得到的结果,与1)中结果对比。 x(n)⑤y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,5);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1);%画图 stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,6);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); 实验 4-4 由DFT 计算线性相关 由DFT计算两序列线性相关的步骤: 1. 给定两序列x(n), y(n) 2. 取N N1 N2 1,两序列x(n), y(n)补0分别延拓至长度为N 3. 分别作两序列的N点DFT变换 4. ( ) ( ) * ( ) xy R k X k Y k 5. r xy (m) IDFT[Y(k)]; 6. 确定 (0) xy r 位置,得到( ) xy r n 参考实验 4-3,完成下面任务: 1) 参考实验 4-3 中的程序,根据上述计算步骤完成由DFT 计算两序列线性相关的matlab 程序,实现由DFT 计 算序列的线性相关,并画出两序列及线性相关结果,其中序列及各参数自选; 2) 计算线性相关通常还有另外两种方法:一、直接计算,二、利用与卷积的关系计算,自行选择其中一种方法 matlab 编程来计算上述两序列的线性卷积,并画图表示得到的结果,与1)中结果对比。 •函数(3)x(n)⑨y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,9);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); •函数(4)x(n)⑩y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,10);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,10);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); | ||
实验结论: |
指导教师批阅意见: 成绩评定: 指导教师签字: 年 月 日 |
备注: |
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。下载本文