数字信号实验报告二,北京理工大学,实验报告
北京理工大学高级数字信号处理实验报告

高级数字信号处理实验报告实验名称:基于小波变换的信号去噪实验实验时间:2013/5/17姓名:学号:班级:05111003原信号SNR = 9SNR = 25SNR = 49实验二 基于小波变换的信号去噪实验实验内容:利用函数wnoise ,产生2 种不加噪声的信号,分别是 'blocks' 和'doppler' ,观察这 两个信号的特点,对每一个信号,进行如下处理:一、产生信号的长度为512点,给信号加上不同信噪比的噪声,即把wnoise 中的SQRT_SNR 参数值分别设为3、5和7,观察在不同信噪比情况下,有噪信号的特点。
1.实验结果2.分析:单独地,对于blocks 信号而言,信噪比很低时“平台”部分受到噪声的污染很严重,原本十分平坦的部分变得起伏很明显;对doppler 信号的波形而言,高的信噪比尤其能使信号的高频部分可分辨程度提高。
总而言之,从blocks 和doppler 函数的原信号与三种信噪比信号对比图中看出,信噪比越高,含噪信号的波形就与原波形越接近,换句话说噪声对于信号的影响就越小。
二、当SQRT_SNR 参数值设为5 时,对加噪后的信号进行3 级的小波分解,对小原信号SNR = 9SNR = 25SNR = 49波系数进行硬阈值和软阈值处理,比较软硬阈值处理的结果。
1.实验结果表格 1 blocks 信号硬阈值和软阈值处理的比较注:标准差从MATLAB 中figure 界面数据分析工具中直接读取;标准误差为编程计算所得 (后同)。
1020signal of snr=25signal of hard-threshold-5051015signal of soft-thresholdsignal of snr=25-505signal of hard-threshold50100150200250300350400450500-505signal of soft-threshold表格 2 doppler信号硬阈值与软阈值处理的比较2.分析首先明确硬阈值处理与软阈值处理各自的特点。
北理工信号与系统实验(2)

实验2 LTI 系统的时域分析一、 实验目的1. 掌握利用MATLAB 对系统进行时域分析的方法2. 掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法3. 掌握求解离散时间系统响应、单位抽样响应的方法4. 加深对卷积积分和卷积和的理解。
掌握利用计算机进行卷积积分和卷积和计算的方法二、 实验原理与方法1. 连续时间系统时域分析的MATLAB 实现 1) 连续时间系统的MA TLAB 表示LTI 连续系统通常可以由系统微分方程描述,设描述系统的微分方程为:(N)(N 1)(N)(M 1)1010a (t)a (t)...a (t)b (t)b (t)...b (t)N N M M y y y x x x ----++=++则在MA TLAB里,可以建立系统模型如下:10b [b ,b ,...,b ]M M -=;10a=[a ,a ,...,a ]N N -;sys tf (b,a)=;其中,tf 是用于创建系统模型的函数,向量a 与b 的元素是以微分方程求导的降幂次序来排列的,如果有缺项,应用0补齐。
2) 连续时间系统的零状态响应零状态响应指系统的初始状态为零,仅由输入信号所引起的响应。
MATLAB 提供了一个用于求解零状态响应的函数lsim ,其调用格式如下:(sys,x,t)lsim 绘出输入信号及响应的波形,x 和t 表示输入信号数值向量及其时间向量。
(sys,x,t)y lsim =这种调用格式不会绘出波形,而是返回响应的数值向量。
3) 连续时间系统的冲激响应与阶跃响应MATLAB 中函数impulse 来求指定时间范围内,由模型sys 描述的连续时间系统的单位冲激响应。
2. 离散时间系统时域分析的MATLAB 实现 1) 离散时间系统的MA TLAB 表示LTI 离散时间系统通常可以由系统差分方程描述,设描述系统的差分方程为:0101a (n)a (n 1)...a (n M)b x(n)b x(n 1)...b x(n )N M y y y N +-+-=+-+-则在MATLAB中,可以用如下向量来表示这个系统:01b [b ,b ,...,b ]M =;01a [a ,a ,...,a ]N =;2) 离散时间系统对任意输入的响应MATLAB 提供了求LTI 离散系统响应的专用函数filter ,该函数用于求取由差分方程所描述的离散时间系统在指定时间范围内对输入序列所产生的响应,该函数基本调用格式为(b,a,x)y filter =其中,x 为输入序列,y 为输出序列,输出序列y 对应的时间区间与x 对应的时间区间相同。
北京理工大学微机原理实验报告二

本科实验报告实验名称:利用中断方式设计数字时钟课程名称:实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:实验二利用中断方式设计数字时钟一、实验目的1、掌握PC 机中断处理系统的基本原理。
2、熟悉定时/计数器8254 工作原理及其编程方法。
3、利用实验板上的8254 定时器为中断源发中断申请,中断请求用IRQ3(系统总线区的IRQ)。
4、熟悉数码管显示原理,掌握数码管显示接口技术。
5、学习数字时钟原理,实现数字时钟。
6、掌握中断控制器8259 管理。
二、实验内容与步骤接线:三、实验原理1、PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8 个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 0BH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线IRQ0~IRQ7 在主机的62 线ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT 及286 以上微机内又扩展了一片8259 中断控制,IRQ2 用于两片8259 之间级连,对外可以提供16 个中断源:中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 073H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留实验系统总线区的IRQ 接到了3 号中断IRQ3 上,即进行中断实验时,所用中断类型号为0BH。
北京理工大学信号和系统实验报告

本科实验报告实验名称:信号与系统实验实验一信号的时域描述与运算一、实验目的①掌握信号的MATLAB表示及其可视化方法。
②掌握信号基本时域运算的MATLAB实现方法。
③利用MATLAB分析常用信号,加深对信号时域特性的理解。
二、实验原理与方法1. 连续时间信号的MATLAB表示连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。
在MATLAB中连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。
从严格意义上来说,MATLAB并不能处理连续时间信号,在MATLAB中连续时间信号是用等时间间隔采样后的采样值来近似表示的,当采样间隔足够小时,这些采样值就可以很好地近似表示出连续时间信号,这种表示方法称为向量表示法。
表示一个连续时间信号需要使用两个向量,其中一个向量用于表示信号的时间范围,另一个向量表示连续时间信号在该时间范围内的采样值。
例如一个正弦信号可以表示如下:>> t=0:0.01:10;>> x=sin(t);利用plot(t,x)命令可以绘制上述信号的时域波形,如图1所示。
如果连续时间信号可以用表达式来描述,则还可以采用符号表达式來表示信号。
例如对于上述正弦信号,可以用符号对象表示如下:>> x=sin(t);>> ezplot(X);利用ezplot(x)命令可以绘制上述信号的时域波形常用的信号产生函数2.连续时间信号的时域运算-1-0.8-0.6-0.4-0.200.20.40.60.81Time(seconds)图1 利用向量表示连续时间信号-1-0.50.51t图 2 利用符号对象表示连续时间信号sin(t)对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。
1)相加和相乘信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两信号的向量时间范围和采样间隔相同。
北京理工大学信号与系统实验报告

北京理工大学信号与系统实验报告本科实验报告实验名称:信号与系统实验实验1 信号的时域描述与运算(基础型实验)一、实验目的1.掌握信号的MATLAB表示及其可视化方法。
2.掌握信号基本时域运算的MATLAB实现方法。
3.利用MATLAB分析常用信号,加深对信号时域特性的理解。
二、实验原理及方法1.连续时间信号的MATLAB表示连续时间信号在连续时间范围内除若干不连续点外在任何时刻都有定义,在MATLAB中的表示法包括向量表示法和符号对象表示法。
1)向量表示法MATLAB从严格意义上来说并不能处理连续时间信号,但可以通过等时间间隔采样后的采样值来近似表示,如果采样间隔足够小,则采样值就可以很好地近似表示出连续时间信号。
这种方法称为向量表示法。
表示一个连续时间信号需要用到两个向量,一个表示时间范围,另一个表示连续时间信号在相对应时间范围内的采样值。
2)符号对象表示法如果连续时间信号可以用表达式来描述,则可以采用符号对象表达法。
例:对于余弦信号,采用两种方式来表示:>> t=0:0.01:10;>> x=sin(t);>> subplot(121)>> plot(t,x)>> title('向量表示法')>> clear>> syms t>> x=sin(t);>> subplot(122)>> ezplot(x)>> title('符号对象表示法')符号对象表示法向量表示法t常用信号产生函数2.连续时间信号的时域运算连续时间信号的运算包括两信号相加、相乘、微分、积分,以及移位、反转、尺度变换等。
1) 相加和相乘信号的相加和相乘指两信号对应时刻值相加或相乘。
两个采用向量表示法的信号可以直接使用‘+’和‘*’进行运算,此时要求二者的向量时间范围以及采样间隔相同。
(完整word版)数字信号课程设计实验报告-(2)(word文档良心出品)

题目一: 采样定理的验证1.课程设计目的及要求:1).掌握利用MATLAB分析系统频率响应的方法, 增加对仿真软件MATLAB的感性认识, 学会该软件的操作和使用方法。
2). 掌握利用MATLAB实现连续信号采用与重构的方法, 加深理解采样与重构的概念。
.).初步掌握线性系统的设计方法, 培养独立工作能力。
2.4).学习MATLAB中信号表示的基本方法及绘图函数的调用, 实现对常用连续时间信号的可视化表示, 加深对各种电信号的理解。
3.5).验证信号与系统的基本概念、基本理论,掌握信号与系统的分析方法。
4.6).加深对采样定理的理解和掌握,以及对信号恢复的必要性;掌握对连续信号在时域的采样与重构的方法。
详细设计过程及调试结果:1).设, 利用filter函数求出的源程序:n=0:49;xn=0.8.^nsubplot(1,2,1);stem(n,xn,'.');axis([0 49 0 1]);title('输入xn图');xlabel('n');ylabel('xn');grid on;B=1;A=[1,-0.8];yn=filter(B,A,xn);n=0:length(yn)-1;subplot(1,2,2);stem(n,yn,'.');axis([0 49 0 2.5]); title('输出yn图');xlabel('n');ylabel('yn');grid on; 本题验结果及分析:2): 模拟信号, 间隔采样得到:a.每一个画出的源程序:t=0:0.01:1;T1=0:0.01:1;T2=0:0.05:1;T3=0:0.1:1;xt=sin(20*pi*t);xn1=sin(20*pi*T1);xn2=sin(20*pi*T2);xn3=sin(20*pi*T3);subplot(4,1,1);plot(t,xt);title('模拟信号xt图');xlabel('t');ylabel('xt');grid on;subplot(4,1,2);stem(T1,xn1,'.');title('0.01s采样图');xlabel('n');ylabel('xn1');grid on;subplot(4,1,3);stem(T2,xn2,'.');axis([0 1 -1 1]);title('0.05s采样图');xlabel('n');ylabel('xn2');grid on;subplot(4,1,4);stem(T3,xn3,'.');axis([0 1 -1 1]);title('0.1s采样图');xlabel('n');ylabel('xn3');grid on;调试结果分析:b.采用内插从样本重建模拟信号的源程序:t=0:0.01:1;T0=0.1;xt=sin(20*pi*t);T1=0.01;n1=0:100;T2=0.05;n2=0:20;T3=0.1;n3=0:10;xt=sin(20*pi*t);subplot(4,1,1);plot(t,xt);title('原信号xt模拟图');xlabel('t');ylabel('xt');grid on; xn1=sin(20*pi*n1*T1);xn2=sin(20*pi*n2*T2);xn3=sin(20*pi*n3*T3);t1=0:T1:1;t2=0:T2:1;t3=0:T3:1;tn1=ones(length(n1),1)*t1-n1'*T1*ones(1,length(t1));tn2=ones(length(n2),1)*t2-n2'*T2*ones(1,length(t2));tn3=ones(length(n3),1)*t3-n3'*T3*ones(1,length(t3));yt1=xn1*sinc(tn1*pi/T1);subplot(4,1,2);plot(t1,yt1);axis([ 0 1 -1 1]); title('sinc内插0.01恢复的xt1图');xlabel('n');ylabel('xt1');grid on; yt2=xn2*sinc(tn2*pi/T2);subplot(4,1,3);plot(t2,yt2);axis([ 0 1 -1 1]); title('sinc内插0.05恢复的xt2图');xlabel('n');ylabel('xt2');grid on; yt3=xn3*sinc(tn3*pi/T3);subplot(4,1,4);plot(t3,yt3);axis([ 0 1 -1 1]); title('sinc内插0.1恢复的xt3图');xlabel('n');ylabel('xt3');grid on; 调试结果分析:c.采用三次样条内插从样本重建模拟信号源程序: t=0:0.01:1;xt=sin(20*pi*t);T1=0.01;n1=0:100;T2=0.05;n2=0:20;T3=0.1;n3=0:10;T1=0:T1:1;T2=0:T2:1;T3=0:T3:1;xt=sin(20*pi*t);xn1=sin(20*pi*T1);xn2=sin(20*pi*T2);xn3=sin(20*pi*T3);yt1=spline(T1,xn1,t);yt2=spline(T2,xn2,t);yt3=spline(T3,xn3,t);subplot(4,1,1);plot(t,xt);title('原信号xt模拟图');xlabel('t');ylabel('xt');grid on;subplot(4,1,2);plot(t,yt1);axis([ 0 1 -1 1]);title('三次样条0.01恢复的xt1图');xlabel('n');ylabel('xt1');grid on; subplot(4,1,3);plot(t,yt2);axis([ 0 1 -1 1]);title('三次样条0.05恢复的xt2图');xlabel('n');ylabel('xt2');grid on; subplot(4,1,4);plot(t,yt3);axis([ 0 1 -1 1]);title('三次样条0.1恢复的xt3图');xlabel('n');ylabel('xt3');grid on; 调试结果分析:总结体会:连续信号是指自变量的取值范围是连续的, 且对于一切自变量的取值, 除了有若干个不连续点以外, 信号都有确定的值与之对应。
数字信号处理实验报告

数字信号处理实验报告一、实验目的本次数字信号处理实验的主要目的是通过实际操作和观察,深入理解数字信号处理的基本概念和方法,掌握数字信号的采集、处理和分析技术,并能够运用所学知识解决实际问题。
二、实验设备与环境1、计算机一台,安装有 MATLAB 软件。
2、数据采集卡。
三、实验原理1、数字信号的表示与采样数字信号是在时间和幅度上都离散的信号,可以用数字序列来表示。
在采样过程中,根据奈奎斯特采样定理,为了能够准确地恢复原始信号,采样频率必须大于信号最高频率的两倍。
2、离散傅里叶变换(DFT)DFT 是将时域离散信号变换到频域的一种方法。
通过 DFT,可以得到信号的频谱特性,从而分析信号的频率成分。
3、数字滤波器数字滤波器是对数字信号进行滤波处理的系统,分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
FIR 滤波器具有线性相位特性,而 IIR 滤波器则在性能和实现复杂度上有一定的优势。
四、实验内容与步骤1、信号的采集与生成使用数据采集卡采集一段音频信号,或者在 MATLAB 中生成一个模拟信号,如正弦波、方波等。
2、信号的采样与重构对采集或生成的信号进行采样,然后通过插值算法重构原始信号,观察采样频率对重构信号质量的影响。
3、离散傅里叶变换对采样后的信号进行DFT 变换,得到其频谱,并分析频谱的特点。
4、数字滤波器的设计与实现(1)设计一个低通 FIR 滤波器,截止频率为给定值,观察滤波前后信号的频谱变化。
(2)设计一个高通 IIR 滤波器,截止频率为给定值,比较滤波前后信号的时域和频域特性。
五、实验结果与分析1、信号的采集与生成成功采集到一段音频信号,并在MATLAB 中生成了各种模拟信号,如正弦波、方波等。
通过观察这些信号的时域波形,对不同类型信号的特点有了直观的认识。
2、信号的采样与重构当采样频率足够高时,重构的信号能够较好地恢复原始信号的形状;当采样频率低于奈奎斯特频率时,重构信号出现了失真和混叠现象。
数字信号实验报告二,北京理工大学,实验报告

实验三利用FFT计算线性卷积一、实验目的1.掌握利用FFT计算线性卷积的原理及具体实现方法。
2.加深理解重叠相加法和重叠保留法。
3.考察利用FFT计算线性卷积各种方法的适用范围。
二、实验设备与环境计算机、MATLAB软件环境三、实验基础理论1.线性卷积与圆周卷积设为L点序列,为M点序列,和的线性卷积为的长度为L+M-1。
和的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,和的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以利用圆周卷积来计算,必须选择;同时为了能使用基2-FFT 完成卷积运算,要求N =。
采用补零的办法是和的长度均为N 。
(2)计算和的N 点FFTFFT −−−→(3)组成卷积(4)利用IFFT 计算IDFT ,得到线性卷积(k)()IFFT Y y n −−−→3.分段卷积我们考察单位取样响应为的线性系统,输入为,输出为,则当输入序列时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量的存储单元。
为此,我们把,分别求出每段的卷积,合在一起其到最后的总输出。
这种方法称为分段卷积。
分段卷积可细分为重叠相加法和重叠保留法。
重叠保留法:设的长度为,的长度为M 。
我们把序列分成多段N 点序列,每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入段前面填充M-1个零。
计算每一段的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本舍去,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来得到总的输出。
利用FFT 实现重叠保留法的步骤如下:(1)在前面填充M-1个零,扩大以后的序列为1ˆ(){0,0,0,()}M x n x n -=个(2)将分为若干N 点子段,设L=N-M+1为每一段的有效数据长度,则第i 段〖ˆ(m)x1,0,01iL m iL N i n N ≤≤+-≥≤≤- (3)计算每一段与的N 点圆周卷积,利用FFT 计算圆周卷积:FFT−−−→(k)()IFFT i i Y y n −−−→(4)舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三利用FFT计算线性卷积一、实验目的1.掌握利用FFT计算线性卷积的原理及具体实现方法。
2.加深理解重叠相加法和重叠保留法。
3.考察利用FFT计算线性卷积各种方法的适用范围。
二、实验设备与环境计算机、MATLAB软件环境三、实验基础理论1.线性卷积与圆周卷积设为L点序列,为M点序列,和的线性卷积为的长度为L+M-1。
和的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,和的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以利用圆周卷积来计算,必须选择;同时为了能使用基2-FFT 完成卷积运算,要求N =。
采用补零的办法是和的长度均为N 。
(2)计算和的N 点FFTFFT −−−→(3)组成卷积(4)利用IFFT 计算IDFT ,得到线性卷积(k)()IFFT Y y n −−−→3.分段卷积我们考察单位取样响应为的线性系统,输入为,输出为,则当输入序列时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量的存储单元。
为此,我们把,分别求出每段的卷积,合在一起其到最后的总输出。
这种方法称为分段卷积。
分段卷积可细分为重叠相加法和重叠保留法。
重叠保留法:设的长度为,的长度为M 。
我们把序列分成多段N 点序列,每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入段前面填充M-1个零。
计算每一段的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本舍去,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来得到总的输出。
利用FFT 实现重叠保留法的步骤如下:(1)在前面填充M-1个零,扩大以后的序列为1ˆ(){0,0,0,()}M x n x n -=个(2)将分为若干N 点子段,设L=N-M+1为每一段的有效数据长度,则第i 段〖ˆ(m)x1,0,01iL m iL N i n N ≤≤+-≥≤≤- (3)计算每一段与的N 点圆周卷积,利用FFT 计算圆周卷积:FFT−−−→(k)()IFFT i i Y y n −−−→(4)舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果。
重叠相加法:设长度为M ,将信号分解成长为L 的子段,建议L 选择与M 数量级相同。
以表示每段信号,则()()i i x n x n ∞==∑(),01()0,i x n iL n L x n +≤≤-⎧=⎨⎩其它0()()()()i i x n y n x n h n ∞=*=*∑每一段卷积的长度为L+M-1,所以在做求和时,相邻两段序列有M-1个样本重叠,即前一段的最后M-1个样本和下一段的前M-1个序列重叠,这个重叠部分相加,再与不重叠部分共同组成输出。
利用FFT 实现重叠保留法的步骤如下: (1)将分为若干L 点子段。
(2)计算每一段与的卷积,根据快速卷积算法利用FFT 计算卷积。
(3)将各段(包括重叠部分)相加,得到输出()()i i y n y n iL ∞==-∑4.可能用到的MATLAB 函数实验中FFT 运算可采用MATLAB 中提供的函数fft 来实现。
MATLAB 提供了函数conv 来计算线性卷积,实验中可以将编程计算的结果和conv 函数的计算结果相比较,以验证结果的正确性,conv 函数用法如下:(,)y conv x h = x 和h 为要进行卷积运算的两个序列,y 为卷积结果统计程序运行时间可以利用MATLAB 提供的tic 和toc 两个命令,具体用法如下: tic……需要运行的程序代码 toc即,在需要统计运行时间的程序代码前加上tic 命令,之后加上toc 命令,此时会在命令窗口中显示该程序的运行时间。
四、实验内容假设要计算序列()()(),0x n u n u n L n L =--≤≤和()cos(0.2),0h n n n M π=≤≤的线性卷积,完成以下实验内容:1.设L=M ,根据线性卷积表达式和快速卷积原理,分别编程实现计算两个序列线性卷积的方法,比较当序列长度分别为8,16,32,64,256,512,1024时,两种方法计算线性卷积所用的时间。
实验代码及实验结果: (1)l=m=8 线性卷积:tic; *统计程序运行时间 l=8; m=8; n=0:l; M=0:m;x=heaviside(n)-heaviside(n-l); h=cos(0.2*pi*M); x=conv(x,h); tocElapsed time is 0.000246 seconds. 快速卷积: ticn=0:l;m=8;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,16);h=cos(0.2*pi*M);h1=fft(h,16);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000226 seconds.结论:0.000226<0.000246快速卷积运行时间较短。
(2)l=m=16线性卷积:ticl=16;m=16;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000249 seconds.快速卷积:ticl=16;n=0:l;m=16;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,32);h=cos(0.2*pi*M);h1=fft(h,32);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000227 seconds.结论:0.000227<0.000249快速卷积运行时间较短。
(3)l=m=32线性卷积:l=32;m=32;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000272 seconds.快速卷积:ticl=32;n=0:l;m=32;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,64);h=cos(0.2*pi*M);h1=fft(h,64);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000241 seconds.结论:0.000241<0.000272快速卷积运行时间较短。
(4)l=m=64线性卷积:ticl=64;m=64;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000283 seconds.快速卷积:ticl=64;n=0:l;m=64;x=heaviside(n)-heaviside(n-l);x1=fft(x,128);h=cos(0.2*pi*M);h1=fft(h,128);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000242 seconds.结论:0.000242<0.000283快速卷积运行时间较短。
(5)l=m=256线性卷积:ticl=256;m=256;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000313 seconds.快速卷积:ticl=256;n=0:l;m=256;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,512);h=cos(0.2*pi*M);h1=fft(h,512);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000289 seconds.结论:0.000289<0.000313快速卷积运行时间较短。
(6)l=m=512线性卷积:ticl=512;m=512;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000429 seconds.快速卷积:ticl=512;n=0:l;m=512;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,1024);h=cos(0.2*pi*M);h1=fft(h,1024);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000367 seconds.结论:0.000367<0.000429快速卷积运行时间较短。
(7)l=m=1024线性卷积:ticl=1024;m=1024;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000641 seconds.快速卷积:ticl=1024;n=0:l;m=1024;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,2048);h=cos(0.2*pi*M);h1=fft(h,2048);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000449 seconds.结论:0.000449<0.000641快速卷积运行时间较短。
2.当L=2048且M=256时,比较直接计算线性卷积和快速卷积所需的时间,进一步考察当L=4096且M=256时两种算法所需的时间。
实验代码与实验结果:(1) l=2048 m=256线性卷积:ticl=2048;m=256;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000504 seconds.快速卷积:ticl=2048;m=256;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,4096);h=cos(0.2*pi*M);h1=fft(h,4096);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000582 seconds.(2) l=4096 m=256线性卷积:ticl=4096;m=256;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000667 seconds.快速卷积:ticl=4096;m=256;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,8192);h=cos(0.2*pi*M);h1=fft(h,8192);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000932 seconds.3.编程实现利用重叠相加法计算两个序列的线性卷积,考察L=2048且M=256时计算线性卷积的时间,与第二题结果进行比较。