视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数字信号处理 实验4
2025-09-25 21:41:27 责编:小OO
文档
深 圳 大 学 实 验 报 告

      课程名称:数字信号处理实验

      实验项目名称:              实验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);

 
 
 
深圳大学学生实验报告用纸

实验结论:
指导教师批阅意见:

成绩评定:

                                                 指导教师签字:

                                                    年    月    日

备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

    2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。下载本文

显示全文
专题