实验报告数字信号处理实验 1.docx
《实验报告数字信号处理实验 1.docx》由会员分享,可在线阅读,更多相关《实验报告数字信号处理实验 1.docx(12页珍藏版)》请在冰豆网上搜索。
![实验报告数字信号处理实验 1.docx](https://file1.bdocx.com/fileroot1/2022-11/29/e9c6b83c-2987-484e-a123-f4105608e373/e9c6b83c-2987-484e-a123-f4105608e3731.gif)
实验报告数字信号处理实验1
大连理工大学
本科实验报告
实验名称:
学院(系):
信息与通信学院
专业:
电子信息工程
班级:
电子1301
学号:
201383022
学生姓名:
同组人:
年月日
实验项目列表
序号
实验项目名称
学时
成绩
指导教师
预习
操作
结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
总计
学分:
大连理工大学实验报告
学院(系):
信息与通信工程专业:
电子信息工程班级:
电子1103
姓名:
于梦月学号:
201158021组:
___
实验时间:
实验室:
实验台:
指导教师签字:
成绩:
实验一线性卷积与圆周卷积
1、实验目的和要求
见预习报告
2、实验原理和内容
见预习报告
3、主要仪器设备
Matlab软件
四、实验步骤与操作方法
1.给出序列x=[3,11,7,0,-1,4,2],h=[2,3,0,-5,2,1];用两种方法求两者的线性卷积y,对比结果。
a)直接调用matlab内部函数conv来计算。
解:
clear
clc
nx=0:
1:
6;
nh=0:
1:
5;
ny=0:
11;
x=[3,11,7,0,-1,4,2];
h=[2,3,0,-5,2,1];
y=conv(x,h);
结果:
y=
631476-51-54118-22-382
b)根据线性卷积的步骤计算。
2.将函数conv稍加扩展为函数conv_m,它可以对任意基底的序列求卷积。
格式如下:
function[y,ny]=conv_m(x,nx,h,nh)
%信号处理的改进卷积程序
%[y,ny]=conv_m(x,nx,h,nh)
%[y,ny]=卷积结果
%[x,nx]=第一个信号
%[h,nh]=第二个信号
解:
function[y,ny]=conv_m(x,nx,h,nh)
ny1=nx
(1)+nh
(1);
ny2=nx(length(x))+nh(length(h));
ny=[ny1:
ny2];
y=conv(x,h)
end
3.创建函数circonv,来实现序列的圆周卷积,格式如下:
functiony=circonv(x1,x2,N)
解:
functionyc=circonv(x1,x2,N);
iflength(x1)>N
error('Nshouldhigherthanorequaltothelengthofx1!
');
end
iflength(x2)>N
error('Nshouldhigherthanorequaltothelengthofx2!
');
end
x1=[x1,zeros(1,N-length(x1))];
x2=[x2,zeros(1,N-length(x2))];
n=[0:
N-1];
x2=x2(mod(-n,N)+1);
H=zeros(N,N);
forn=1:
1:
N
H(n,:
)=cirshifted(x2,n-1,N);
end
yc=x1*H';
其中cirshifted函数如下:
functiony=cirshifted(x,m,N)
iflength(x)>N
error('x的长度必须小于N');
end
x=[x,zeros(1,N-length(x))];
n=[0:
1:
N-1];
y=x(mod(n-m,N)+1);
end
4.求序列
和
,(
)的线性卷积
解:
Clear
clc
nx=-5:
50;
nh=-5:
50;
x=uct(nx)-uct(nx-10);
h=0.8.^nh.*uct(nh);
[y,ny]=conv_m(x,nx,h,nh)
subplot(311)
stem(nx,x,'fill'),gridon
xlabel('n'),title('x(n)')
subplot(312)
stem(nh,h,'fill'),gridon
xlabel('n'),title('h(n)')
subplot(313)
stem(ny,y,'fill'),gridon
xlabel('n'),title('y(n)=x(n)*h(n)'
结果:
a)N个点的圆周卷积
b)3N/2个点的圆周卷积
c)2N-1个点的圆周卷积
解:
clear
clc
N=56;
nx=-5:
50;
nh=-5:
50;
x=uct(nx)-uct(nx-10);
h=0.8.^nh.*uct(nh);
ycn=circonv(x,h,N);
ny2=[0:
1:
length(ycn)-1];
subplot(311)
stem(ny2,ycn),gridon
xlabel('n'),title('N点圆周卷积')
ycn=circonv(x,h,3*N/2);
ny2=[0:
1:
length(ycn)-1];
subplot(312)
stem(ny2,ycn),gridon
xlabel('n'),title('3N/2点圆周卷积')
ycn=circonv(x,h,2*N-1);
ny2=[0:
1:
length(ycn)-1];
subplot(313)
stem(ny2,ycn),gridon
xlabel('n'),title('2N-1点圆周卷积')
结果:
d)用FFT变换实现其圆周卷积
解:
clear
clc
nx=-5:
50;
nh=-5:
50;
x=uct(nx)-uct(nx-10);
h=0.8.^nh.*uct(nh);
y1=fft(x)
y2=fft(h)
y=ifft(y1.*y2)
ny2=[0:
1:
length(y)-1];
stem(ny2,y),gridon
xlabel('n'),title('圆周卷积')
结果:
六、实验结果与分析
七、讨论、建议、质疑
注:
有预习报告的,部分内容(如:
目的和要求、原理等)可体现在预习报告里。
大连理工大学实验预习报告
学院(系):
信息与通信工程专业:
电子信息工程班级:
电子1103
姓名:
于梦月学号:
201158021组:
___
实验时间:
实验室:
实验台:
指导教师签字:
成绩:
实验一线性卷积与圆周卷积
1、实验目的和要求
理解离散序列的线性卷积与圆周卷积的原理,比较其相同和不同点,掌握线性卷积与圆周卷积的计算步骤和计算方法,能熟练使用Matlab的相关命令。
2、实验原理和内容
1.线形卷积:
设两序列为x(n)和h(n),则x(n)和h(n)的线形卷积和定义为
(1)
卷积和的运算在图形表示上可分为四步:
翻褶,移位,相乘,相加
(1)翻褶:
先在哑变量坐标m上作出x(m)和h(m),将h(m)以m=0的垂直轴为对称轴翻褶成h(-m)。
(2)移位:
将h(-m)移位,即得h(n-m)。
当n为正整数时,右移n位。
当为负整数时,左移n位。
(3)相乘:
再将h(n-m)和x(m)的相同m值的对应点值相乘。
(4)相加:
把以上所有对应点的乘积叠加起来,即得y(n)值。
注意:
对于得到结果的仍然是一个序列,若x(n)的长度是N,h(n)的长度是M,则y(n)的长度是N+M-1。
2.圆周卷积:
设两序列为x(n)和h(n),则x(n)和h(n)的圆周卷积和定义为
(2)
圆周卷积过程:
1)补零:
若x(n)的长度是N,h(n)的长度是M,取
,对序列补零至H点。
2)周期延拓:
先在哑变量坐标m上作出x(m)和h(m),将h(m)周期延拓。
3)翻褶,取主值序列:
对h(m)以m=0的垂直轴为对称轴翻褶成h(-m),然后取主值序列。
4)圆周移位:
对得到的序列进行圆周移位。
5)相乘相加:
与x(m)对应项相乘,并累加,得到y(n)
3.线形卷积与圆周卷积的关系:
为何要探讨线形卷积与圆周卷积的关系?
时域圆周卷积在频域上相当于两序列的DFT的相乘,因而可以采用DFT的快速算法——快速傅立叶变换(FFT)算法,它于线性卷积相比,计算速度可以大大加快。
但是,一般实际问题(例如,信号通过线性移不变系统)都是线性卷积运算。
4.结论:
设两序列为x(n)和h(n),长度分别为N、M;则其线形卷积的长度为N+M-1,而圆周卷积的长度为K=max(N,M)。
实际上还可以计算K+1、K+2、。
。
。
、N+M-1、N+M、N+M+1….等点的圆周卷积,只有L≥N1+N2-1,则L点圆周卷积和线性卷积相等。
3、实验步骤
求序列x(n)=u(n)-u(n-10)和h(n)=
u(n),(n=-5:
50,N=56)的
1、线性卷积
2、N个点的圆周卷积
3、3N/2个点的圆周卷积
4、2N-1个点的圆周卷积
5、用FFT变换实现其圆周卷积
四、实验数据记录表格