w1=[-fliplr(w1),w1(2:500)]和F=[fliplr(F),F(2:500)]是分别补充负频率。
3.2.2、采样定理
采样定理就是若模拟信号是有限带宽的,其频谱的最高频率为fm。对其进行采样时,若保证采样频率fs≥2fm,则可由采样信号无失真地恢复出原模拟信号。本提示分别以5000样本/s和1000样本/s对该模拟信号进行采样。
在以5000样本/s进行采样时,采样周期为T1=0.0002,取 n=-30:1:30的采样,就可以将表达式中的t换成n*T1,便可以将其表示成离散的形式。而求傅里叶变换则与上述方法是相同的。主要程序段是
T2=0.001;n=-30:1:30;x2=A*exp(B*abs(n*T2)); K=500;
k=floor((-K/2+0.5):(K/2-0.5)); w0=2*pi*k/K; F2=x2*exp(-j*n'*w0); F2=real(F2);
也是对频谱进行k=500点的取样,w0从-pi到+pi之间以500点平均抽样后的频谱。F2=x2*exp(-j*n'*w0)则是根据傅里叶变换的公式得到的。绘出的图线就是F2的图像。
以1000样本/s进行采样时,采样周期为T1=0.001,取
16
n=-30:1:30的采样,就可以将表达式中的t换成n*T1,便可以将其变成离散的形式,求其傅里叶变换的方法与上面的方法相同。 根据采样定理可以知道采样的频率大于原频谱频率的2倍时,采样信号才可以恢复到原信号。5000样本/s大于频谱的2倍,所以,程序观察的起傅里叶变换的图像交叉很小,基本无失真,而1000样本/s的频谱则是出现较长的横线,失真比较严重。
3.3、冲击序列和矩形序列的8点和16点FFT 3.3.1冲击序列的FFT
求有限长序列x(n)的DFT的实质是:
将有限长序列x(n)作周期延拓x((n))N, 求其DFS, 取其主值序列,即可得X(K)。FFT实质上是与DFT是一样的,但是其更是节约了时间和算法。在matlab函数里有一个函数fft便可以直接求出序列的FFT。格式y=fft(x,n);x为调用的序列,n为所求的fft的点数。如果所求的点数大于序列的点数,那么在计算fft时,会将序列自动补零,而如果所求的点数小于序列的点数,那么在计算fft时,会将序列截断,这样将会出现比较严重的失真,只有在相等的情况下,在是最准确的。在计算冲激序列的fft时,首先表示出冲激序列, n=-3:4;
x1=[zeros(1,3),ones(1,1),zeros(1,4)];因为x是冲激序列,所以在计算其8点fft和16点fft时结果是一样的。直接调用函数就可以,y1=fft(x1,8)。
17
3.3.2矩形序列的fft
在计算矩形序列R8(N)时,8点fft和16点fft就不一样,因为16点fft大于序列本身,对序列补零了,所以结果不准确。在用matlab实现时,首先表示出矩形序列,
x2=[1,1,1,1,1,1,1,1];然后调用函数y2=fft(x2,16);,就可以得到程序的fft.
y1=fft(x2,8);和
3.4、滤波器的设计 3.4.1、IIRDF的设计
IIRDF的设计可以有脉冲响应不变法和双线性变换法,这些是间接变换法。这里我用了直接设计法。直接设计法的步骤如下;
(1) 格式:【N,wc】=buttord(wp,ws,rp,rs),功能时求出巴特沃斯数
字滤波器的阶数N及频率参数wc,wp、ws、wc都要归一化。matlab在滤波器设计的频率归一化时,使用的是奈奎斯特频率,即为采样频率的一半。
(2) 格式:[B,A]=butter(N,wc),这是设计N阶截止频率为wc的巴
特沃斯低通滤波器的传递函数模型系数[B,A],系数长度为N+1,截止频率为wc需要归一化。
在本题中,我设计的就是巴特沃斯型低通滤波器,其主要程序为下: f=1000;
wp=2*20/f;ws=2*30/f;;ap=1;as=20
18
[n,w1]=buttord(wp,ws,ap,as); [b,a]=butter(n,w1); [H,W]=freqz(b,a,f);
第一行就是对频率归一化,最后一行调用freqz,就是要得出以B,A为系数的系统函数频率响应,计算f个频率点上的频率响应存放在H中,f个频率存放在w中。这样便可得出幅频率响应和相频响应。
3.4.2、FIRDF的设计
利用窗函数法进行设计
一般Hd(ejω)是矩形频率特性, 所以hd(n )是非因果的,且hd(n)从
????物理上无法实现。但由此可得到一个逼近Hd(ejω)的方法。即:将hd(n)截短为有限项,设为N项,则需要乘以一个窗函数加窗截断。在使用窗函数法时首先要根据滤波器技术指标选择合适的窗函数,同时能使阶层N尽可能小,使能量集中在主瓣处。我所设计的为低通滤波器,As=70; ,ws=0.2 ,wp=0.3,因为凯塞窗的最小阻带衰减满足该滤波器的技术指标,所以选用凯塞窗。程序中 tr_width=wp-ws;
M=ceil((As-7.95)*2*pi/14.36./tr_width+1)+1; 是根据不同的窗函数公式来计算滤波器的长度。 delta_w=2*pi/1000;
w_kai=(kaiser(M,beta));这一句是调用窗函数。 wc=(ws+wp)/2;
19
r=(M-1)/2; n=[0:1:(M-1)]; m=n-r+eps;
hd=sin(wc*m)./(pi*m);
wc为截止频率,hd=sin(pi*m)./(pi*m)-sin(wc*m)./(pi*m)是计算理想脉冲的标准公式。
h=hd.*w_kai';为加窗后的脉冲响应。 t=0:1/20000:2;
x=sin(2*pi*0.1*t)+sin(2*pi*1000*t)+sin(2*pi*8000*t) x1=filter(h,2,x);信号x是一个多频率叠加的信号,用以检测该滤波器的性能,filter便是用此滤波器对信号x进行滤波。 直接法设计
在matlab信号处理工具箱中,除了提供窗函数命令外,还提供用窗函数法设计FIR数字滤波器的专用命令fir1,利用该函数可以设计具有标准频率响应的FIR滤波器其基本调用格式如下 B=fir1(N,Wn,win); fs=20000;
fp1=4000;fp2=7000;
fs1=3000;fs2=8000; 以上分别为带通滤波器的第一截止频率,带通滤波器的第二截止频率;
ws1=(fp1+fs1)/fs;ws2=(fp2+fs2)/fs;是对 b=fir1(M,[ws1,ws2],hanning);freqz(b,1);
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库现代信号处理课程设计报告(4)在线全文阅读。
相关推荐: