ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:459.76KB ,
资源ID:5674478      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5674478.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验四离散傅里叶变换.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验四离散傅里叶变换.docx

1、实验四 离散傅里叶变换 实验四 离散傅里叶变换一、 实验目的(1) 掌握计算序列的离散傅里叶(DFT)的方法;(2) 掌握实现时间抽取快速傅里叶变换(FFT)的编程方法,比较DFT和FFT的计算效率;(3) 加深对DFT与序列的傅里叶变换和Z变换之间的关系的理解;(4) 复习复数序列的运算方法。二、 实验原理一个长度为N的序列x(n)的离散傅里叶变换(DFT)及其反变换(IDFT)为 其中,。计算DFT的快速算法称为快速傅里叶变换(FFT),主要有时间抽取算法和频率抽取算法。在编制程序时要注意体会码位倒置、即位运算和蝶形图的实现方法。单位圆上得Z变换即为序列的傅里叶变换,序列的离散傅里叶变换(

2、DFT)则是序列的傅里叶变换的离散化 通过本实验可以验证这一关系。三、 实验内容与步骤(1) 编制基2时间抽取算法的FFT子程序fft(x,M),参数x为被分析序列x(n),M为蝶形运算的级数,它与序列长度N的关系是N=。调用fft(x,M)的结果是生成一个长度相等的变换序列X(k)。编制验证子程序功能的主程序。(2) 在子程序fft(x,M)的基础上编制计算IFFT的子程序ifft(X,M),参数X为被分析序列X(k),M为蝶形运算的级数。编程验证子程序功能的主程序,利用所编制的子程序ifft(X,N)计算步骤(1)中序列X(k)的离散傅里叶反变换x(n),将计算结果与步骤(1)对比。(3)

3、 画出步骤(1)中序列X(k)的幅频特性和相频特性。四、 实验结果(1) 给出本实验内容要求的2个子程序并加以注释程序一:fft#include#include#define swap(a,b) float T; T=(a); (a)=(b); (b)=T;void fft(float A,float B,unsigned M) /蝶形运算程序,A存实部,B存虚部,M是级数 unsigned long N,I,J,K,L,LE,LE1,P,Q,R; /LE为群间隔,LE1为群内碟间隔 float Wr,Wi,Wlr,Wli,WTr,WTi,theta,Tr,Ti; N=1M; /N=1M表示N

4、=2M J=0; for(I=0;II) /为了避免交换重复,只有标号J大于I时才执行交换操作 swap(AI,AJ); /实部交换 if(JI) swap(BI,BJ); /虚部交换 K=N1; / K=N1表示K=N/2 while(K=2&J=K) /while循环表示须向次高位进一位 J-=K; K=1; /K=1表示K=K/2 J+=K; for(L=1;L=M;L+) /for循环为M级FFT运算 LE=1L; / LE=1L表示2L LE1=LE/2; Wr=1.0; Wi=0.0; theta=(-1)*3.1415926536/LE1; Wlr=cos(theta); Wli

5、=sin(theta); /将换为cos()-jsin()的形式 for(R=0;RLE1;R+) /for循环为每级有2(L-1)次运算,R为系数序号,LE1为系数个数 for(P=R;PN-1;P+=LE) /for循环为蝶形的群运算 Q=P+LE1; Tr=Wr*AQ-Wi*BQ; Ti=Wr*BQ+Wi*AQ; AQ=AP-Tr; BQ=BP-Ti; AP+=Tr; BP+=Ti; WTr=Wr; WTi=Wi; Wr=WTr*Wlr-WTi*Wli; Wi=WTr*Wli+WTi*Wlr; return ;void main() /主程序 int M,I,N; float A100,

6、B100; printf( 请输入 M:); /输入M的值 scanf(%d,&M); N=pow(2,M); / printf(n 请输入序列实部(N个):); /输入序列实部 for(I=0;IN;I+) scanf(%f,&AI);for(I=0;IN;I+)printf(n 请输入序列虚部(N个):); /输入序列虚部 scanf(%f,&BI); printf( 则您所输入的序列为:n); for(I=0;IN;I+) printf(x%d=%.2f+j%.2fn,I,AI,BI); fft(A,B,M); printf( 则经FFT计算后,结果为:n); /输出序列 for(I=0

7、;IN;I+) printf(X%d=%.2f+j%.2fn,I,AI,BI);运行结果如下:程序二:IFFT#include#includevoid fft(float A,float B,unsigned M);void main() float A1024,B1024; unsigned long N,i ,M; printf(输入M=); scanf(%d,&M); N=1M;printf(n 请输入序列实部(”N”个);); for(i=0;iN;i+) scanf(%f,&Ai);printf(n 请输入序列虚部(”N”个);); for(i=0;iN;i+) scanf(%f,&

8、Bi);for(i=0;iN;i+)Bi=0-Bi; printf( 则您所输入的序列为:n); for(i=0;iN;i+) printf(x%d=%.2f+j%.2fn,i,Ai,Bi); fft(A,B,M); printf( 则经IFFT计算后,结果为:n); /输出序列for(i=0;iN;i+) printf(X%d=%.2f+j%.2fn,i,Ai/N,Bi/N);#define swap(a,b) T=(a); (a)=(b); (b)=Tvoid fft(float A,float B,unsigned M) /套用fft函数求ifft unsigned long N,I,J

9、,K,L,LE,LE1,P,Q,R; float Wr,Wi,W1r,W1i,WTr,WTi,theta,Tr,Ti; N=1M; J=0; for (I=0;II) float T; swap(AI,AJ); swap(BI,BJ); K=N1; while (K=2&J=K) J-=K; K=1; J+=K; for(L=1;L=M;L+) LE=1L; LE1=LE/2; Wr=1.0; Wi=0.0; theta=(-1)*3.1415926536/LE1; W1r=cos(theta); W1i=sin(theta); for(R=0;RLE1;R+) for(P=R;PN;P+=L

10、E) Q=P+LE1; Tr=Wr*AQ-Wi*BQ; Ti=Wr*BQ+Wi*AQ; AQ=AP-Tr; BQ=BP-Ti; AP+=Tr; BP+=Ti; WTr=Wr; WTi=Wi; Wr=WTr*W1r-WTi*W1i; Wi=WTr*W1i+WTi*W1r; return; 运行结果为:实验五、 IIR数字滤波器的设计一、实验目的(1) 掌握设计IIR数字滤波器的冲激响应不变法;(2) 掌握设计IIR数字滤波器的双线变换法;(3) 掌握IIR数字滤波器的现实方法。二、实验原理1、 设计IIR数字滤波器的冲激响应不变法的步骤(1) 明确设计指标,由于需要设计符合指标的模拟滤波器H(s

11、),因此,首先要将在数字域给出的设计指标转换为模拟域设计的设计指标;(2) 设计符合指标要求的模拟滤波器,即确定滤波器的阶数N和截止角频率。(3) 将模拟滤波器变换为数字滤波器H(z),首先计算在S平面左半平面N个极点及留数,然后代入下式得到H(z) 式中为采样时间;(4) 验证数字滤波器的频率特性,首先计算验证数字滤波器的幅频特性 然后选取包括通带截止角频率和阻带截止角频率在内的若干频率点,计算数字滤波器的幅频特性,并与设计指标比较。如果不满足要求,就要改进设计,重复上述步骤,直到满足要求。2、 设计IIR数字滤波器的双线性变换法的步骤(1) 明确设计指标,双线性变换法需要对设计指标进行预畸

12、变,才能将数字域给出的设计指标变换为模拟域的设计指标,预畸变公式为 其中,为采样时间,和分别为数字滤波器的通带截止角频率和阻带截止角频率,和分别为模拟滤波器的通带截止角频率和阻带截止角频率。(2) 设计符合实际指标要求的模拟滤波器,即确定滤波器的阶数N和截止角频率。(3) 将模拟滤波器变换为数字滤波器H(z),首先计算在S平面左半平面N个极点及留数,然后代入下式得到H(z) (4) 验证数字滤波器的频率特性 在设计出数字滤波器的系统函数H(z)后,为了实现数字滤波器算法,需要选择一种实现结够形式。常用的结构形式有直接型、级联型、并联型等。三 、实验内容与步骤(1)利用冲激响应不变法设计一个巴特

13、沃斯型IIR数字滤波器,设计指标要求在通带=0.3内衰减应大于15dB,通带幅度归一化,使其在w=0处为0dB。画出数字滤波器的频率特性,选择并联结构实现设计的数字滤波器。(2)利用双线性变换法设计一个巴特沃斯型IIR数字滤波器,设计指标同步骤(1)。画出数字滤波器的频率特性,选择级联型结构实现设计的数字滤波器。(3)为了验证所设计数字滤波器的实现功能,首先利用实验一的方法将下列分别位于通带、过渡带、阻带的三个模拟信号数字化将得到的三个序列作为激励信号分别输入到所设计的数字滤波器的输入端,计算输出地响应信号,观察序列幅度的变化。四 、实验结果(1)给出程序并加以注释用matlab实现采样频率1

14、0Hz,通带截止频率fp=0.2*piHz,阻带截止频率fs=0.3*piHz通带衰减小于1dB,阻带衰减大于15dB%冲激响应不变法wp =0.2*pi ; ws =0.3*pi; Rp = 1; %通带最大衰减Rp=1dBRs = 15; %阻带最小衰减Rs=20dBTS=1;FS=1/TS;Wp=wp/TS;Ws=ws/TS;n,wn=buttord(Wp,Ws, 1, 15,s)%计算巴特沃夫型滤波器的阶数n和截止频率wnBs,As=butter(n,wn,s)% 求系统函数,Bs为分子向量,As为分母向量W=0:0.01:pi;Bz,Az=impinvar(Bs,As,FS)%冲激响

15、应不变法hz=filt(Bz,Az) %求系统函数H(z)s2=freqz(Bz,Az,W);subplot(211);plot(W,20*log10(abs(s2);%绘制数字滤波器的幅度响应grid;title(冲激响应不变法数字滤波器幅频特性,fontsize,12);xlabel(w(rad);ylabel(幅度(dB);subplot(212);plot(W,angle(s2);%数字低通滤波器的相位响应grid;title(冲激响应不变法数字滤波器相频特性,fontsize,12);xlabel(w(rad);ylabel(相位(rad);hz=sym(filt(Bz,Az);h=

16、iztrans(hz);%求hz的Z反变换h=simplify(h)%化简后的h部分运行结果;4.108e-015 + 0.0006584 z-1 + 0.0105 z-2 + 0.01672 z-3 + 0.004232 z-4 + 0.0001062 z-5 -1 - 3.344 z-1 + 5.018 z-2 - 4.219 z-3 + 2.073 z-4 0.56 z-5 + 0.0647 z-6%双线性变换实现ButterWorth 低通%使用双线性变换法由模拟滤波器原型设计数字滤波器T=0.1; FS=1/T; pi=3.14;fp=0.2*pi;fs=0.3*pi;wp=fp/F

17、S*2*pi;ws=fs/FS*2*pi;Rp = 1; % 通带衰减As = 15; % 阻带衰减OmegaP = (2/T)*tan(wp/2); % Prewarp Prototype Passband freq % 频率预畸变OmegaS = (2/T)*tan(ws/2); % Prewarp Prototype Stopband freq%设计butterworth 低通滤波器原型N = ceil(log10(10(Rp/10)-1)/(10(As/10)-1)/(2*log10(OmegaP/OmegaS);%求阶数NOmegaC = OmegaP/(10(Rp/10)-1)(1

18、/(2*N);%求z,p,k = buttap(N); %获取零极点参数p = p*OmegaC;k = k*OmegaCN;B = real(poly(z);b0 = k;cs = k*B;ds = real(poly(p);% 双线性变换b,a = bilinear(cs,ds,FS); %映射为数字的figure(1); % 绘制频率特性freqz(b,a,512,FS);%进行滤波验证figure(2);f1=50;f2=100;f3=200;pi=3.14;n=0:(80/1.25);x1=4*sin(2*pi*f1*n);x2=4*sin(2*pi*f2*n);x3=4*sin(2

19、*pi*f3*n); subplot(3,2,1);stem(x1,.)title (x1输入信号)y1=filter(b,a,x1);subplot(3,2,2);stem(y1,.)title(x1滤波之后的信号);subplot(3,2,3);stem(x2,.)title (x2输入信号)y2=filter(b,a,x2);subplot(3,2,4);stem(y2,.)title(x2滤波之后的信号);subplot(3,2,5);stem(x3,.)title (x3输入信号)y3=filter(b,a,x3);subplot(3,2,6);stem(y3,.)title(x3滤

20、波之后的信号)运行结果:图像分析:x1为低频信号,位于通带,几乎没有衰减;x2为过渡带的信号也几乎没有衰减,x3为高频信号,位于阻带,信号大幅衰减。符合滤波器要求。选择级联型结构实现数字滤波器#include#includevoid IIRDF(float A,unsigned long N);void main() float A1024; int N,i,m=100 ;/改变m值来改变输入信号的频率,取100,200,400/ printf(函数是:);/提示输入函数/ printf(x(t)=4*sin(%d*3.1415926*1.25*t)n,m); /输入信号 for(i=0;i*

21、1.25=80;i+) Ai=4*sin(m*3.1415926*1.25*i/1000); /对信号采样离散化 N=80/1.25; for(i=0;i=N;i+) printf(x(%d)=%.4f ,i,Ai);/输出离散化的结果 if(i+1)%3=0) printf(n); printf(n); IIRDF(A,N); printf(the results of IIRDF is n);/提示输出结果/ printf(n); for(i=0;i=N;i+) printf(y(%d)=%.4f ,i,Ai);/*输出滤波后的结果*/ if(i+1)%3=0) printf(n); pr

22、intf(n);void IIRDF(float A,unsigned long N)/级联型低通滤波器 unsigned long n ; float x3=0,0,0,y13=0,0,0,y23=0,0,0,y3=0,0,0; for(n=0;nN;n+) x0=An; y10=1.31432*y11-0.71489*y12+0.08338*x0+0.16676*x1+0.08338*x2;/第一级 x2=x1; x1=x0;y20=1.0541*y21-0.37534*y22+0.08338*y10+0.16676*y11+0.08338*y12;/第二级 y12=y11; y11=y1

23、0;y0=0.94592*y1-0.23422*y2+0.08338*y20+0.16676*y21+0.08338*y22;/第三级 y22=y21; y21=y20; y2=y1; y1=y0; An=y0; 结果分析当输入为100时,结果为:用matlab filter designed tool 仿真如下:(2)比较应用冲激响应不变法和双线性变换法所设计的IIR数字滤波的幅频特性和相频特性答:由理论分析及以上仿真效果知: a 在冲激响应不变法中,数字角频率和模拟角频率之间呈线性关系。这样,所设计的数字滤波器能很好的保持模拟滤波器原型的频率特性。但是,由于S平面与Z平面之间的变换不是一一

24、对应的,从模拟滤波器到数字滤波器的变换会发生频率混叠。b 在双线性变换法中,S平面与Z平面之间存在一一映射关系,从而克服了冲激响应不变法产生的频谱混叠现象;但是,由于数字角频率与模拟角频率之间不是线性关系,因此,在变换过程中会发生频率失真。通过采用预畸变的补偿方法,可以对具有片状常数频率特性的滤波器进行校正。(3) 讨论模拟角频率与数字角频率的关系答:概念:模拟角频率:每秒经历多少弧度,单位rad/s;数字频率w:每个采样点间隔之间的弧度,单位rad。(w称为正弦序列的数字域频率(也称数字频率),单位是弧度(rad),它表示序列变化的速率,或者说表示相邻两个序列值之间变化的弧度数。)关系:数字频率和模拟角频率的关系:w = *T。(这个式子具有普遍意义,它表示凡是由模拟信号采样得到的序列,模拟角频率与序列的数字域频率成线性关系。)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1