杭电_数字信号处理课程设计_实验5
- 格式:docx
- 大小:997.48 KB
- 文档页数:15
《数字信号处理》实验指导书(实验报告)Digital Signal Processing Laboratory湛柏明编蒋伟荣审班级:姓名:湖北汽车工业学院电子信息科学系二〇〇六年十二月修订前言《信号与系统》、《数字信号处理》是电子信息类专业的两门主要技术基础课程,是电子信息类专业本科生的必修课程,也是电子信息类专业硕士研究生入学必考课程。
该课程的任务在于研究信号与系统理论的基本概念和基本分析方法,使学生初步认识如何建立信号与系统的数学模型,如何经适当的数学分析求解,并对所得结果给予物理解释,赋予物理意义。
该课程的基本理论和方法大量用于计算机信息处理的各个领域,特别是通信、数字语音处理、数字图像处理、数字信号分析等领域应用更为广泛。
通过实验,配合《信号与系统》和《数字信号处理》课程的教学、加强学生对信号与系统理论的感性认识、提高学生的综合能力具有重要的意义。
长期以来,《信号与系统》和《数字信号处理》课程一直采用黑板式的单一教学方式,学生仅依靠做习题来巩固和理解教学内容,对课程中大量的应用性较强的内容不能实际动手设计、调试、分析,严重影响和制约了教学效果。
由于黑板式教学,课程中大量的信号分析结果缺乏可视化的直观表现,学生自己设计系统也不能直观地得到系统特性的可视化测试结果,学生将大量的时间和精力用于繁杂的手工数学运算,而未真正理解所得结果在信号处理中的实际意义。
近年来,计算机多媒体教序手段的运用逐步普及,大量优秀的科学计算和系统仿真软件不断涌现,为我们实现计算机辅助教学和学生上机实验提供了很好的平台。
通过对这些软件的分析和对比,我们选择MATLAB语言作为辅助教学工具,借助MATLAB强大的计算能力和图形表现能力,将《信号与系统》和《数字信号处理》中的概念、方法和相应的结果,以图形的形式直观地展现给学生,大大的方便学生迅速掌握和理解教学内容。
然而,我们意识到,按照之前的《信号与系统》和《数字信号处理》课程的各8个实验学时进行实验,实验效果比较不尽如人意,由于实验学时数太少,没有给学生更的时间先去了解MATLAB语言,以至于使实验课流于形式,由于实验学时太少,也导致我们无法安排更为细致的具有综合型和设计型的实验项目。
《数字信号处理》课程设计作业院系:物理工程学院电子信息科学与技术班级:1学号:20092250103姓名:冯军美实验一:音乐信号音谱和频谱的观察1.实验方案读取音乐信号并将信号装换为单声道的,并输出信号的波形图和频谱图%2.源程序clear all; close all;clc[x,fs,bit]=wavread('F:\费玉清-一剪梅00_01_23-00_01_28.wav');%读取音乐信号,其中x为截取的音乐信号size(x) %看音乐信号是单声道还是双声道sound(x,fs); %听原始音乐信号x=x(:,1); %获取单声道音乐信号N=length(x); %N为音乐信号的长度figureplot(x) %画音乐信号的连续波形grid on %产生虚线格title('音乐信号时域波型') %标注图注xlabel('Time') %x坐标ylabel('Magnitude') %y坐标F1=fft(x,N); %做音乐信号的N点快速傅里叶变换w=2/N*[0:N-1]; %w为连续频谱的数字角频率横坐标figureplot(w,abs(F1)) %连续频谱图grid ontitle('音乐信号频域波型')xlabel('Frequency/Hz')ylabel('Magnitude')%不同抽样频率下听取的音乐信号% sound(x,2*fs);sound(x,fs/2);3.输出波形0.511.522.5x 105-1-0.8-0.6-0.4-0.200.20.40.60.81音乐信号时域波型TimeM a g n i t u d e00.20.40.60.81 1.2 1.4 1.6 1.8250010001500200025003000音乐信号频域波型Frequency/HzM a g n i t u d e4.输出结果分析从音谱可看到音乐信号分布在整个时间轴上,幅值分布有规律;从频谱可看到音乐信号主要分布在低频段,高频成分较少,在0.4pi 以后几乎无音乐信号的频谱成分了5.回放声音信号特征的描述和解释当抽样率变为原来的2后,可听出音乐信号,但音乐明显比原来速度播放的快了,播放时间也比原来缩短了,而且音乐中听到的更多的是高频成分。
数字信号处理课程设计实验报告数字信号处理课程设计实验报告(基础实验篇)实验⼀离散时间系统及离散卷积⼀、实验⽬的和要求实验⽬的:(1)熟悉MATLAB软件的使⽤⽅法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利⽤MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
(4)熟悉离散卷积的概念,并利⽤MATLAB计算离散卷积。
实验要求:(1)编制实验程序,并给编制程序加注释;(2)按照实验内容项要求完成笔算结果;(3)验证编制程序的正确性,记录实验结果。
(4)⾄少要求⼀个除参考实例以外的实例,在实验报告中,要描述清楚实例中的系统,并对实验结果进⾏解释说明。
⼆、实验原理δ的响应输出称为系统1.设系统的初始状态为零,系统对输⼊为单位脉冲序列()n的单位脉冲响应()h n。
对于离散系统可以利⽤差分⽅程,单位脉冲响应,以及系统函数对系统进⾏描述。
单位脉冲响应是系统的⼀种描述⽅法,若已知了系统的系统函数,可以利⽤系统得出系统的单位脉冲响应。
在MATLAB中利⽤impz 由函数函数求出单位脉冲响应()h n2.幅频特性,它指的是当ω从0到∞变化时,|()|Aω,H jω的变化特性,记为()相频特性,指的是当ω从0到∞变化时,|()|∠的变化特性称为相频特性,H jωω。
离散系统的幅频特性曲线和相频特性曲线直观的反应了系统对不同记为()频率的输⼊序列的处理情况。
三、实验⽅法与内容(需求分析、算法设计思路、流程图等)四、实验原始纪录(源程序等)1.离散时间系统的单位脉冲响应clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];impz(a,b,30);%离散时间系统的冲激响应(30个样值点)title('系统单位脉冲响应')axis([-3,30,-2,2]);2.(1)离散系统的幅频、相频的分析⽅法21-0.3()1 1.60.9425j j j e H z e e ωωω---=-+clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];%a 分⼦系数,b 分母系数 [H,w]=freqz(a,b,'whole'); subplot(2,1,1); plot(w/pi,abs(H));%幅度 title('幅度谱');xlabel('\omega^pi');ylabel('|H(e^j^\omega)'); grid on;subplot(2,1,2);plot(w/pi,angle(H));%相位 title('相位谱');xlabel('\omega^pi'); ylabel('phi(\omega)'); grid on;(2)零极点分布图clc; clear all a=[1,-0.3];b=[1,-1.6,0.9425]; zplane(a,b);%零极图 title('零极点分布图')3.离散卷积的计算111()()*()y n x n h n =clcclear all% x=[1,4,3,5,3,6,5] , -4<=n<=2 % h=[3,2,4,1,5,3], -2<=n<=3 % 求两序列的卷积 clear all;x=[1,4,3,5,3,6,5]; nx=-4:2; h=[3,2,4,1,5,3];nh=-2:3;ny=(nx(1)+nh(1)):(nx(length(x))+nh(length(h))); y=conv(x,h);n=length(ny);subplot(3,1,1);stem(nx,x);xlabel('nx');ylabel('x'); subplot(3,1,2);stem(nh,h);xlabel('nh');ylabel('h'); subplot(3,1,3);stem(ny,y);xlabel('n');ylabel('x 和h 的卷积')五、实验结果及分析(计算过程与结果、数据曲线、图表等)1.离散时间系统的单位脉冲响应051015202530-2-1.5-1-0.500.511.52n (samples)A m p l i t u d e系统单位脉冲响应2.离散系统的幅频、相频的分析⽅法00.20.40.60.81 1.2 1.4 1.6 1.82 102030幅度谱ωp i|H (e j ω)0.20.40.60.811.21.41.61.82-2-1012相位谱ωp ip h i (ω)-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81Real PartI m a g i n a r y P a r t零极点分布图3.离散卷积的计算-4-3-2-1012nxx-2-1.5-1-0.500.51 1.522.53nhh -6-4-20246nx 和h 的卷积六、实验总结与思考实验⼆离散傅⽴叶变换与快速傅⽴叶变换⼀、实验⽬的和要求实验⽬的:(1)加深理解离散傅⾥叶变换及快速傅⾥叶变换概念; (2)学会应⽤FFT 对典型信号进⾏频谱分析的⽅法; (3)研究如何利⽤FFT 程序分析确定性时间连续信号; (4)熟悉应⽤FFT 实现两个序列的线性卷积的⽅法;实验要求:(1)编制DFT 程序及FFT 程序,并⽐较DFT 程序与FFT 程序的运⾏时间。
数字信号处理课程设计
一、概述
本次信号处理课程设计主要对常见的数字信号处理算法进行实现。
主要内容包括数字信号滤波器、傅立叶变换和数字信号检测算法。
通过实验,学生将学习主要处理手段;同时了解数字信号处理的基本原理和应用。
二、主要内容
(1)数字信号滤波器:实现简单的数字滤波器,同时计算滤波器的频率响应;
(2)傅立叶变换:实现常用的傅立叶变换,并利用变换后的信号图像进行频率分析;
(3)数字信号检测算法:实现基本的一阶和二阶差分算法,并利用此算法进行实时信号检测;
三、实验步骤
(1)准备实验材料:将数字信号的原始信号数据以文件的形式存储,使用MATLAB等软件进行处理;
(2)实现数字滤波器:实现一阶以及多阶低通、高通和带通滤波器,
并计算响应的频谱;
(3)实现傅立叶变换:实现Fourier变换后的信号图像处理,如二维DFT等;
(4)实现数字信号检测算法:实现一阶和二阶差分算法,并利用此算法进行实时信号检测;
(5)数字信号处理综合应用实验:针对实际的数字信号,分析信号的特征,并基于实验结果进行信号处理算法的比较。
四、实验结果
完成本次实验后,可以实现对不同数字信号的处理,掌握其中滤波器、傅立叶变换等数字信号处理理论,并掌握常规的算法,学会运用算法实现实际信号处理工程。
实验一 信号、系统及系统响应一、 实验目的1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;2、熟悉时域离散系统的时域特性;3、利用卷积方法观察分析系统的时域特性;4、掌握序列傅立叶变换的计算机实现方法,利用序列的傅立叶变换对连续信号、离散信号及系统响应进行频域分析。
二、 实验原理及方法采样是连续信号数字处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系式的理解。
对一个连续信号)(t x a 进行理想采样的过程可用下式表示:)()()(^t p t t xx aa=其中)(^t x a 为)(t x a 的理想采样,p(t)为周期脉冲,即∑∞-∞=-=m nT t t p )()(δ)(^t x a的傅立叶变换为)]([1)(^s m a m j X T j a XΩ-Ω=Ω∑∞-∞=上式表明^)(Ωj Xa为)(Ωj Xa的周期延拓。
其延拓周期为采样角频率(T /2π=Ω)。
只有满足采样定理时,才不会发生频率混叠失真。
在实验时可以用序列的傅立叶变换来计算^)(Ωj X a 。
公式如下:Tw jw ae X j X Ω==Ω|)()(^离散信号和系统在时域均可用序列来表示。
为了在实验中观察分析各种序列的频域特性,通常对)(jw e X 在[0,2π]上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n),有:n jw N n jw k ke m x eX--=∑=)()(1其中,k Mk πω2=,k=0,1,……M-1 时域离散线性非移变系统的输入/输出关系为 ∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(上述卷积运算也可在频域实现)()()(ωωωj j j e H e X eY =三、 实验程序s=yesinput(Please Select The Step Of Experiment:\n 一.(1时域采样序列分析 s=str2num(s); close all;Xb=impseq(0,0,1); Ha=stepseq(1,1,10);Hb=impseq(0,0,3)+2.5*impseq(1,0,3)+2.2*impseq(2,0,3)+impseq(3,0,3); i=0;while(s);%时域采样序列分析 if(s==1) l=1; k=0;while(1)if(k==0)A=yesinput('please input the Amplitude:\n',...444.128,[100,1000]); a=yesinput('please input the Attenuation Coefficient:\n',...222.144,[100,600]); w=yesinput('please input the Angle Frequence(rad/s):\n',...222.144,[100,600]); end k=k+1;fs=yesinput('please input the sample frequence:\n',...1000,[100,1200]); Xa=FF(A,a,w,fs); i=i+1;string+['fs=',num2str(fs)]; figure(i)DFT(Xa,50,string); 1=yesinput 1=str2num(1); end%系统和响应分析else if(s==2)kk=str2num(kk);while(kk)if(kk==1)m=conv(Xb,Hb);N=5;i=i+1;figure(i)string=('hb(n)');Hs=DFT(Hb,4,string);i=i+1;figure(i)string('xb(n)');DFT(Xb,2,string);string=('y(n)=xb(n)*hb(n)');else if (kk==2)m=conv(Ha,Ha);N=19;string=('y(n)=ha(n)*(ha(n)');else if (kk==3)Xc=stepseq(1,1,5);m=conv(Xc,Ha);N=14;string=('y(n)=xc(n)*ha(n)');endendendi=i+1;figure(i)DFT(m,N,string);kk=yesinputkk=str2num(kk);end卷积定理的验证else if(s==3)A=1;a=0.5;w=2,0734;fs=1;Xal=FF(A,a,w,fs);i=i+1;figure(i)string=('The xal(n)(A=1,a=0.4,T=1)'); [Xa,w]DFT(Xal,50,string);i=i+1;figure(i)string =('hb(n)');Hs=DFT(Hb,4,string);Ys=Xs.*Hs;y=conv(Xal,Hb);N=53;i=i+1;figure(i)string=('y(n)=xa(n)*hb(n)');[yy,w]=DFT(y,N,string);i=i+1;figure(i)subplot(2,2,1)plot(w/pi,abs(yy));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title(FT[x(n)*h(n)]');subplot(2,2,3)plot(w/pi,abs(Ys));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title('FT[xs(n)].FT[h(n)]');endendend子函数:离散傅立叶变换及X(n),FT[x(n)]的绘图函数function[c,l]=DFT(x,N,str)n=0:N-1;k=-200:200;w=(pi/100)*k;l=w;c=x*Xc=stepseq(1,1,5);子函数:产生信号function c=FF(A,a,w,fs)n=o:50-1;c=A*exp((-a)*n/fs).*sin(w*n/fs).*stepseq(0,0,49); 子函数:产生脉冲信号function [x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];子函数:产生矩形框信号function [x,n]=stepseq(n0,n1,n2) n=[n1:n2];x=[(n-n0>=0)];四、 实验内容及步骤1、认真复习采样理论,离散信号与系统,线性卷积,序列的傅立叶变换及性质等有关内容,阅读本实验原理与方法。
上机频谱分析过程及结果图 上机实验三:IIR 低通数字滤波器的设计姓名:赵晓磊 学号:赵晓磊 班级:02311301 科目:数字信号处理B一、实验目的1、熟悉冲激响应不变法、双线性变换法设计IIR 数字滤波器的方法。
2、观察对实际正弦组合信号的滤波作用。
二、实验内容及要求1、分别编制采用冲激响应不变法、双线性变换法设计巴特沃思、切贝雪夫I 型,切贝雪夫II 型低通IIR 数字滤波器的程序。
要求的指标如下:通带内幅度特性在低于πω3.0=的频率衰减在1dB 内,阻带在πω6.0=到π之间的频率上衰减至少为20dB 。
抽样频率为2KHz ,求出滤波器的单位取样响应,幅频和相频响应,绘出它们的图,并比较滤波性能。
(1)巴特沃斯,双线性变换法Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [ex p (j w )]|Designed Lowpass Filter Phase Response in radians frequency in pi unitsa r g (H [e x p (j w )](2)巴特沃斯,冲激响应不变法(3)切贝雪夫I 型,双线性变换法(4)切贝雪夫Ⅱ型,双线性变换法综合以上实验结果,可以看出,使用不同的模拟滤波器数字化方法时,滤波器的性能可能产生如下差异:使用冲击响应不变法时,使得数字滤波器的冲激响应完全模仿模拟滤波器的冲激响应,也就是时域逼急良好,而且模拟频率和数字频率之间呈线性关系;但频率响应有混叠效应。
frequency in Hz|H [e x p (j w )]|Designed Lowpass Filter Magnitude Response in dBfrequency in pi units|H [e x p (j w )]|frequency in pi unitsa r g (H [e x p (j w )]Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [e xp (j w )]|frequency in pi unitsa r g (H [e x p (j w )]Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [ex p (j w )]|Designed Lowpass Filter Phase Response in radiansfrequency in pi unitsa r g (H [e x p (j w )]使用双线性变换法时,克服了多值映射的关系,避免了频率响应的混叠现象;在零频率附近,频率关系接近于线性关系,高频处有较大的非线性失真。
数字信号处理实验1--5含代码实验一离散时间信号的时域分析 1. 在MATLAB中利用逻辑关系式n,,0来实现序列,显示范围。
(产生如下,,,n,nn,n,n012图所示的单位脉冲信号的函数为impseq(n0,n1,n2),程序如示例所示),3,n,10并利用impseq函数实现序列:; ,,,,,,yn,2,n,3,,n,6,,xn1nnnn120源代码:impseq.mfunction y=impseq(n0,n1,n2)n=[n1:n2]y=[(n-n0)==0]exp01-1.mfunction impseq(n0,n1,n2)n=-3:1:10y=2*impseq(3,-3,10)+impseq(6,-3,10);stem(n,y)n,,0,,2. 在MATLAB中利用逻辑关系式来实现序列,显示范围。
(自己编写un,nn,n,n012产生单位阶跃信号的函数,函数命名为stepseq(n0,n1,n2)) 并利用编写的stepseq函数实现序列: ,,,,,,yn,un,2,un,2,5,n,10源代码:stepseq.mfunction y=stepseq(n0,n1,n2)n=n1:1:n2y=[(n-n0)>=0]exp01-2.mfunction stepseq(n0,n1,n2)n=-5:1:20y=stepseq(-2,-5,20)+stepseq(2,-5,20)stem(n,y)3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。
如: n ,,,,xn,0.30,n,15源代码:n=0:1:15;x=0.3.^nstem(n,x)4. 在MATLAB中调用函数sin或cos产生正余弦序列,如:π,, ,,,,xn,3sin0.4πn,,5cos0.3πn0,n,20,,5,,源代码:n=0:1:20x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n)stem(n,x)思考题:1.在MATLAB环境下产生单位脉冲序列和单位阶跃序列各有几种方法,如何使用,2.在MATLAB环境下进行序列的相乘运算时应注意什么问题,实验二离散时间系统的时域分析1. 在MATLAB中利用内部函数conv来计算两个有限长序列的卷积。
数字信号处理实验教案五篇范文第一篇:数字信号处理实验教案数字信号处理实验教案信息工程学院-通信工程教研室数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼同学们的独立解决问题的能力。
本讲义在第三版的基础上编写了五个实验,前2个实验属基础性的验证性实验,第3、4、5个实验属基本应用综合性实验。
实验一离散时间信号的MATLAB实现实验二线性卷积与循环卷积的原理及应用实验三频率采样定理实验四离散系统的因果性和稳定性及频率响应特性实验五基于MATLAB的快速傅里叶变换根据教学进度,理论课结束后进行相关实验。
实验一时域离散信号的产生一实验目的(1)了解常用的时域离散信号及其特点。
(2)掌握MATLAB产生常用时域离散信号的方法。
二实验内容(1)编写程序,产生下列离散序列:A.f(n)=δ(n)(-3B.f(n)=e(0.1+j1.6π)n(0(2)一个连续的周期性三角波信号频率为50Hz,信号幅度在0~+2V之间,在窗口上显示2个周期信号波形,对信号的一个周期进行16点采样来获取离散信号。
试显示原连续信号和采样获得的离散信号波形。
(3)一个连续的周期性方波信号频率为200Hz,信号幅度在-1~+1V 之间,在窗口上显示2个周期信号波形,用Fs=4kHz的频率对连续信号进行采样,试显示原连续信号和采样获得的离散信号波形。
三实验步骤(1)在matlab命令窗口中逐行输入下列语句>> n1=-3;n2=4;n0=0;%在起点n1、终点n2的范围内,于n0处产生冲激 >> n=n1:n2;%生成离散信号的时间序列 >> x=[n==n0];%生成离散信号x(n)>> stem(n,x,'filled');%绘制杆状图,且圆心处用实心圆表示>> title('单位脉冲序列');>> xlabel('时间(n)');ylabel('幅度x(n)');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=δ(n),(-3 >> n1=16;a=0.1;w=1.6*pi;>> n=0:n1;>> x=exp((a+j*w)*n);>>subplot(2,1,1),stem(n,real(x));%在指定位置描绘图像>> title('复指数序列的实部');>> subplot(2,1,2),stem(n,imag(x));>> title('复指数序列的虚部');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=e(0.1+j1.6π)n,(0>> f=50;Um=1;nt=2;%输入信号频率、振幅、显示周期 >> N=16;T=1/f;%N为信号一个采样周期的采样点数,T为信号周期 >> dt=T/N;%采样时间间隔 >> n=0:nt*N-1;%建立离散时间的时间序列 >> tn=n*dt;%确定时间序列样点在时间轴上的位置>> f=Um*sawtooth(2*f*pi*tn)+1;>> subplot(2,1,1),stem(tn,f);%显示经采样的信号>> title('离散信号');>> subplot(2,1,2),plot(tn,f);%显示原连续信号 >> title('连续信号');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,显示了原连续信号和采样获得的离散信号波形(4)在matlab命令窗口中逐行输入下列语句>> f=200;Um=1;nt=2;%输入信号频率、振幅、显示周期 >> Fs=4000;N=Fs/f;T=1/f;%输入采样频率、求采样点数N、T为信号周期 >> dt=T/N;%采样时间间隔 >> n=0:nt*N-1;%建立离散时间的时间序列 >> tn=n*dt;%确定时间序列样点在时间轴上的位置>> f=Um*sin(2*f*pi*tn);>> subplot(2,1,2),plot(tn,f);%显示原连续信号 >> title('连续信号');>> subplot(2,1,1),stem(tn,f);%显示经采样的信号 >> title('离散信号');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,显示了原连续信号和采样获得的离散信号波形四思考题(1)如何在matlab下生产f(n)=3sin(nπ/4)(0(2)改变实验步骤中最后两个实验的频率参数,分别重新生成相关的信号?实验二线性卷积与循环卷积的原理及应用一、实验目的(1)掌握两种卷积的原理和两者的异同。
杭州电子科技大学通信工程学院实验报告课程名称:数字信号处理实验实验名称:离散时间系统的时域特性分析指导教师:魏超学生姓名:张之雨学生学号:17081135学生班级:17086911学生专业:信息工程实验日期:2019.10.8一:实验目的二:实验原理三:预习与参考1.所使用的主要函数⑴x=zeros(I,N)作用:产生N个零元素矢量函数。
⑵y=impz(b,a,N)作用:计算系统的冲激响应序列的前N个取样点。
⑶y=filter(b,a,x)作用:系统对输入x进行滤波。
2.相关函数的应用实例四:实验内容以及步骤五:实验结果与数据处理、分析⑴n=0:300;num1=[0.5 0.27 0.77];den1=[1];num2=[0.45 0.5 0.45];den2=[1 -0.53 0.46];xn=cos((20*pi*n)/256)+cos((200*pi*n)/256); y1=filter(num1,den1,xn);y2=filter(num2,den2,xn);subplot(3,1,1)title(1);stem(n,y1)title('系统1输出波形');subplot(3,1,2)stem(n,y2)title('系统2输出波形');subplot(3,1,3)stem(n,xn)title('输入波形');⑵n=0:40;num1=[0.5 0.27 0.77];den1=[1];num2=[0.45 0.5 0.45];den2=[1 -0.53 0.46];hn=0*(n>0)+1*(n==1); //单位冲激函数y1=filter(num1,den1,hn);y2=filter(num2,den2,hn);subplot(2,1,1)stem(n,y1)title('系统1单位冲击响应波形'); subplot(2,1,2)stem(n,y2)title('系统2单位冲击响应波形');⑶clc;clear;n=0:40;D=10;a=3;b=-2;x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;xd=[zeros(1,D) x];num=[0.45 0.5 0.45];den=[1 -0.53 0.46];ic=[0 0];y1=filter(num,den,x1);y2=filter(num,den,x2);y=filter(num,den,x,ic);yd=filter(num,den,xd,ic);yt=a*y1+b*y2;y3=y-yt; //相减证明是否相等N=length(y);d=y-yd(1+D:N+D); //相减证明是否相等subplot(6,1,1)stem(n,y)title('验证时不变性原输出波形')subplot(6,1,2)stem(yd)title('')stem(n,d)title('stem(n,yt)title('')stem(n,y)title('')stem(n,y3)title('⑴x(n) y 1(n)x(n) y 2(n)⑵δ(n) y 1(n)δ(n)y2(n)。
实验5F I R滤波器的设计一、实验目的1.掌握用窗函数法,频率采样法及优化设计法设计FIR 滤波器的原理及方法。
2.熟悉线性相位FIR 滤波器的幅频特性和相频特性。
3.了解各种不同窗函数对滤波器性能的影响。
二、实验内容a)N=45,计算并画出矩形窗、汉明窗、布莱克曼窗的归一化的幅度谱,并比较各自的主要特点。
各自特点:矩形窗函数具有最窄的主瓣宽度,但有最大的旁瓣峰值;汉明窗函数的主瓣稍宽,而旁瓣较小;布莱克曼窗函数主瓣最宽,旁瓣最小。
矩形窗设计的滤波器过渡带最窄,但是阻带最小衰减也最差;布莱克曼窗设计的滤波器阻带衰减最好,过渡带最宽,约为矩形窗设计的三倍。
汉明窗设计的滤波器处于以上二者之间。
b)N=15,带通滤波器的两个通带边界分别是ω1=π,ω2=π。
用汉宁窗设计此线性相位带通滤波器,观察它的实际3dB 和20dB 带宽。
N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N 变化的影响。
N增加,3db带宽和20db带宽分别减小,滤波器特性变好,过渡带变陡,幅频曲线显示其通带较平缓,波动小,阻带衰减大,相频特性曲线显示其相位随频率变化也变大。
c)分别改用矩形窗和布莱克曼窗,设计(2)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点。
矩形窗设计的滤波器过渡带最窄,但阻带最小衰减也最差;汉宁窗设计的滤波器过渡带稍宽,但有较好的阻带衰减;布莱克曼窗设计的滤波器阻带衰减最好,但过渡带最宽。
当使用同种窗设计滤波器时,N越大,主瓣宽度越窄,通带越平坦,过渡带宽越小。
对于同一个N值,当用不同窗设计时,矩形窗的过渡带最窄,但阻带衰减最差;布莱克曼窗的阻带衰减最好,但过渡带最宽;汉明窗的两种特性介于前两者之间。
d)用Kaiser 窗设计一专用线性相位滤波器,N=40,当β=4、6、10 时,分别设计、比较它们的幅频和相频特性,注意β取不同值时的影响。
由图中可以看出,β越大,则窗越窄,过渡带宽越大,主瓣的宽度也相应增加,而频谱的旁瓣越小,阻带最小衰减也越大。
数字信号处理课程设计数字信号处理课程设计(综合实验)班级:电⼦信息⼯程1202X 姓名:X X学号:27指导教师:XXX设计时间:成绩:评语:实验⼀时域采样与频域采样定理的验证实验⼀、设计⽬的1. 时域采样理论与频域采样理论是数字信号处理中的重要理论。
要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;2. 要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作⽤。
⼆、程序运⾏结果1.时域采样定理验证结果:2.频域采样定理验证结果:三、参数与结果分析1. 时域采样参数与结果分析:对模拟信号()ax t以T进⾏时域等间隔理想采样,形成的采样信号的频谱会以采样⾓频率Ωs(Ωs=2π/T)为周期进⾏周期延拓。
采样频率Ωs必须⼤于等于模拟信号最⾼频率的两倍以上,才能使采样信号的频谱不产⽣频谱混叠。
()ax t的最⾼截⽌频率为500HZ,⽽因为采样频率不同,得到的x1(n)、x2(n)、x3(n)的长度不同。
频谱分布也就不同。
x1(n)、x2(n)、x3(n)分别为采样频率为1000HZ、300HZ、200HZ时候的采样序列,⽽进⾏64点DFT之后通过DFT分析频谱后得实验图中的图,可见在采样频率⼤于等于1000时采样后的频谱⽆混叠,采样频率⼩于1000时频谱出现混叠且在Fs/2处最为严重。
2.频域采样参数与结果分析:对信号x(n)的频谱函数进⾏N点等间隔采样,进⾏N点IDFT[()NXk]得到的序列就是原序列x(n)以N 为周期进⾏周期延拓后的主值区序列。
对于给定的x(n)三⾓波序列其长度为27点则由频率域采样定理可知当进⾏32点采样后进应该⽆混叠⽽16点采样后进⾏IFFT得到的x(n)有混叠,由实验的图形可知频域采样定理的正确性。
四、思考题如果序列x(n)的长度为M,希望得到其频谱在[0, 2π]上的N点等间隔采样,当N实验⼆正余弦信号的谱分析⼀、设计⽬的1.⽤DFT实现对正余弦信号的谱分析;2.观察DFT长度和窗函数长度对频谱的影响;3.对DFT进⾏谱分析中的误差现象获得感性认识。
开课学院及实验室:电子楼3172018年 4月 29 日3()x n :用14()()x n R n =以8为周期进行周期性延拓形成地周期序列.(1> 分别以变换区间N =8,16,32,对14()()x n R n =进行DFT(FFT>,画出相应地幅频特性曲线;(2> 分别以变换区间N =4,8,16,对x 2(n >分别进行DFT(FFT>,画出相应地幅频特性曲线; (3> 对x 3(n >进行频谱分析,并选择变换区间,画出幅频特性曲线.<二)连续信号 1. 实验信号:1()()x t R t τ=选择 1.5ms τ=,式中()R t τ地波形以及幅度特性如图7.1所示.2()sin(2/8)x t ft ππ=+式中频率f 自己选择.3()cos8cos16cos 20x t t t t πππ=++2. 分别对三种模拟信号选择采样频率和采样点数.对1()x t ()R t τ=,选择采样频率4s f kHz =,8kHz ,16kHz ,采样点数用τ.s f 计算.对2()sin(2/8)x t ft ππ=+,周期1/T f =,频率f 自己选择,采样频率4s f f =,观测时间0.5p T T =,T ,2T ,采样点数用p s T f 计算.图5.1 R(t>地波形及其幅度特性对3()cos8cos16cos 20x t t t t πππ=++,选择采用频率64s f Hz =,采样点数为16,32,64. 3. 分别对它们转换成序列,按顺序用123(),(),()x n x n x n 表示.4. 分别对它们进行FFT.如果采样点数不满足2地整数幂,可以通过序列尾部加0满足.5. 计算幅度特性并进行打印.五、实验过程原始记录<数据、图表、计算等)(一> 离散信号%14()()x n R n = n=0:1:10。
华北电力大学实验报告实验环境MATLAB 7.1实验名称实验一:FFT的应用实验目的1、熟悉MATLAB在数字信号处理中的应用。
2、掌握利用FFT计算序列线性卷积的基本原理及编程实现。
3、掌握对连续信号进行采样的基本原理和方法,并利用FFT对信号进行频谱分析。
实验原理1.线性卷积和圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为的长度为L+M-1。
x(n)和h(n)的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以用圆周卷积来计算,必须选择;同时为了能使用基-2FFT完成卷积运算,要求。
采用补零的办法使x(n)实验原理和h(n)的长度均为N。
(2)计算x(n)和h(n)的N点FFT(3)组成乘积(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)3.分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。
为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。
这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。
重叠保留法:设x(n)的长度为,h(n)的长度为M。
我们把序列x(n)分成多段N点序列(n),每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。
计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。
实验5 IIR和FIR滤波器过滤信号的实现及比较:以心电信号为例一、实验目的1、探究心电信号的初步分析。
心电信号(频率-般在0.05Hz ~100Hz范围)是一种基本的人体生理信号,体表检测人体心电信号中常带有工频干扰(50HZ)、基线漂移(频率低于0.5Hz)和肌电干扰等各种噪声。
2、为了得到不失真的原始心电信号,需要滤波预处理。
设计数字低通滤波器、高通滤波器、带阻滤波器,用MATLAB软件对含噪心电信号分别进行高通、带阻和低通滤波等处理,将心电信号中的低频基线漂移、50Hz 工频高频和高频杂波进行滤除。
3、通过观察对含噪心电图信号的滤波作用,获得数字滤波的感性知识。
二、实验要求及内容实验题目:给定一组干净心电信号数据,数据文件存于C盘Ecg.txt。
采样频率Fs = 500Hz。
1、编写程序读出心电信号,并在屏幕上打印出其波形。
2、产生模拟高斯白噪声信号,与干净心电混合,设计一个IIR低通滤波器和一个FIR 低通滤波器分别滤除心电信号中的白噪声干扰,调整白噪声信噪比大小,对滤波前后的心电信号的频谱进行分析比较。
其中数字低通滤波器指标要求,通带截止频率Wp=0.1π,阻带截止频率Ws=0.16π,阻带衰减不小于15 dB,通带衰减不大于1 dB。
要求:编写一个IIR低通滤波器和一个FIR低通滤波器仿真程序,在屏幕上打印出数字滤波器的频率区间[0, π]上的幅频响应特性由线(H(e^jw)) ;计算其对含噪心电信号的低通滤波响应序列,并在屏幕上打印出干净心电信号波形,含工频干扰的心电信号波形以及IIR低通滤波和FIR低通后的信号波形,并进行比较;同时对滤波前后的心电信号的频谱进行分析比较,并在屏幕上打印出滤波前后的心电信号的频谱,观察其变化。
3、产生模拟工频信号,与干净心电混合,设计一个带阻滤波器(50Hz 陷波器)滤除心电信号中的电源线干扰,调整工频幅度大小,对滤波前后的心电信号的频谱进行分析比较。
华北电力大学实验报告实验环境MATLAB 7.1实验名称实验一:FFT的应用实验目的1、熟悉MATLAB在数字信号处理中的应用。
2、掌握利用FFT计算序列线性卷积的基本原理及编程实现。
3、掌握对连续信号进行采样的基本原理和方法,并利用FFT对信号进行频谱分析。
实验原理1.线性卷积和圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为的长度为L+M-1。
x(n)和h(n)的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以用圆周卷积来计算,必须选择;同时为了能使用基-2FFT完成卷积运算,要求。
采用补零的办法使x(n)实验原理和h(n)的长度均为N。
(2)计算x(n)和h(n)的N点FFT(3)组成乘积(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)3.分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。
为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。
这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。
重叠保留法:设x(n)的长度为,h(n)的长度为M。
我们把序列x(n)分成多段N点序列(n),每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。
计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。
杭州电子科技大学通信工程学院实验报告课程名称:数字信号处理实验实验名称:应用FFT实现信号频谱分析指导教师:魏超学生姓名:张之雨学生学号:17081135学生班级:17086911学生专业:信息工程实验日期:2019.11.5一:实验目的二:实验原理三:预习与参考1.所使用的主要函数2.相关函数的应用实例四:实验内容以及步骤五:实验结果与数据处理、分析⑵clc;clear all;N=100;N1=5;n=-5:5;k=-200:200;n1=0:N-1;v1n=(0.9).^n;v2n=cos((2*pi*n1)/N1);v3n=0.9*sin((2*pi*n)/N1)+0.6*sin((2*pi*n)/(N1/3)); subplot(3,1,1);[Xk1]=fft(v1n,N);stem(Xk1);subplot(3,1,2);[Xk2]=fft(v2n,N);stem(Xk2);subplot(3,1,3);[Xk3]=fft(v3n,N);stem(Xk3);⑶clc;clear all;n=-5:5;x=0.9.^n;k=-200:200;X=x*(exp(-j*pi/100)).^(n'*k);subplot(4,1,1);[Xk1]=fft(x,2);stem(Xk1);axis([0,100,-15,15]);title('N=2时的图像');subplot(4,1,2);[Xk2]=fft(x,4);stem(Xk2);axis([0,100,-15,15]);title('N=4时的图像');subplot(4,1,3);[Xk3]=fft(x,1024);stem(Xk3);axis([0,1000,-15,15]);title('N=1024时的图像');subplot(4,1,4);stem(X);axis([0,1000,-15,15]);title('傅立叶变换理论值');实验证明,取的点越多,其快速傅立叶变换图像越接近理论值。
北京工商大学数字信号处理课程设计实验报告班级:信息081学号:姓名:同组同学姓名:成绩:2011年7月一. 设计任务 1. 设计目的:(1)熟悉和巩固模拟滤波器的设计方法和原理 (2)掌握Butterworth/Chebyshev 滤波器设计方法 (3)实现滤波器设计的有关经典算法(4)熟练掌握使用高级语言程序设计各种要求的数字滤波器 (5)熟练掌握双线性变换方法 2.设计技术指标:(1)按要求设计Butterworth 型数字低通滤波器, (2)性能指标如下:① 通带截止频率πω2.0=p ; ② 通带最大衰减αp =3dB ; ③ 阻带起始频率πω3.0=s ; ④ 阻带最小衰减αs =20dB ;3.设计要求:(1) 根据模拟滤波器的性能指标,确定数字滤波器指标; (2) 程序应具有通用性;(3)采用双线性变换法,设计满足上述性能指标要求的Butterworth 型数字低通滤波器;(4)由软件直接给出数字滤波器的级联型结构;(5)确定数字滤波器的频率响应(幅值响应和相位响应)及群延迟等;4.软件要求:基本要求:软件能根据滤波器性能技术指标要求,能自动设计Butterworth 型、Chebyshev 型或其他滤波器;5.其它要求:(1)学习并巩固模拟滤波器(Butterworth,Chebyshev 型滤波器)设计的基本概念和基本理论;(2)熟悉Butterworth,Chebyshev 型滤波器设计的有关公式; (3)掌握归一化设计方法中各种表格的应用方法;二、实验原理与计算方法1、双线性变换法设计IIR 低通数字滤波器的基本原理和算法双线性变换法设计数字滤波器,采用了二次映射的方法,就是先将整个s 平面压缩到s1平面的一个T j T j ππ~-的横形条带范围内,然后再将这个条带映射到z 平面上,就能建立s 平面到z 平面的一一对应关系。
对于低通数字滤波器,映射关系为z z T z z T s ++-=+-=--11211211 (1) 其中T 为抽样周期。
实验5 IIR和FIR滤波器过滤信号的实现及比较:以心电信号为例一、实验目的1、探究心电信号的初步分析。
心电信号(频率-般在0.05Hz ~100Hz范围)是一种基本的人体生理信号,体表检测人体心电信号中常带有工频干扰(50HZ)、基线漂移(频率低于0.5Hz)和肌电干扰等各种噪声。
2、为了得到不失真的原始心电信号,需要滤波预处理。
设计数字低通滤波器、高通滤波器、带阻滤波器,用MATLAB软件对含噪心电信号分别进行高通、带阻和低通滤波等处理,将心电信号中的低频基线漂移、50Hz 工频高频和高频杂波进行滤除。
3、通过观察对含噪心电图信号的滤波作用,获得数字滤波的感性知识。
二、实验要求及内容实验题目:给定一组干净心电信号数据,数据文件存于C盘Ecg.txt。
采样频率Fs = 500Hz。
1、编写程序读出心电信号,并在屏幕上打印出其波形。
2、产生模拟高斯白噪声信号,与干净心电混合,设计一个IIR低通滤波器和一个FIR 低通滤波器分别滤除心电信号中的白噪声干扰,调整白噪声信噪比大小,对滤波前后的心电信号的频谱进行分析比较。
其中数字低通滤波器指标要求,通带截止频率Wp=0.1π,阻带截止频率Ws=0.16π,阻带衰减不小于15 dB,通带衰减不大于1 dB。
要求:编写一个IIR低通滤波器和一个FIR低通滤波器仿真程序,在屏幕上打印出数字滤波器的频率区间[0, π]上的幅频响应特性由线(H(e^jw)) ;计算其对含噪心电信号的低通滤波响应序列,并在屏幕上打印出干净心电信号波形,含工频干扰的心电信号波形以及IIR低通滤波和FIR低通后的信号波形,并进行比较;同时对滤波前后的心电信号的频谱进行分析比较,并在屏幕上打印出滤波前后的心电信号的频谱,观察其变化。
3、产生模拟工频信号,与干净心电混合,设计一个带阻滤波器(50Hz 陷波器)滤除心电信号中的电源线干扰,调整工频幅度大小,对滤波前后的心电信号的频谱进行分析比较。
其中带阻滤波器指标要求,通带下限频率Wp1=0.18π,阻带下截止频率Ws1=0.192 π,阻带上截止频率Ws2=0.208π,通带上限频率Wp2=0.22π,阻带衰减不小于15 dB, 通带衰减不大于1 dB。
要求:编写IIR带阻滤波器仿真程序,在屏幕上打印出数字滤波器的频率区间[0, π]上的幅频响应特性由线(H(e^jw ));计算其对含工频干扰的心电信号的带阻滤波响应序列,并在屏幕上打印出干净心电信号波形,含工频干扰的心电信号波形以及滤波后的信号波形,并进行比较;同时对滤波前后的心电信号的频谱进行分析比较,并在屏幕上打印出滤波前后的心电信号的频谱,观察其变化。
4、产生模拟基线漂移信号,与干净心电信号混合,设计一个高通滤波器滤除心电信号中的基线低频干扰,调整基线的幅度大小,对滤波前后的心电信号的频谱进行分析比较。
其中,高通滤波器指标要求,通带截止频率Wp=0.0028π,阻带截止频率Ws=0.0012π,阻带衰减不小于15 dB,通带衰减不大于1 dB。
要求:编写IIR高通滤波器(或FIR高通滤波器)仿真程序,在屏幕上打印出数字滤波器的频率区间[0,π]上的幅频响应特性由线(H(e^jw);计算其对含基线低频干扰的心电信号的高通滤波响应序列,并在屏幕上打印出干净心电信号波形,含基线低频干扰的心电信号波形以及滤波后的信号波形,并进行比较;同时对滤波前后的心电信号的频谱进行分析比较,并在屏幕上打印出滤波前后的心电信号的频谱,观察其变化。
实验代码:一、clear,clc;val = importdata('Ecg.txt');signal = val(1,1:1800);fs = 500;figure(1);subplot(1,1,1);plot(signal);title('干净的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;二、clear,clc;val = importdata('Ecg.txt');signal = val(1,1:1800);Fs = 500;figure(2);subplot(4,1,1);plot(signal);title('干净的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;XK1=fft(signal,1800);magXK1=abs(XK1); %幅频特性figure(3);subplot(4,1,1);k1=0:length(magXK1)-1;stem(k1,magXK1,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('干净的ECG信号频谱');% 加入高斯白噪声信号signal1 = awgn(signal,10,'measured'); figure(2);subplot(4,1,2);plot(signal1);title('含噪声的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;XK2=fft(signal1,1800);magXK2=abs(XK2); %幅频特性figure(3);subplot(4,1,2);k2=0:length(magXK2)-1;stem(k2,magXK2,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('含噪声的ECG信号频谱');% IIR低通滤波器设计wp=0.1*pi;ws=0.16*pi;Fp=2*Fs*tan(wp/2);Fc=2*Fs*tan(ws/2);Rp=1;Rs=15;[N,Wn] = buttord(Fp,Fc,Rp,Rs,'s');[Z,P,K] = buttap(N);[Bap,Aap] = zp2tf(Z,P,K);[b,a] = lp2lp(Bap,Aap,Wn);[bz,az] = bilinear(b,a,Fs);[H1,W]=freqz(bz,az);y1=filter(bz,az,signal1);figure(1);subplot(2,1,1);plot(W/pi,20*log10(abs(H1)));xlabel('\omega/\pi');ylabel('幅度(dB)');title('IIR低通频谱');grid on;figure(2);subplot(4,1,3);plot(y1);title('IIR滤波');xlabel('采样点');ylabel('幅值(dB)');grid on;XK3=fft(y1,1800);magXK3=abs(XK3); %幅频特性figure(3);subplot(4,1,3);k3=0:length(magXK3)-1;stem(k3,magXK3,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('IIR低通滤波后的ECG信号频谱'); % FIR低通滤波器设计wp=0.1*pi;ws=0.16*pi;wdelta=ws-wp;N=ceil(8*pi/wdelta);wn=(wp+ws)/2;h=fir1(N-1,wn/pi,hanning(N));[H2,W2]=freqz(h,1,512);y2=conv(signal1, h);figure(1);subplot(2,1,2);plot(W/pi,20*log10(abs(H2)));xlabel('\omega/\pi');ylabel('幅度(dB)');title('FIR低通频谱');grid on;figure(2);subplot(4,1,4);plot(y2);title('FIR滤波')xlabel('采样点');ylabel('幅值(dB)');grid on;XK4=fft(y2,1800);magXK4=abs(XK4); %幅频特性figure(3);subplot(4,1,4);k4=0:length(magXK4)-1;stem(k4,magXK4,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('FIR低通滤波后的ECG信号频谱');三、clear,clc;val = importdata('Ecg.txt');signal = val(1,1:1800);Fs = 500;figure(2);subplot(3,1,1);plot(signal);title('干净的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;XK1=fft(signal,1800);magXK1=abs(XK1); %幅频特性figure(3);subplot(3,1,1);k1=0:length(magXK1)-1;stem(k1,magXK1,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('干净的ECG信号频谱');% 加入工频信号av=100;f0=50;t=1:length(signal);noise2=av*cos(2*pi*f0*t/Fs);signal2=noise2+signal;figure(2);subplot(3,1,2);plot(signal2);title('含干扰的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;XK2=fft(signal2,1800);magXK2=abs(XK2); %幅频特性figure(3);subplot(3,1,2);k2=0:length(magXK2)-1;stem(k2,magXK2,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('含干扰的ECG信号频谱');% IIR带阻滤波器设计wp = [0.18,0.22];ws = [0.192,0.208];Rp = 1;Rs = 15;[N,Wn] = buttord(wp,ws,Rp,Rs,'s'); [b,a] = butter(N,Wn,'stop');n=0:0.001:pi;[H,W] = freqz(b,a,n);[h,t]=impz(b,a);y=conv(signal2,h); % 进行带阻滤波figure(1);subplot(1,1,1);plot(W/pi,20*log10(abs(H)));xlabel('\omega/\pi');ylabel('幅度(dB)');title('IIR带阻频谱');grid on;figure(2);subplot(3,1,3);plot(y);title('IIR带阻滤波');xlabel('采样点');ylabel('幅值(dB)');grid on;XK3=fft(y,1800);magXK3=abs(XK3); %幅频特性figure(3);subplot(3,1,3);k3=0:length(magXK3)-1;stem(k3,magXK3,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('IIR带阻滤波后的信号频谱');四、clear,clc;val = importdata('Ecg.txt');signal = val(1,1:1800);Fs = 500;figure(2);subplot(3,1,1);plot(signal);title('干净的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;XK1=fft(signal,1800);magXK1=abs(XK1); %幅频特性figure(3);subplot(3,1,1);k1=0:length(magXK1)-1;stem(k1,magXK1,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('干净的ECG信号频谱');% 加入基线漂移信号n1=length(signal)/3;x1=zeros(1,n1);t=1:length(signal)-n1;x2=(length(signal)-n1)/2000*(t-1)+1; noise3=[x1,x2];signal3=noise3+signal;figure(2);subplot(3,1,2);plot(signal3);title('含基线漂移的ECG信号');xlabel('采样点');ylabel('幅值(dB)');grid on;XK2=fft(signal3,1800);magXK2=abs(XK2); %幅频特性figure(3);subplot(3,1,2);k2=0:length(magXK2)-1;stem(k2,magXK2,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('含基线漂移的ECG信号频谱');% IIR高通滤波器设计wp = 0.0028*pi;ws = 0.0012*pi;Rp = 1;Rs = 15;wp1=2*Fs*tan(wp/2);ws1=2*Fs*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); [b,a]=butter(N,Wn,'high','s');[Z,P,K]=buttap(N);[bz,az]=bilinear(b,a,Fs);[H,W]=freqz(bz,az);y=filter(bz,az,signal3); % 进行高通滤波figure(1);subplot(1,1,1);plot(W/pi,20*log10(abs(H)));xlabel('\omega/\pi');ylabel('幅度(dB)');title('IIR高通频谱');grid on;figure(2);subplot(3,1,3);plot(y);title('IIR高通滤波');xlabel('采样点');ylabel('幅值(dB)');grid on;XK3=fft(y,1800);magXK3=abs(XK3); %幅频特性figure(3);subplot(3,1,3);k3=0:length(magXK3)-1;stem(k3,magXK3,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('IIR高通滤波后的信号频谱');三、实验结果与分析:一、1.心电信号波形如下图所示经检验,该结果符合题目要求。