⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3filters.txt

📁 低通采样 用MATLAB设计低通,带通,高通和带阻FIR数字滤波器
💻 TXT
📖 第 1 页 / 共 2 页
字号:



奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。最小抽样速率fs=2fx称为奈奎斯特速率。 


低通 

译码 

编码 

量化 

抽样 

输入信号 样点输出 滤波输出 



A/D(模数转换) D/A(数模转换) 

图1 低通采样定理演示 

为方便实现,实验中更换了一种表现形式,即抽样频率固定(10KHz),通过改变输入模拟信号的频率来展示低通抽样定理。我们可以通过研究抽样频率和模拟信号最高频率分量的频率之间的关系,来验证低通抽样定理。 

1.4 实验内容 

1.软件仿真实验:编写并调试MATLAB程序,分析有关参数,记录有关波形。 

2.硬件实验:输入不同频率的正弦信号,观察采样时钟波形、输入信号波形、样点输出波形和滤波输出波形。 



1.5 MATLAB参考程序和仿真内容 

%*******************************************************************% 

%f—余弦信号的频率 

% M—基2 FFT幂次数 N=2^M为采样点数,这样取值是为了便于作基2的FFT分析 

%2. 采样频率Fs 

%*******************************************************************% 

function samples(f,Fs,M) 

N=2^M; % fft点数=取样总点数 

Ts=1/Fs; % 取样时间间隔 

T=N*Ts; % 取样总时间=取样总点数*取样时间间隔 

n=0:N-1; 

t=n*Ts; 

Xn=cos(2*f*pi*t); 

subplot(2,1,1); 

stem(t,Xn); 

axis([0 T 1.1*min(Xn) 1.1*max(Xn)]); 

xlabel('t -->'); 

ylabel('Xn'); 

Xk=abs(fft(Xn,N)); 

subplot(2,1,2); 

stem(n,Xk); 

axis([0 N 1.1*min(Xk) 1.1*max(Xk)]); 

xlabel('frequency -->'); 

ylabel('!Xk!'); 

%*******************************************************************% 

假如有一个1Hz的余弦信号y=cos(2*π*t),对其用4Hz的采样频率进行采样,共采样32点,只需执行samples(1,4,5),即可得到仿真结果。 

软件仿真实验内容如下表所示: 

仿真参数 
f 
Fs 
Wo(计算) 
Xn(图形) 
Xk(图形) 


(1,4,5) 



另外记录图形,并标图号 


(1,8,5) 





(2,8,6) 









自 选 




1.6 硬件实验步骤 

本实验箱采样频率fs固定为10KHz,低通滤波器的截止频率约为4.5KHz。 

1、用低频信号源产生正弦信号,正弦信号源频率f自定,并将其接至2TP2(模拟输入)端,将示波器通道一探头接至2TP6(采样时钟)端观察采样时钟波形,示波器通道二探头接至2TP2观察并记录输入信号波形。 

2、将示波器通道二探头接至2TP3观察并记录样点输出波形。 

3、将示波器通道二探头接至2TP4观察并记录滤波输出波形。 

4、根据采样定理,分f=fs /8、f=fs/4、f=fs/2等3种情况更改正弦信号频率,重复步骤2至步骤3。 

5、用低频信号源产生方波信号,重复步骤1至步骤4。 



1.7 思考题 

1、 讨论在仿真实验中所计算的数字域频率Wo和Xk的图形中非零谱线位置之间的对应关系。 

2、 讨论在仿真实验中自选参数的意义。 

3、将在2TP2端加方波信号后的恢复波形,与相同频率的正弦信号的恢复波形相比,能够得出哪些结论? 



2 FFT频谱分析实验 



2.1 实验目的 

1.通过实验加深对快速傅立叶变换(FFT)基本原理的理解。 

2.了解FFT点数与频谱分辨率的关系,以及两种加长序列FFT与原序列FFT的关系。 

2.2 实验仪器 

1.YBLD智能综合信号源测试仪 1台 

2.双踪示波器 1台 

3.MCOM-TG305数字信号处理与现代通信技术实验箱 1台 

4.PC机(装有MATLAB、MCOM-TG305配套实验软件) 1台 

2.3 实验原理 

离散傅里叶变换(DFT)和卷积是信号处理中两个最基本也是最常用的运算,它们涉及到信号与系统的分析与综合这一广泛的信号处理领域。实际上卷积与DFT之间有着互通的联系:卷积可化为DFT来实现,其它的许多算法,如相关、滤波和谱估计等都可化为DFT来实现,DFT也可化为卷积来实现。 

对N点序列x(n),其DFT变换对定义为: 


在DFT运算中包含大量的重复运算。FFT算法利用了蝶形因子WN的周期性和对称性,从而加快了运算的速度。FFT算法将长序列的DFT分解为短序列的DFT。N点的DFT先分解为2个N/2点的DFT,每个N/2点的DFT又分解为2个N/4点的DFT。按照此规律,最小变换的点数即所谓的“基数(radix)。”因此,基数为2的FFT算法的最小变换(或称蝶形)是2点DFT。一般地,对N点FFT,对应于N个输入样值,有N个频域样值与之对应。一般而言,FFT算法可以分为时间抽取(DIT)FFT和频率抽取(DIF)两大类。 

在实际计算中,可以采用在原来序列后面补0的加长方法来提高FFT的分辨率;可以采用在原来序列后面重复的加长方法来增加FFT的幅度。 

2.4 实验内容 

1.软件仿真实验:分别观察并记录正弦序列、方波序列及改变FFT的点数后的频谱;分别观察并记录正弦序列、方波序列及2种加长序列等信号的频谱。 

2.硬件实验:分别观察并记录正弦信号、方波信号及改变FFT的点数后的频谱。 

2.5 MATLAB参考程序和仿真内容 

%*******************************************************************% 

function[x]=ffts(mode,M) 

Nfft=2^M; 

x=zeros(1,Nfft); %定义一个长度为Nfft的一维全0数组 

if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end 

end %定义一个长度为Nfft的单周期正弦序列 

if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end 

end %定义一个长度为Nfft的双周期正弦序列 

if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end 

end %定义一个长度为Nfft/2的正弦序列,后面一半为0序列。 

if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end 

end 

if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end 

end 

if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end 

end 

n=0:Nfft-1; 

subplot(2,1,1); 

stem(n,x); 

axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]); 

xlabel('Points-->'); 

ylabel('x(n)'); 

X=abs(fft(x,Nfft)); 

subplot(2,1,2); 

stem(n,X); 

axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]); 

xlabel('frequency-->'); 

ylabel('!X(k)!'); 

%*******************************************************************% 

假设需观察方波信号的频谱,对一个周期的方波信号作32点的FFT,则只需在MATLAB的命令窗口下键入:[x]=ffts(21,5) ,程序进行模拟,并且输出FFT的结果。 

关于软件仿真实验内容,建议在完成大量仿真例子的基础上,选择能够体现实验要求的4个以上的例子进行记录。例如要观察后面补0的加长方法来提高FFT的分辨率的现象,可以仿真ffts(4,5)和ffts(6,6)两个例子。 

2.6 硬件实验步骤 

1.将低频信号源输出加到实验箱模拟通道1输入端,将示波器探头接至模拟通道1输出端。 

2.在保证实验箱正确加电且串口电缆连接正常的情况下,运行数字信号处理与DSP应用实验开发软件,在“数字信号处理实验”菜单下选择“FFT频谱分析”子菜单,出现显示FFT频谱分析功能提示信息的窗口。 

3.用低频信号产生器产生一个1KHz的正弦信号。 

4.选择FFT频谱分析与显示的点数为64点,开始进行FFT运算。此后,计算机将周期性地取回DSP运算后的FFT数据并绘图显示 

5.改信号源频率,观察并记录频谱图的变化。 

6.选择FFT的点数为128点,观察并记录频谱图的变化。 

7.更改正弦信号的频率,重复步骤4 ~步骤6。 

8.用低频信号产生器产生一个1KHz的方波信号,重复步骤4 ~步骤7。注意:应根据实验箱采样频率fs为10KHz和方波信号的频带宽度选择方波信号的频率。 

本硬件实验要进行两种信号,每个信号两种频率,每个信号两种点数等共8次具体实验内容,性质能够体现实验要求的4个以上的例子进行记录。 

2.7 思考题 

1.对同一个信号,不同点数FFT观察到的频谱图有何区别? 

2.序列加长后FFT与原序列FFT的关系是什么,试推导其中一种关系。 

3.用傅立叶级数理论,试说明正弦信号频谱和方波信号频谱之间的关系。 



3 IIR滤波器设计实验 



3.1 实验目的 

1.通过实验加深对IIR滤波器基本原理的理解。 

2.学习编写IIR滤波器的MATLAB仿真程序。 

3.2 实验仪器 

1.YBLD智能综合信号源测试仪 1台 

2.双踪示波器 1台 

3.MCOM-TG305数字信号处理与现代通信技术实验箱 1台 

4.PC机(装有MATLAB、MCOM-TG305配套实验软件) 1台 

3.3 实验原理 

IIR滤波器有以下几个特点: 

1.IIR数字滤波器的系统函数可以写成封闭函数的形式。 

2.IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。 

3.IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。 

4.IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。 

在MATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。下面主要介绍前两个函数的使用。 

与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。 

一、巴特沃斯IIR滤波器的设计 

在MATLAB下,设计巴特沃斯IIR滤波器可使用butter函数。 

Butter函数可设计低通、高通、带通和带阻的数字和模拟IIR滤波器,其特性为使通带内的幅度响应最大限度地平坦,但同时损失截止频率处的下降斜度。在期望通带平滑的情况下,可使用butter函数。 

butter函数的用法为: 

[b,a]=butter(n,Wn,/ftype/) 

其中n代表滤波器阶数,Wn代表滤波器的截止频率,这两个参数可使用buttord函数来确定。buttord函数可在给定滤波器性能的情况下,求出巴特沃斯滤波器的最小阶数n,同时给出对应的截止频率Wn。buttord函数的用法为: 

[n,Wn]= buttord(Wp,Ws,Rp,Rs) 

其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。当其值为1时代表采样频率的一半。Rp和Rs分别是通带和阻带区的波纹系数。 

不同类型(高通、低通、带通和带阻)滤波器对应的Wp和Ws值遵循以下规则: 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -