哈尔滨工程大学数字信号处理实验六
数字信号处理综合实验

数字信号处理综合实验一、实验目的本实验旨在通过数字信号处理技术的综合应用,加深对数字信号处理原理和方法的理解,提高学生的实际操作能力和问题解决能力。
二、实验原理数字信号处理是利用数字计算机对摹拟信号进行采样、量化和编码,然后进行数字运算和处理的技术。
本实验主要涉及以下几个方面的内容:1. 信号采集与预处理:通过摹拟信号采集电路将摹拟信号转换为数字信号,然后进行预处理,如滤波、降噪等。
2. 数字滤波器设计:设计和实现数字滤波器,包括FIR滤波器和IIR滤波器,可以对信号进行滤波处理,提取感兴趣的频率成份。
3. 时域和频域分析:对采集到的信号进行时域和频域分析,如时域波形显示、功率谱密度估计等,可以了解信号的时域和频域特性。
4. 信号重构与恢复:通过信号重构算法对采集到的信号进行恢复,如插值、外推等,可以还原信号的原始特征。
三、实验内容根据实验原理,本实验的具体内容包括以下几个部份:1. 信号采集与预处理a. 使用摹拟信号采集电路将摹拟信号转换为数字信号,并通过示波器显示采集到的信号波形。
b. 对采集到的信号进行预处理,如去除噪声、滤波等,确保信号质量。
2. 数字滤波器设计a. 设计并实现FIR滤波器,选择合适的滤波器类型和参数,对采集到的信号进行滤波处理。
b. 设计并实现IIR滤波器,选择合适的滤波器类型和参数,对采集到的信号进行滤波处理。
3. 时域和频域分析a. 对采集到的信号进行时域分析,绘制信号的时域波形图,并计算信号的均值、方差等统计指标。
b. 对采集到的信号进行频域分析,绘制信号的功率谱密度图,并计算信号的频域特性。
4. 信号重构与恢复a. 使用插值算法对采集到的信号进行重构,恢复信号的原始特征。
b. 使用外推算法对采集到的信号进行恢复,还原信号的原始特征。
四、实验步骤1. 搭建信号采集电路,将摹拟信号转换为数字信号,并通过示波器显示采集到的信号波形。
2. 对采集到的信号进行预处理,如去除噪声、滤波等,确保信号质量。
数字信号处理实验文档

实验任务:1、给出音频信号的时域和频谱特性;2、设计一个IIR数字滤波器,给出滤波器的时域和频谱特性,并利用滤波器对音频信号进行滤波,给出滤波结果(滤波后的时域和频谱特性);3、设计一个FIR数字滤波器,给出滤波器的时域和频谱特性,并利用滤波器对音频信号进行滤波,给出滤波结果(滤波后的时域和频谱特性)。
实验原理:采样频率、位数及采样定理采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。
通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。
采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就越高,录制和回放的声音就越真实。
我们首先要知道:电脑中的声音文件是用数字0和1来表示的。
所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。
反之,在播放时则是把数字信号还原成模拟声音信号输出。
采样定理又称奈奎斯特定理,在进行模拟/数字信号的转换过程中,当采样频率fs不小于信号中最高频率fm的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。
IIR数字滤波器设计原理利用双线性变换设计IIR滤波器(巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。
如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率Wp和Ws的转换,对ap和as 指标不作变化。
边界频率的转换关系为∩=2/T tan(w/2)。
接着,按照模拟低通滤波器的技术指标根据相应设计公式求出滤波器的阶数N 和3dB截止频率∩c ;根据阶数N查巴特沃斯归一化低通滤波器参数表,得到归一化传输函数Ha(p);最后,将p=s/ ∩c 代入Ha(p)去归一,得到实际的模拟滤波器传输函数Ha(s)。
数字信号处理实验六报告

实验六 频域抽样定理和音频信号的处理实验报告 (一)频域抽样定理给定信号1, 013()27, 14260, n n x n n n +≤≤⎧⎪=-≤≤⎨⎪⎩其它 1.利用DTFT 计算信号的频谱()j X e ω,一个周期内角频率离散为M=1024点,画出频谱图,标明坐标轴。
n=0:100; %设定n 及其取值范围for n1=0:13 %对于n 处于不同的取值范围将n 代入不同的表达式xn(n1+1)=n1+1;endfor n2=14:26xn(n2+1)=27-n2;endfor n3=27:100xn(n3+1)=0;endM=1024; %设定抽样离散点的个数k=0:M-1; %设定k 的取值范围w=2*pi*k/M; %定义数字角频率[X,w] = dtft2( xn,n, M ) %调用dtft2子程序求频谱plot(w,abs(X)); %画出幅度值的连续图像xlabel('w/rad');ylabel('|X(exp(jw))|');title(' M=1024时的信号频谱图像'); %标明图像的横纵坐标和图像标题function [X,w] = dtft2(xn, n, M ) %定义x(n)的DTFT 函数w=0:2*pi/M:2*pi-2*pi/M; %将数字角频率w 离散化L=length(n); %设定L 为序列n 的长度 for (k=1:M) %外层循环,w 循环M 次sum=0; %每确定一个w 值,将sum 赋初值为零for (m=1:L) %内层循环,对n 求和,循环次数为n 的长度sum=sum+xn(m)*exp(-j*w(k)*n(m)); %求和X(k)=sum; %把每一次各x(n)的和的总值赋给X ,然后开始对下一个w 的求和过程end %内层循环结束end%外层循环结束M=1024时的信号频谱图像如图1-1所示:图1-1 M=1024时的信号频谱图像2.分别对信号的频谱()jX eω在区间π[0,2]上等间隔抽样16点和32点,得到32()X k和16()X k。
数字信号处理实验报告_五个实验

实验一 信号、系统及系统响应一、 实验目的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、认真复习采样理论,离散信号与系统,线性卷积,序列的傅立叶变换及性质等有关内容,阅读本实验原理与方法。
最新数字信号处理实验报告

最新数字信号处理实验报告一、实验目的本次实验旨在加深对数字信号处理(DSP)理论的理解,并通过实践操作掌握数字信号处理的基本方法和技术。
通过实验,学习如何使用相关软件工具进行信号的采集、分析、处理和重构,提高解决实际问题的能力。
二、实验内容1. 信号采集与分析- 使用数字示波器采集模拟信号,并将其转换为数字信号。
- 利用傅里叶变换(FFT)分析信号的频谱特性。
- 观察并记录信号的时域和频域特性。
2. 滤波器设计与实现- 设计低通、高通、带通和带阻滤波器。
- 通过编程实现上述滤波器,并测试其性能。
- 分析滤波器对信号的影响,并调整参数以优化性能。
3. 信号重构实验- 应用所学滤波器对采集的信号进行去噪处理。
- 使用逆傅里叶变换(IFFT)重构经过滤波处理的信号。
- 比较重构信号与原始信号的差异,评估处理效果。
三、实验设备与材料- 计算机及DSP相关软件(如MATLAB、LabVIEW等)- 数字示波器- 模拟信号发生器- 数据采集卡四、实验步骤1. 信号采集- 连接并设置好数字示波器和模拟信号发生器。
- 生成一系列不同频率和幅度的模拟信号。
- 通过数据采集卡将模拟信号转换为数字信号。
2. 滤波器设计- 在DSP软件中设计所需的滤波器,并编写相应的程序代码。
- 调整滤波器参数,如截止频率、增益等,以达到预期的滤波效果。
3. 信号处理与重构- 应用设计的滤波器对采集的数字信号进行处理。
- 利用IFFT对处理后的信号进行重构。
- 通过对比原始信号和重构信号,评估滤波器的性能。
五、实验结果与分析- 展示信号在时域和频域的分析结果。
- 描述滤波器设计参数及其对信号处理的影响。
- 分析重构信号的质量,包括信噪比、失真度等指标。
六、实验结论- 总结实验中所学习到的数字信号处理的基本概念和方法。
- 讨论实验中遇到的问题及其解决方案。
- 提出对实验方法和过程的改进建议。
七、参考文献- 列出实验过程中参考的书籍、文章和其他资源。
哈工程数字信号处理实验六离散时间滤波器

实验六 离散时间滤波器一、实验名称离散时间滤波器设计二、实验目的:1、掌握利用脉冲响应不变法设计IIR 数字滤波器的原理及具体方法。
2、加深理解数字滤波器与连续时间滤波器之间的技术转化。
3、掌握脉冲响应不变法设计IIR 数字滤波器的优缺点及使用范围。
4、掌握利用双线性变换法设计IIR 数字滤波器的原理及具体方法。
5、深入理解利用双线性变换法设计IIR 数字滤波器的优缺点及使用范围。
三、实验原理:1、脉冲响应不变法变换原理脉冲响应不变法将模拟滤波器的s 平面变换成数字滤波器的z 平面,从而将模拟滤波器映射成数字滤波器。
IIR 滤波器的系数函数为1-z (或z )的有理分式,即 ∑∑=-=--=Nk kk M k k kz a z b z H 101)( 一般满足N M ≤。
⑴转换思路:)(H )()(h )(h )(z n h nT t s H z a a −−→−=−−−→−−−−−→−变换时域采样拉普拉斯逆变换若模拟滤波器的系统函数H (s )只有单阶极点,且假定分母的阶次大于分子的阶次,表达式:∑=--=Nk T s k z e TA z H k 111)( ⑵s 平面与z 平面之间的映射关系。
Ω+==j s re z j σω→=→=→ΩT j T jw sT e e re e z σTe r T Ω==ωσ IIR 数字滤波器设计的重要环节式模拟低通滤波器的设计,典型的模拟低通滤波器有巴特沃兹和切比雪夫等滤波器。
由模拟低通滤波器经过相应的复频率转换为H (s ),由H (s )经过脉冲响应不变法就得到所需要的IIR 数字滤波器H (z )。
Matlab 信号处理工具箱中提供了IIR 滤波器设计的函数,常用的函数:IIR 滤波器阶数选择Buttord--巴特沃兹滤波器阶数选择。
Cheb1ord--切比雪夫I 型滤波器阶数选择。
Cheb2ord--切比雪夫II 型滤波器阶数选择。
IIR 滤波器设计Butter--巴特沃兹滤波器设计。
数字信号处理实验报告

数字信号处理实验报告实验一:频谱分析与采样定理一、实验目的1.观察模拟信号经理想采样后的频谱变化关系。
2.验证采样定理,观察欠采样时产生的频谱混叠现象3.加深对DFT算法原理和基本性质的理解4.熟悉FFT算法原理和FFT的应用二、实验原理根据采样定理,对给定信号确定采样频率,观察信号的频谱三、实验内容和步骤实验内容(1)在给定信号为:1.x(t)=cos(100*π*at)2.x(t)=exp(-at)3.x(t)=exp(-at)cos(100*π*at)其中a为实验者的学号,用DFT分析上述各信号的频谱结构,选取不同的采样频率和截取长度,试分析频谱发生的变化。
实验内容(2)设x(n)=cos(0.48*π*n)+ cos(0.52*π*n),对其进行以下频谱分析:10点DFT,64点DFT,及在10点序列后补零至64点的DFT 试分析这三种频谱的特点。
四、实验步骤1.复习采样理论、DFT的定义、性质和用DFT作谱分析的有关内容。
2.复习FFT算法原理和基本思想。
3.确定实验给定信号的采样频率,编制对采样后信号进行频谱分析的程序五、实验程序和结果实验1内容(1)N=L/T+1;t=0:T:L;a=48;D1=2*pi/(N*T); % 求出频率分辨率k1=floor((-(N-1)/2):((N-1)/2)); % 求对称于零频率的FFT位置向量%%%%%%%%%%%%%%%%%%%%%%%%%figure(1),x1=cos(100*pi*a*t);y1=T*fftshift(fft(x1));%虽然原来是周期信号,但做了截断后,仍可当作非周期信号。
subplot(2,1,1),plot(t,x1);title('正弦信号');subplot(2,1,2),plot(k1*D1,abs(y1));title('正弦信号频谱'); %%%%%%%%%%%%%%%%%%%%% figure(2), x2=exp(-a*t);y2=T*fftshift(fft(x2));%有限长(长度为N)离散时间信号x1的dft 再乘T 来近似模拟信号的频谱,长度为Nsubplot(2,1,1),plot(t,x2);title('指数信号');subplot(2,1,2),plot(k1*D1,abs(y2));title('指数信号频谱'); %%%%%%%%%%%%%%%%%%%%% figure(3), x3=x1.*x2;y3=T*fftshift(fft(x3))subplot(2,1,1),plot(t,x3);title('两信号相乘');subplot(2,1,2),plot(k1*D1,abs(y3));title('两信号相乘频谱');0.020.040.060.080.10.120.140.16-1-0.500.51正弦信号-4000-3000-2000-10000100020003000400000.020.040.06正弦信号频谱00.020.040.060.080.10.120.140.160.51-4000-3000-2000-10000100020003000400000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.16-1-0.500.51两信号相乘-4000-3000-2000-10000100020003000400000.0050.010.015两信号相乘频谱T=0.0005 L=0.150.020.040.060.080.10.120.140.16-1-0.500.51-8000-6000-4000-2000200040006000800000.020.040.060.08正弦信号频谱00.020.040.060.080.10.120.140.160.51指数信号-8000-6000-4000-20000200040006000800000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.16-1-0.500.51-8000-6000-4000-20000200040006000800000.0050.010.015两信号相乘频谱T=0.002 L=0.150.020.040.060.080.10.120.140.16-1-0.500.51正弦信号-2000-1500-1000-50050010001500200000.020.040.060.08正弦信号频谱00.020.040.060.080.10.120.140.160.51-2000-1500-1000-500050010001500200000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.16-1-0.500.51两信号相乘-2000-1500-1000-500050010001500200000.0050.010.015两信号相乘频谱T=0.001 L=0.180.020.040.060.080.10.120.140.160.18-1-0.500.51-4000-3000-2000-1000100020003000400000.020.040.060.08正弦信号频谱00.020.040.060.080.10.120.140.160.180.51指数信号-4000-3000-2000-10000100020003000400000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.160.18-1-0.500.51-4000-3000-2000-10000100020003000400000.0050.010.015两信号相乘频谱T=0.001 L=0.120.020.040.060.080.10.12-1-0.500.51正弦信号-4000-3000-2000-10000100020003000400000.020.040.06正弦信号频谱00.020.040.060.080.10.120.51-4000-3000-2000-10000100020003000400000.010.020.03指数信号频谱0.020.040.060.080.10.12-1-0.500.51两信号相乘-4000-3000-2000-10000100020003000400000.0050.010.015两信号相乘频谱实验1内容(2)>> N=10;n=1:NT=1x1=cos(0.48*pi*n*T)+cos(0.52*pi*n*T)X1=fft(x1,10)k=1:N;w=2*pi*k/10subplot(3,2,1);stem(n,x1);axis([0,10,-3,3]);title('信号x(n)');subplot(3,2,2);stem(w/pi,abs(X1));axis([0,1,0,10]);title('DFTx(n)');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N2=100;n2=1:N2T=1x1=cos(0.48*pi*[1:10]*T)+cos(0.52*pi*[1:10]*T)x2=[x1,zeros(1,90)]X2=fft(x2,N2)k2=1:N2;w2=2*pi*k2/100subplot(3,2,3);stem(x2);axis([0,100,-3,3]);title('信号x(n)补零');subplot(3,2,4);plot(w2/pi,abs(X2));axis([0,1,0,10]);title('DFTx(n)');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N3=100;n3=1:N3T=1x3=cos(0.48*pi*n3*T)+cos(0.52*pi*n3*T)X3=fft(x3,100)k3=1:N3;w3=2*pi*k3/100subplot(3,2,5);stem(n3,x3);axis([0,100,-3,3]);title('信号x(n)');subplot(3,2,6);stem(w3/pi,abs(X3));axis([0,1,0,10]);title('DFTx(n)');n =1 2 3 4 5 6 7 8 9 10 T =1510-202信号x(n)0.510510DFTx(n)50100信号x(n)补零0.510510DFTx(n)50100信号x(n)DFTx(n)实验二 卷积定理一、实验目的通过本实验,验证卷积定理,掌握利用DFT 和FFT 计算线性卷积的方法。
数字信号处理实验报告

数字信号处理实验报告实验一:混叠现象的时域与频域表现实验原理:当采样频率Fs不满足采样定理,会在0.5Fs附近引起频谱混叠,造成频谱分析误差。
实验过程:考虑频率分别为3Hz,7Hz,13Hz 的三个余弦信号,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)对g2[n],g3[n] 稍加变换可得:g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)利用Matlab进行编程:n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);plot(t,g1,t,g2,t,g3);k=1:100;s=k*0.1;q1=cos(6*pi*s);q2=cos(14*pi*s);q3=cos(26*pi*s);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q1)))subplot(2,2,2);plot(k/10,abs(fft(q2)))subplot(2,2,3);plot(k/10,abs(fft(q3)))通过Matlab软件的图像如图所示:如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。
程序编程改动如下:k=1:300;q=cos(6*pi*k/30);q1=cos(14*pi*k/30);q2=cos(26*pi*k/30);subplot(2,2,1);plot(k/10,abs(fft(q)))subplot(2,2,2);plot(k/10,abs(fft(q1)))subplot(2,2,3);plot(k/10,abs(fft(q2)))得图像:问题讨论:保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验原理IIR数字滤波器一、脉冲响应不变法变换原理将模拟滤波器的s平面变换成数字滤波器的平面,而将模拟滤波器映射成数字滤波器。
MATLAB 信号处理工具箱中提供了IIR数字滤波器设计的函数,常用的函数:IIR滤波器的阶数选择Buttord----巴特沃斯滤波器阶数选择cheb1ord-----切比雪夫I型滤波器阶数选择cheb2ord ----切比雪夫Ⅱ型滤波器阶数选择IIR滤波器的设计Buttrer-----巴特沃斯滤波器设计cheby1-----切比雪夫I型滤波器设计cheby2 ----切比雪夫Ⅱ型滤波器设计maxflat----通用的巴特沃斯低通滤波器设计二、巴特沃斯滤波器设计巴特沃斯滤波器是通带,阻带都单调衰减的滤波器。
(1)调用buttord函数确定巴特沃斯滤波器的阶数,格式[N,Wc]=buttord(Wp,Ws,Ap,As)(2)调用butter函数设计巴特沃斯滤波器,格式[b,a]=butter(N,Wc,options)利用以上两个函数可以设计出模拟滤波器,格式为[N,Wc]=buttord(Wp,Ws,Ap,As,’s’)[b,a]=butter(N,Wc,options.’s’)三、切比雪夫I型滤波器的设计切比雪夫I型滤波器为通带波纹控制器;在通带呈现波纹特性,阻带单调衰减。
[N,Wc]= cheb1ord (Wp,Ws,Ap,As)[b,a]= cheby1 (N,Ap,Wc,options)四、切比雪夫Ⅱ型滤波器的设计切比雪夫Ⅱ型滤波器为阻带波纹控制器;在阻带呈现波纹特性,通带单调衰减。
[N,Wc]= cheb2ord (Wp,Ws,Ap,As)[b,a]= cheby2 (N,As,Wc,options)已知模拟滤波器。
可以利用脉冲响应不变法转换函数impinvar将其变为数字滤波器,调用格式为[bz,az]=impinvar(b,a,Fs).五、双线性变换原理采用非线性频率压缩方法,克服了脉冲响应不变法产生频率响应的混叠失真,使是s平面与z平面建立了一一对应的单值关系,消除多值变换性,频谱混叠现象。
已知模拟滤波器,可以利用双线性变换函数bilinear将其变换为数字滤波器,调用格式为[bz,az]=bilinear(b,a,Fs).FIR窗函数法设计FIR数字滤波器FIR滤波器设计需使频率响应H(ejw)逼近所要求的理想频率响应,窗函数法设计FIR数字滤波器是在时域中进行的,用窗函数截取无限长的hd(n),这样H(ejw)逼近与理想值。
一旦选取了窗函数,其指标就是给定的,所以由窗函数设计FIR滤波器就是有阻带衰减指标确定用什么窗,由过渡带宽估计窗函数的长达N。
常用的有:hd=boxcar(N) ht=triang(N) hd=hanning(N)hd=hamming(N) hd=blackman(N) hd=kaiser(N,β)MATLAB中提供的fir可以用来设计FIR滤波器,调用格式为h=fir1(M,Wc,’ftype’,window)实验内容一1、要求通带截止频率fp=3KHz,通带最大衰减ap=1dB,阻带截止fs=4.5kHz,阻带最小衰减as=15dB,采样频率fc=30kHz,用脉冲响应不变法设计一个切比雪夫低通滤波器,并图示滤波器的振幅特性,检验wp,ws对应的衰减。
(1)>> wp=6*pi*10^3;ws=9*pi*10^3;ap=1;as=15;>> Fs=30*10^3;>> wp1=wp/Fs;ws1=ws/Fs; %参数设置>> [N,WC]=cheb1ord(wp,ws,ap,as,'s');>> [b,a]=cheby1(N,ap,WC,'s'); %采用切比雪夫I型滤波器设计>> [bz,az]=impinvar(b,a,Fs); %采用脉冲响应不变法>> w0=[wp1,ws1];>> Hx=freqz(bz,az,w0);>> [H,W]=freqz(bz,az);>> dbHx=-20*log10(abs(Hx)/max(abs(H))); %显示幅频特性>> plot(W,abs(H));>> xlabel('相对频率');ylabel('幅频');>> grid>>得到的结果如下>> bzbz =-0.0000 0.0054 0.0181 0.0040 0>> azaz =1.0000 -3.0591 3.8323 -2.2919 0.5495>> dbHxdbHx =1.0005 21.5790结果显示ap 略大于1,as 符合要求,得到的图形文件如下所示0.511.522.533.500.20.40.60.811.21.4相对频率幅频(2)>> wp=6*pi*10^3;ws=9*pi*10^3;ap=1;as=15; >> Fs=30*10^3;>> wp1=wp/Fs;ws1=ws/Fs; %参数设置 >> [N,WC]=cheb2ord(wp,ws,ap,as,'s');>> [b,a]=cheby2(N,as,WC,'s'); %采用切比雪夫Ⅱ型滤波器设计 >> [bz,az]=impinvar(b,a,Fs); %采用脉冲响应不变法 >> w0=[wp1,ws1];>> Hx=freqz(bz,az,w0); >> [H,W]=freqz(bz,az);>> dbHx=-20*log10(abs(Hx)/max(abs(H))); %显示幅频特性 >> plot(W,abs(H));>> xlabel('相对频率');ylabel('幅频'); >> grid >> bz得到的结果及图形文件如下 bz =-0.3682 0.9359 -0.8472 0.4014 0.0000>> azaz =1.0000 -1.9388 1.7388 -0.6968 0.1261>> dbHxdbHx =0.0449 8.796700.511.522.533.50.40.50.60.70.80.911.11.21.3相对频率幅频显然,这种设计不符合要求.2、 用双线性变换法设计一个切比雪夫I 型数字高通滤波器,技术指标为:采样频率fc=2kHz,通带截止频率fp=700Hz,通带最大衰减ap<=1dB,阻带边缘频率fs=500Hz,阻带最小衰减as>=32Db. 程序如下>> wp=2000*pi;ws=500*pi;ap=1;as=32; >> wp=1400*pi;ws=1000*pi;ap=1;as=32; >> Fs=2000;>> wp1=wp/Fs;ws1=ws/Fs;>> omp1=2*Fs*tan(wp1/2);omps=2*Fs*tan(ws1/2);>> [N,WC]=cheb1ord(omp1,omps,ap,as,'s'); %采用切比雪夫Ⅰ型滤波器设计 >> [b,a]=cheby1(N,ap,WC,'high','s');>> [bz,az]=bilinear(b,a,Fs); %采用双线性变换法 Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 8.974782e-024. > In bilinear at 8900.511.522.533.5相对频率幅频Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 8.974782e-024. > In bilinear at 90 >> w0=[wp1,ws1]; >> Hx=freqz(bz,az,w0); >> [H,W]=freqz(bz,az);>> dbHx=-20*log10(abs(Hx)/max(abs(H))); >> plot(W,abs(H));>> xlabel('相对频率');ylabel('幅频'); >> grid 得到的结果及图形文件如下>> bzbz =0.0084 -0.0335 0.0502 -0.0335 0.0084 >>>> azaz =1.00002.3741 2.7057 1.5917 0.4103>> dbHxdbHx =1.0000 33.1098 可见,ap,as 符合设计要求二1、窗函数法设计低通滤波器,w=0.4,(1)N=26,分别利用矩形窗、汉宁窗和blackman 窗设计该滤波器,且滤波器具有线性相位。
绘出脉冲响应h(n)及滤波器的频率响应。
>> N=26; >> wc=0.4; >> nn=[0:25];>> h1=fir1(25,wc,boxcar(N)); %利用矩形窗 >> [H,W]=freqz(h1,1); >> subplot(311),plot(nn,h1) >> title('矩形窗频率响应') >> xlabel('nn'),ylabel('h1')510152025矩形窗频率响应nnh 10.050.10.150.20.250.30.350.40.450.5矩形窗幅频特性响应wa b s矩形窗相频特性响应wa n g l e0510152025blackman 窗频率响应nnh 300.050.10.150.20.250.30.350.40.450.5blackman 窗幅频特性响应wa b sblackman 窗相频特性响应wa n g l e510152025汉宁窗频率响应nnh 20.050.10.150.20.250.30.350.40.450.5汉宁窗幅频特性响应wa b s0.050.10.150.20.250.30.350.40.450.5汉宁窗相频特性响应wa n g l e>> subplot(312),plot(W/2/pi,abs(H)) >> title('矩形窗幅频特性响应') >> xlabel('w'),ylabel('abs')>> subplot(313),plot(W/2/pi,angle(H)*180/pi) >> title('矩形窗相频特性响应') >>xlabel('w'),ylabel('angle')>> N=26; %利用汉宁窗 >> wc=0.4; >> nn=[0:25];>> h2=fir1(25,wc,hanning(N)); >> [H,W]=freqz(h2,1); >> subplot(311),plot(nn,h2) >> title('汉宁窗频率响应') >> xlabel('nn'),ylabel('h2')>> subplot(312),plot(W/2/pi,abs(H)) >> title('汉宁窗幅频特性响应') >> xlabel('w'),ylabel('abs')>> subplot(313),plot(W/2/pi,angle(H)*180/pi) >> title('汉宁窗相频特性响应') >> xlabel('w'),ylabel('angle')>> N=26; %利用blackman 窗>> wc=0.4;>> nn=[0:25];>> h3=fir1(25,wc,blackman(N)); >> [H,W]=freqz(h3,1);>> subplot(311),plot(nn,h3)>> title('blackman 窗频率响应')>> xlabel('nn'),ylabel('h3') >> subplot(312),plot(W/2/pi,abs(H))>> title('blackman 窗幅频特性响应')>> xlabel('w'),ylabel('abs') >> subplot(313),plot(W/2/pi,angle(H)*180/pi)(2)增加N 至N=66,观察过渡带和最大尖峰值的变化。