- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB实验报告北京邮电大学讲述
Matlab实验报告
学院:信息与通信工程学院
班级:201321113
学号:2013210381
班内序号:18
姓名:石雪原
实验题目1.实现重叠相加和重叠保留算法
实验原理
重叠相加法和重叠保留法的实质都是以逐段地方式通过循环卷积来完成线性卷积的计算。将输入序列x(n)进行分段,每段长为N,且N≥M(M为有限长因果序列h(n)的长度),x(n)逐段与h(n)进行循环卷积,在重叠保留法中需在x(n)序列首部加入长度为M-1的0序列。
在算法中,在获得N个点的输入后,进行N+M-1点循环卷积计算,之后输出N个点。通过for循环逐段进行循环卷积,使用FFT和IFFT计算两个有限长序列的N点循环卷积结果。
源代码和流程图
重叠相加法代码
function [Y]=overpl(x,h,N)
Lx=length(x); %序列长度
M=length(h); %h(n)长度
x=[x,zeros(1,N-1)];
t=zeros(1,M-1);
Y=zeros(1,Lx+M-1);
a=floor(Lx/N);
for k=0:a
A=x(k*N+1:k*N+N);
y1=fft(A,Lx+M-1); %利用fft进行运算
y2=fft(h,Lx+M-1);
y3=y1.*y2;
q=ifft(y3,Lx+M-1);
Y(k*N+1:k*N+M-1)=q(1:M-1)+t(1:M-1);
Y(k*N+M:k*N+N)=q(M:N);
t(1:M-1)=q(N+1:N+M-1);
end
Y(1:Lx+M-1);
对应流程图
图一
图一
图二
图一:每段利用fft和ifft实现循环卷积
图二:对x(n)逐段进行循环卷积然后相加得输出线性卷积结果y(n)
重叠保留法代码
function[Y]=overlpsav(x,h,N)
Lx=length(x);
M=length(h);
M1=M -1;
L=N-M1;
h=[h,zeros(1,N-M)];
x=[zeros(1,M1),x,zeros(1,N-1)];
a=floor ((Lx+M1-1)/(L))+1;
Y=zeros(1,N);
for k=0:a-1
xk=x(k*L+1:k*L+N);
b=fft(xk,N);
C=fft(h,N);
Z=b.*C;
Y(k+1,:)=ifft(Z,N);
end
Y=Y(:,M:N);
Y=(Y(:))
对应流程图
把x前面加上(M-1)个零
将h延长至循环长度N
各段搭接长度M1,有效数据长度L
输入数据x长度及脉冲响应长度
Y中各行均去掉前M-1个样本,转置后构成新的Y
各段进行卷积
把K+1×N阶输出矩阵Y初始化
装成单列向量再转置成行向量输出
实验结果
重叠相加法
x=[1,2,3] h=[1,2,3] N=4
重叠保留法
x=[1,2,3,4,5,6,7,8,9,10] h=[1,0,-1] N=4
结果分析(有关运算量的定量分析结果)
有限长因果序列x(n)h(n)的长度分别为N和M,直接计算线性卷积y(n),y(n)可视为N个序列的叠加结果,序列长度为M,所以每生成一个序列需完成M次乘法,共需完成MN次乘法运算。这N个序列依次向右移动一位故需(N-1)(M-1)次加法运算。
按照FFT和IFFT计算线性卷积时,设L=N=M-1,整个运算过程包含了2个FFT、一个IFFT和L此乘法运算,所以,按基2频域抽选算法实现FFT或IFFT,共需完成1.5L次乘法和加法运算。
讨论总结
N越大快算法的运算量越小,即实现重叠相加法和重叠保留法的运算量越小。
MATLAB软件使用方法和语言不熟悉,通过查阅书籍网络解决。
实验题目2:周期序列的谱分析
实验目的:利用 DFT分析模拟信号之频谱。
试验内容:
1、设定采样周期 T并说明原因
根据奈奎斯特取样条件,fs=2f=2*8=16Hz,所以取 fs=20Hz,T=1/f=0.05s。
2、若令,确定该序列之周期 N并说明原因
因为 x(n)=cos(0.8 πn), 2π/0.8π=2.5所以周期 N=5.
3、绘制 10个周期内 x(n)的取值情况
T = 1/20; t = 0:T:5-T; N = 5;
figure(1);
xn = cos(
文档评论(0)