FFT快速卷积课程设计报告
- 格式:doc
- 大小:246.33 KB
- 文档页数:16
快速傅立叶变换〔FFT〕算法试验一.试验目的1.加深对DFT 算法原理和根本性质的理解;2.生疏FFT 算法原理和FFT 子程序的应用;3.学习用FFT 对连续信号和时域信号进展谱分析的方法,了解可能消灭的分析误差及其缘由,以便在实际中正确应用FFT。
二.试验设备计算机,CCS 3.1 版软件,E300 试验箱,DSP 仿真器,导线三.根本原理1.离散傅立叶变换DFT 的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。
2.FFT 是DFT 的一种快速算法,将DFT 的N2 步运算削减为〔N/2〕logN 步,极大2的提高了运算的速度。
3.旋转因子的变化规律。
4.蝶形运算规律。
5.基2FFT 算法。
四.试验步骤1.E300 底板的开关SW4 的第1 位置ON,其余置OFF。
其余开关不用具体设置。
2.E300 板子上的SW7 开关的第1 位置OFF,其余位置ON3.阅读本试验所供给的样例子程序;4.运行CCS 软件,对样例程序进展跟踪,分析结果;记录必要的参数。
5.填写试验报告。
6.供给样例程序试验操作说明A.试验前预备用导线连接“Signal expansion Unit”中2 号孔接口“SIN”和“A/D 单元”的2 号孔接口“AD_IN0”。
〔试验承受的是外部的AD模块〕B.试验1.正确完成计算机、DSP 仿真器和试验箱的连接后,系统上电。
2.启动CCS3.1,Project/Open 翻开“algorithm\01_fft”子名目下“fft.pjt”工程文件;双击“fft.pjt”及“Source”可查看各源程序;加载“Debug\fft.out”;3.单击“Debug\Go main”进入到主程序,在主程序“flag=0;”处设置断点;4.单击“Debug \ Run”运行程序,或按F5 运行程序;程序将运行至断点处停顿;5.用View / Graph / Time/Frequency 翻开一个图形观看窗口;设置该观看图形窗口变量及参数;承受双踪观看在启始地址分别为px 和pz,长度为128,数值类型为16 位整型,p x:存放经A/D 转换后的输入信号;p z:对该信号进展FFT 变换的结果。
fft课程设计一、教学目标本课程的教学目标是让学生掌握快速傅里叶变换(FFT)的基本原理和应用方法。
具体包括以下三个方面:1.知识目标:学生需要了解FFT的基本概念、原理和算法,理解FFT在信号处理、图像处理等领域的应用。
2.技能目标:学生能够运用FFT对实际问题进行分析和解决,具备使用FFT进行数据处理和分析的能力。
3.情感态度价值观目标:培养学生对科学研究的兴趣和热情,使学生认识到FFT在现代科技发展中的重要性,培养学生的创新意识和团队合作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.FFT的基本概念:介绍FFT的定义、特点和应用领域,使学生了解FFT在信号处理、图像处理等领域的基本作用。
2.FFT的原理:讲解FFT的基本算法,包括DFT、FFT的计算过程,让学生理解FFT的实现原理。
3.FFT的应用:通过具体案例分析,使学生掌握FFT在信号处理、图像处理等领域的应用方法。
4.FFT的优化:介绍FFT的算法优化方法,让学生了解如何提高FFT的计算效率。
三、教学方法为了实现本课程的教学目标,将采用以下几种教学方法:1.讲授法:通过讲解FFT的基本概念、原理和应用,使学生掌握FFT的基本知识。
2.案例分析法:通过分析具体案例,让学生了解FFT在实际问题中的应用方法。
3.实验法:安排实验课程,让学生动手实践,加深对FFT的理解和运用能力。
4.小组讨论法:学生进行小组讨论,培养学生的团队合作精神和创新能力。
四、教学资源为了支持本课程的教学内容和教学方法,将准备以下教学资源:1.教材:选择合适的教材,为学生提供系统的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作PPT、视频等多媒体资料,增强课堂教学的趣味性和生动性。
4.实验设备:准备计算机、信号发生器等实验设备,为学生提供实践操作的机会。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解能力。
dsp fft 课程设计一、课程目标知识目标:1. 让学生理解DSP(数字信号处理)的基本原理,特别是FFT(快速傅里叶变换)的基础知识。
2. 掌握FFT算法的数学推导和实现步骤,能够运用FFT对信号进行处理。
3. 了解FFT在不同领域中的应用,如通信、语音处理等。
技能目标:1. 培养学生运用编程工具(如MATLAB、C语言等)实现FFT算法的能力。
2. 能够分析和解决实际信号处理问题,运用FFT对信号进行分析和综合。
3. 培养学生的团队协作能力,通过小组讨论和项目实践,提高问题解决能力。
情感态度价值观目标:1. 激发学生对数字信号处理领域的兴趣,培养主动学习和探究的精神。
2. 培养学生严谨的科学态度,强调理论与实践相结合的重要性。
3. 增强学生的国家意识,了解我国在数字信号处理领域的发展现状和前景。
分析课程性质、学生特点和教学要求,本课程目标具体、可衡量,旨在使学生掌握FFT的基本原理和实际应用,培养具备实际操作能力和创新精神的人才。
通过本课程的学习,学生将能够运用所学知识解决实际问题,为后续相关课程和实际工作打下坚实基础。
二、教学内容1. 数字信号处理基础:包括信号的分类、采样与量化理论,引导学生了解数字信号处理的基本概念。
- 教材章节:第一章 数字信号处理基础2. 傅里叶变换理论:讲解傅里叶变换的定义、性质及其在信号处理中的应用。
- 教材章节:第二章 傅里叶变换3. 快速傅里叶变换(FFT)算法:详细介绍FFT的数学推导、算法步骤及其优化方法。
- 教材章节:第三章 快速傅里叶变换4. FFT算法实现:通过编程实践,让学生掌握FFT算法的实现过程。
- 教材章节:第四章 数字信号处理编程实践5. FFT应用案例分析:分析FFT在不同领域中的应用,如语音处理、图像处理等。
- 教材章节:第五章 数字信号处理应用6. 项目实践:分组进行项目实践,让学生将所学知识应用于解决实际问题,提高综合运用能力。
fft实验分析实验报告FFT实验分析实验报告一、引言傅里叶变换(Fourier Transform)是一种重要的信号分析工具,它能够将一个信号分解成不同频率的成分。
快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效的计算傅里叶变换的算法。
本实验旨在通过实际操作,探究FFT在信号分析中的应用。
二、实验设备与方法1. 实验设备:本实验使用的设备包括示波器、信号发生器和计算机。
2. 实验方法:(1)将信号发生器的输出接入示波器的输入端。
(2)调节信号发生器的参数,如频率、振幅等,产生不同的信号。
(3)通过示波器观察信号的波形,并记录相关数据。
(4)将示波器与计算机通过USB接口连接,将示波器上的数据传输到计算机上。
(5)使用计算机上的软件进行FFT分析,得到信号的频谱信息。
三、实验结果与分析1. 实验一:正弦波信号的FFT分析(1)设置信号发生器的频率为1000Hz,振幅为5V,产生一段正弦波信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验结果显示,正弦波信号的频谱图呈现出单个峰值,且峰值位于1000Hz处。
这说明FFT能够准确地分析出信号的频率成分,并将其可视化展示。
2. 实验二:方波信号的FFT分析(1)设置信号发生器的频率为500Hz,振幅为5V,产生一段方波信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验结果显示,方波信号的频谱图呈现出多个峰值,且峰值位于500Hz的倍数处。
这说明方波信号由多个频率成分叠加而成,FFT能够将其分解出来,并显示出各个频率成分的强度。
3. 实验三:复杂信号的FFT分析(1)设置信号发生器的频率为100Hz和200Hz,振幅分别为3V和5V,产生一段复杂信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
数字信号处理_快速傅里叶变换FFT实验报告快速傅里叶变换(FFT)实验报告1. 引言数字信号处理是一门研究如何对数字信号进行处理、分析和提取信息的学科。
傅里叶变换是数字信号处理中常用的一种方法,可以将信号从时域转换到频域。
而快速傅里叶变换(FFT)是一种高效的计算傅里叶变换的算法,广泛应用于信号处理、图象处理、通信等领域。
2. 实验目的本实验旨在通过编写程序实现快速傅里叶变换算法,并对不同信号进行频谱分析。
3. 实验原理快速傅里叶变换是一种基于分治策略的算法,通过将一个N点离散傅里叶变换(DFT)分解为多个较小规模的DFT,从而实现高效的计算。
具体步骤如下: - 如果N=1,直接计算DFT;- 如果N>1,将输入序列分为偶数和奇数两部份,分别计算两部份的DFT;- 将两部份的DFT合并为整体的DFT。
4. 实验步骤此处以C语言为例,给出实验的具体步骤:(1) 定义输入信号数组和输出频谱数组;(2) 实现快速傅里叶变换算法的函数,输入参数为输入信号数组和输出频谱数组;(3) 在主函数中调用快速傅里叶变换函数,得到输出频谱数组;(4) 对输出频谱数组进行可视化处理,如绘制频谱图。
5. 实验结果与分析为了验证快速傅里叶变换算法的正确性和有效性,我们设计了以下实验:(1) 生成一个正弦信号,频率为100Hz,采样频率为1000Hz,时长为1秒;(2) 对生成的正弦信号进行快速傅里叶变换,并绘制频谱图;(3) 生成一个方波信号,频率为200Hz,采样频率为1000Hz,时长为1秒;(4) 对生成的方波信号进行快速傅里叶变换,并绘制频谱图。
实验结果显示,对于正弦信号,频谱图中存在一个峰值,位于100Hz处,且幅度较大;对于方波信号,频谱图中存在多个峰值,分别位于200Hz的奇数倍处,且幅度较小。
这与我们的预期相符,说明快速傅里叶变换算法能够正确地提取信号的频谱信息。
6. 实验总结通过本次实验,我们成功实现了快速傅里叶变换算法,并对不同信号进行了频谱分析。
数字信号处理实验报告第一次实验:快速傅立叶变换(FFT)及其应用王宇阳04011345 一.实验目的:(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
(2)应用FFT对典型信号进行频谱分析。
(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
(4)应用FFT实现序列的线性卷积和相关。
二.实验原理:(1)混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。
(2)泄露:根据理论分析,一个时间的信号其频带宽度为无限,一个时间无限的信号其频带宽度则为有限。
因此对一个时间有限的信号,应用DFT进行分析,频谱混叠难以避免。
对一个时间无限的信号虽然频带有限,但在实际运算中,时间总是取有限值,在将信号截断的过程中,出现了分散的扩展谱线的现象,称之为频谱泄露或功率泄露。
(3)栅栏效应:DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就在一定意义上看,用DFT来观察频谱就好象通过一个栅栏来观看一个景象一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点和谷点被“尖桩的栅栏”所挡住,不能被我们观察到。
(4)圆周卷积:把序列X(N)分布在N等份的圆周上,而序列Y(N)经反摺后也分布在另一个具有N等份的同心圆的圆周上。
两圆上对应的数两量两相乘求和,就得到全部卷积序列。
这个卷积过程称做圆周卷积。
(5)互相关函数反映了两个序列X(N)和Y(N)的相似程度,用FFT可以很快的计算互相关函数。
三.实验内容:实验中用到的函数序列:(a)Gaussian序列Xa(n)=exp(-(n-p).^2)/q),0=<n=<15=0,其他(b)衰减正弦序列X(b)=exp(-an)*sin(2pi*fn),0=<n=<15=0,其他(c)三角波序列Xb(n)=n,0=<n=<3=8-n,4=<n=<7=0,其他(d)反三角波序列Xc(n)=4-n,0=<n=<3=n-4,4=<n=<7=0,其他上机实验内容:1.观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察他们的时域和幅频特性,了解当q取不同值时,对信号序列的时域和幅频特性影响;改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域和幅频特性影响,注意p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
实验一 离散时间系统的时域分析一、实验目的1. 运用MA TLAB 仿真一些简单的离散时间系统,并研究它们的时域特性。
2. 运用MA TLAB 中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
二、实验原理离散时间系统其输入、输出关系可用以下差分方程描述:∑=∑=-=-M k k N k k k n x p k n y d 00][][当输入信号为冲激信号时,系统的输出记为系统单位冲激响应 ][][n h n →δ,则系统响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y ][][][][][ 当h[n]是有限长度的(n :[0,M])时,称系统为FIR 系统;反之,称系统为IIR 系统。
在MA TLAB 中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。
例1clf;n=0:40;a=1;b=2;x1= 0.1*n;x2=sin(2*pi*n);x=a*x1+b*x2;num=[1, 0.5,3];den=[2 -3 0.1];ic=[0 0]; %设置零初始条件y1=filter(num,den,x1,ic); %计算输入为x1(n)时的输出y1(n)y2=filter(num,den,x2,ic); %计算输入为x2(n)时的输出y2(n)y=filter(num,den,x,ic); %计算输入为x (n)时的输出y(n)yt= a*y1+b*y2;%画出输出信号subplot(2,1,1)stem(n,y);ylabel(‘振幅’);title(‘加权输入a*x1+b*x2的输出’);subplot(2,1,2)stem(n,yt);ylabel(‘振幅’);title(‘加权输出a*y1+b*y2’);(一)、线性和非线性系统对线性离散时间系统,若)(1n y 和)(2n y 分别是输入序列)(1n x 和)(2n x 的响应,则输入)()()(21n bx n ax n x +=的输出响应为)()()(21n by n ay n y +=,即符合叠加性,其中对任意常量a 和b 以及任意输入)(1n x 和)(2n x 都成立,否则为非线性系统。
DSP 原理及应用课程设计报告——FFT 的DSP 实现一、设计目的1、加深对DFT 算法原理和基本性质的理解;2、了解并学习使用FFT 算法,以及其在TMS320C54X 上的运用;3、学习DSP 中FFT 的设计和编程思想;4、练习使用CCS 的探针和图形工具来观察器观察波形和频谱情况。
二、设计内容用C 语言及汇编语言进行编程,实现FFT 运算,对于C 语言,实现8点和16点的FFT 运算,对于汇编语言,需调试出8点的FFT 运算结果。
三、设计原理快速傅里叶变换(FFT )是一种高效实现离散傅里叶变换(DFT )的快速算法,是数字信号处理中最为重要的工具之一,它在声学,语音,电信和信号处理等领域有着广泛的应用。
1、离散傅里叶变换DFT对于长度为N 的有限长序列x(n),它的离散傅里叶变换(DFT )为1,1,0,)()(10-==∑-=N k W n x k X n n nkN (1)式中, Nj N e W /2π-= ,称为旋转因子或蝶形因子。
从DFT 的定义可以看出,在x(n)为复数序列的情况下,对某个k 值,直接按(1)式计算X(k) 只需要N 次复数乘法和(N-1)次复数加法。
因此,对所有N 个k 值,共需要N 2次复数乘法和N(N-1)次复数加法。
对于一些相当大有N 值(如1024点)来说,直接计算它的DFT 所需要的计算量是很大的,因此DFT 运算的应用受到了很大的限制。
2、快速傅里叶变换FFT旋转因子W N 有如下的特性:对称性: 2/N k N kNW W +-=周期性:Nk Nk N W W +=利用这些特性,既可以使DFT 中有些项合并,减少了乘法积项,又可以将长序列的DFT 分解成几个短序列的DFT 。
FFT 就是利用了旋转因子的对称性和周期性来减少运算量的。
FFT 的算法是将长序列的DFT 分解成短序列的DFT 。
例如:N 为偶数时,先将N 点的DFT 分解为两个N/2点的DFT ,使复数乘法减少一半:再将每个N/2点的DFT 分解成N/4点的DFT ,使复数乘又减少一半,继续进行分解可以大大减少计算量。
dsp课程设计 fft一、教学目标本章节的教学目标是让学生掌握快速傅里叶变换(FFT)的基本原理和算法,学会使用DSP处理器进行FFT计算,并能够运用FFT处理信号分析、语音处理等实际问题。
1.了解FFT的基本概念和原理。
2.掌握FFT的算法和计算方法。
3.熟悉DSP处理器的基本结构和编程方法。
4.掌握DSP处理器进行FFT计算的流程和步骤。
5.能够运用FFT处理信号分析、语音处理等实际问题。
6.能够使用DSP处理器进行FFT计算。
7.能够编写DSP程序实现FFT算法。
情感态度价值观目标:1.培养学生对信号处理和DSP技术的兴趣和热情。
2.培养学生团队合作和问题解决的能力。
二、教学内容本章节的教学内容主要包括FFT的基本原理、算法和计算方法,DSP处理器的基本结构和编程方法,以及DSP处理器进行FFT计算的流程和步骤。
1.FFT的基本原理和算法:•FFT的概念和特点。
•FFT的算法原理和计算方法。
•FFT的性质和应用领域。
2.DSP处理器的基本结构和编程方法:•DSP处理器的基本结构和组成。
•DSP处理器的编程语言和编程方法。
•DSP处理器的寄存器和指令系统。
3.DSP处理器进行FFT计算的流程和步骤:•FFT计算的流程和步骤。
•DSP处理器进行FFT计算的程序设计和实现。
•DSP处理器进行FFT计算的优化和性能分析。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式进行。
1.讲授法:通过教师的讲解和演示,向学生传授FFT的基本原理和算法,DSP处理器的基本结构和编程方法,以及DSP处理器进行FFT计算的流程和步骤。
2.案例分析法:通过分析实际应用案例,让学生了解FFT在信号分析和语音处理等领域的应用,培养学生将理论知识应用于实际问题的能力。
3.实验法:通过实验操作,让学生亲手使用DSP处理器进行FFT计算,加深对FFT算法和DSP处理器的理解和掌握。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
洛阳理工学院课程设计报告课程名称_________数字信号处理_____________ 设计题目_ 用FFT实现快速卷积__ _____ 专业_________通信工程_________________ 班级__________x x x x x __________________ 学号__________xx x xx x ________________ 姓名x x xx完成日期______ 2014年6月27日_________课程设计任务书设计题目:_______用FFT实现快速卷积______________设计内容与要求:FFT的出现,使DFT在数字通信、语音信号处理、图像处理、功率谱估计、系统分析与仿真、雷达信号处理、光学、地震及数值分析等各个领域都得到广泛应用。
然而,各种应用一般都以卷积和相关运算为依据。
在实际应用中,为了分析时域离散LTI系统或者序列滤波时,需要计算两个序列的线性卷积。
为了提高运算速度,可以利用FFT来实现。
要求:参考课本上第90页的内容(3.4.1 用DFT计算线性卷积),设计并编写程序来实现重叠相加法计算线性卷积。
课程设计评语成绩:指导教师:_______________年月日目录第1章设计原理 (1)1.1设计思想 (1)1.2计算循环卷积的过程 (1)1.3重叠相加法的图示 (2)第2章设计过程 (3)2.1循环卷积子函数流程图 (3)2.2主函数流程图 (4)2.3循环卷积子函数源程序: (4)2.4主函数源程序: (6)第3章结果与验证 (9)第4章界面设计 (11)第5章分析与总结 (12)参考文献 (13)第1章 设计原理1.1设计思想运用分段处理方法中的重叠相加法计算两个序列的卷积运算。
设一个给定序列是长度为n1的A,另一个导入序列是长度为n2的B,其中B 序列是相对A 序列比较长的,所以可以把B 分为和A 一样长的若干段段,即B 分后每一小段长度为n1。
根据书上的公式:)()(*)()(*)()(*)()(0n y n x n A n B n A n B n A n y k k k k k k ∑∑∑∞-∞=∞=====可知将B 序列的每一小段与A 序列做现行卷积,然后将所有的n2/n1段的线性卷积结果相加起来就是整个B 序列和A 序列的线性卷积结果,而又在本设计中,B 序列的一小段和A 序列的线性卷积又可由循环卷积来实现,只要让循环卷积的点数121-+≥n n L ,循环卷积的结果就和线性卷积的结果等价,在本实验中取112-⨯=n L ,故A 序列和B 序列的线性卷积可认为是由A 序列和B 的每一小段做112-⨯=n L 点的循环卷积的最终累加和,另外还有两个个问题需要考虑,首先是做循环卷积时要对A 序列和B 序列的那一小段补零做卷积后,最终做累加的时候要考虑重叠的片段,必须将重叠的两段加起来。
不重叠的片段直接赋值。
其次是如果B 序列长度n2不是A 序列长度n1的整数倍时,必须将B 序列余下的那几个数补零后和A 序列做L 点循环卷积再加到最终的结果的相应位置。
1.2计算循环卷积的过程在本次课设题中序列A 和B 序列的某一小段做循环卷积,由于已知A 序列的长度为n1,故可取B 序列的每一小段都和A 序列相等长度,并且取循环卷积的点数为112-⨯=n L ,这就保证每一组的循环卷积都等效于线性卷积。
做循环卷积可运用课本上82页上的循环卷积矩阵做,其第一步是将A 序列和B 序列的某一小段补零到长度为112-⨯=n L ,然后把A 序列通过变换生成列行L L 的循环卷积矩阵,将补零后的B 的某一小段转置,然后用循环卷积矩阵乘以它就可以得到循环卷积的结果,在此也即线性卷积。
1.3重叠相加法的图示重叠相加法的图示如图1-1所示:图1-1重叠相加法的图示第2章设计过程2.1循环卷积子函数流程图2.2主函数流程图2.3循环卷积子函数源程序:function y=Convmy4(A,B,L) %创建循环卷积函数if L<length(A)||L<length(B) %若A和B中任何一个序列长度大于L则出错error('出错');endif L>length(A) %如果A序列长度小于L则补零到LA=[A,zeros(1,L-length(A))];endif L>length(B) %给B序列补零到LB=[B,zeros(1,L-length(B))];B=B'; %B转置endE=A(1,1);C=A(1,[2:L]); %写循环矩阵的第一行D=fliplr(C);A=[E,D];y(1)=A(1,1).*B(1,1);for h=2:1:Ly(1)=y(1)+A(1,h).*B(h,1); % %计算循环卷积序列的第一个值endfor k=2:1:Lt=A(1,L);for i=L:-1:2A(1,i)=A(1,i-1); %得到矩阵的第二到L行并计算循环卷积的end %另外几个值A(1,1)=t;y(k)=0;for m=1:1:Ly(k)=y(k)+A(1,m).*B(m,1);endend2.4主函数源程序:A=input('请输入给定序列:');c=load('huang.txt'); %导入数据B=c';n1=length(A); %记序列A的长度n2=length(B); %记序列B的长度i=fix(n2/n1); %算B的长度是A的几倍,向下取整L=2*n1-1; %取循环卷积的长度,使其每小段%循环卷积满足和线性卷积等价y(1:L)=Convmy4(A,B(1:n1),L); %调用编好的循环卷积函数r(1:L)=y(1:L); %计算最终结果的前n1个点的值for p=2:1:i %循环s=B((p-2)*n1+1:(p-2)*n1+n1); %取B序列的第一小段存到s y((p-2)*n1+1:(p-2)*n1+L)=Convmy4(A,s,L); %计算第一小段和A序列循环卷%积的L点结果C(1:L-n1)=y((p-2)*n1+n1+1:(p-2)*n1+L); %将第一组做循环卷积得到的结果%重叠部分先转存到临时变量C 中z=B((p-1)*n1+1:(p-1)*n1+n1); %取B序列的第二小段存到zy((p-1)*n1+1:(p-1)*n1+L)=Convmy4(A,z,L); %将其和A的循环卷积的结果给yforn=1:1:n1-1y((p-1)*n1+n)=C(n)+y((p-1)*n1+n); %计算重叠部分的结果r((p-1)*n1+n)=y((p-1)*n1+n);endfor n=n1:1:n1y((p-1)*n1+n)=y((p-1)*n1+n); %计算没重叠部分的结果r((p-1)*n1+n)= y((p-1)*n1+n);endendD(1:L-n1)=y((p-1)*n1+n1+1:(p-1)*n1+L);for n=n1+1:1:L %显示末尾的一段r((p-1)*n1+n)=D(n-n1);endIf mod(n2,n1)~=0h=mod(n2,n1);E=[B(i*n1+1:i*n1+h),zeros(1,n1-h)];F(1:L) =Convmy4(A,E,L);P(1:n1-1)=r((p-1)*n1+n1+1:(p-1)*n1+L); %如果n2不是n1的整数倍,则应for n=1:1:n1-1 %将B序列多余的那几个点补零再r(i*n1+n)=P(n)+F(n); %和A做循环卷积并显示出来endfor n=n1:1:Lr(i*n1+n)=F(n);endendq=conv(A,B); %调用系统函数做线性卷积,验证结果r;x1=1:1:n1;subplot(2,2,1);stem(x1,A);title('给定序列A');grid on; %画原来输入的两个序列和最终序列的图形x2=1:1:n2;subplot(2,2,3);stem(x2,B);title('导入序列B');grid on;x3=1:1:length(r);subplot(2,2,2);stem(x3,r);title('线性卷积结果图形');grid on ; x4=1:1:n1+n2-1; subplot(2,2,4); %画调用系统函数得到的结果图形stem(x4,q);title('直接调用系统函数得到的图形');grid on;第3章结果与验证当输入序列为rand(1,80)时,输入前后以及结果图形:第4章界面设计在MATLAB的命令窗口中运行guide命令,即可打开GUIDE界面,选择Blank GUI,点击OK,就可以进行界面设计。
根据题目要求,逐步设计各各模块的功能,再修改所要用到的属性,全部完成后,运行,界面如下:第5章分析与总结学习了MATLAB后,我深刻地体会到了它功能的强大,不管是数据处理,矩阵计算,频谱分析,还是图形处理,只要函数格式使用正确,一切都能快速准确的实现。
在实验的过程中培养了我的独立分析问题和解决问题的能力。
在遇到实在过不去的地方,总能在同学和老师的指点下豁然开朗,对培养我的思维方法有了很大的帮助,使我受益匪浅。
我了解到MATLAB在我们的生活中的重要地位,随着社会的不断发展,科技的不断进步,计算机的普及,它也被应用在越来越多的方面。
通过本次实验,使我掌握了MATLAB的使用,对我今后的学习之路将产生很大的帮助。
在进行matlab 编程时,也出现了很多问题,通过和同学讨论,查阅相关资料最终都得以解决,同时也非常感谢指导老师的悉心指导。
参考文献[1] 罗建军,杨琦.精讲多练MATLAB.第2版.西安:西安交通大学大学出版社,2010[2] 高西全,丁玉美.数字信号处理.第3版.西安:西安电子科技大学出版社,2008[3] 刘卫国.MATLAB程序设计与应用.第2版.高等教育出版社,2006[4] 邓薇.MATLAB函数速查手册.第1版.人民邮电出版社,2008。