数字信号处理实验报告66566Word文件下载.docx
《数字信号处理实验报告66566Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告66566Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
N-1];
k=[0:
WN=exp(-j*2*pi/N);
nk=n'
*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
(1)L=5,N=20;
%题1.
(1)
L=5;
N=20;
%对于
(2),(3),(4)问,只要修改L,N的数值就好。
n=1:
N;
xn=[ones(1,L),zeros(1,N-L)];
Xk=dfs(xn,N);
magXk=abs([Xk(N/2+1:
N)Xk(1:
N/2+1)]);
k=[-N/2:
N/2];
figure
(1)
subplot(2,1,1);
stem(n,xn);
xlabel('
n'
);
ylabel('
xtide(n)'
title('
DFSofSQ.wave:
L=5,N=20'
subplot(2,1,2);
stem(k,magXk);
axis([-N/2,N/2,0,16]);
k'
Xtide(k)'
(2)L=5,N=40;
(3).L=5,N=60
(4)L=7,N=60;
结果分析:
虽然周期序列不存在FT,但是一个周期序列可以利用其DFS系数X(k)表示它的频谱分布规律,从以上各频谱图可以看出,随着补零点数的增加,周期序列的谐波次数越来越多,其频谱的包络线越来越平滑连续,更能反映幅度值随时间的变化。
2.有限长序列的DFT
(1)
%题2-
(1)
n=0:
10;
xn=cos(0.48*pi*n)+cos(0.52*pi*n);
N=11;
Xk=fft(xn,N);
%序列x(n)的N点DFT
k=0:
N-1;
wk=2*k/N;
subplot(1,1,1);
stem(wk,abs(Xk),'
.'
频谱X(K)的幅度'
ω/π'
幅度'
(2)
%题2-2
M=10;
N=100;
M;
n1=[0:
y1=[xn(1:
M),zeros(1,N-M)];
stem(n1,y1);
x(n)'
序列x(n),0<
=n<
=100'
axis([0,N,-2.5,2.5]);
Y1=fft(y1);
magY1=abs(Y1(1:
N/2+1));
k1=0:
N/2;
w1=2*pi/N*k1;
x(n)的幅频特性曲线'
stem(w1/pi,magY1);
axis([0,1,0,60]);
\omega/\pi'
|X(K)|'
(3)
%Example2-3
subplot(2,2,1);
YK=fft(y1);
Y=abs(Y1(1:
subplot(2,2,3);
stem(w1/pi,Y);
subplot(2,2,4);
plot(angle(Y1));
x(n)的相频特性曲线'
phi(\omega)'
由上述仿真图可得,随着n取值范围的增大,其频谱在[0,2π]上的采样间隔越来越小,采样点越来越多。
采样点越多,其DFS频谱越接近FT的频谱。
其相频特性曲线呈现周期性变化。
3.问题三
%题3
%N=45
subplot(2,2,1)
N=45;
t=0.01*n;
q=n*2*pi/N;
x=2*sin(4*pi*t)+5*cos(8*pi*t);
y=fft(x,N);
plot(q,abs(y))
stem(q,abs(y))
DFTN=45'
)
%N=50
subplot(2,2,2)
N=50;
DFTN=50'
%N=55
subplot(2,2,3)
DFTN=55'
%N=60
subplot(2,2,4)
N=60;
DFTN=60'
)
由上述仿真图可得,随着N取值的增大,其频谱在[0,2π]上的采样间隔越来越小,采样点越来越多。
采样点越多,其DFS频谱越接近FT的频谱,幅值曲线越来越清晰,更能准确反应幅值随时间的变化规律。
五、心得体会
对于周期序列的离散傅里叶变换,通过matlab的模拟,可以更好的了解掌握序列采样间隔对其采样频谱的影响。
在实验过程中,学习如何使用matlab程序语言解决问题,是很有价值的。
让我对matlab的使用更为熟练。
实验二用双线性变换法设计IIR数字滤波器
1.熟悉用双线性变换法设计IIR数字滤波器的原理与方法;
2.掌握数字滤波器的计算机仿真方法;
3、通过观察对实际心电图的滤波作用,获得数字滤波器的感性知识。
二、实验内容
1.用双线性变换法设计一个巴特沃斯低通IIR滤波器,设计指标参数为:
在通带内频率低于0.2π时,最大衰减小于1dB;
在阻带内[0.3π,π]频率区间上,最小衰减大于15dB
2.以0.2π为采样间隔,打印出数字滤波器在频率区间[0,0.2π]上的幅值响应曲线。
3.用所设计的滤波器对实际的心电图信号采样序列x(n)=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。
三.实验步骤
1.复习有关巴特沃斯模拟滤波器设计和双线性变换法设计IIR滤波器的内容
2.参考例子程序用MATLAB语言编写仿真实验用程序;
3.在通用计算机上运行仿真程序
4.写出完整的实验报告并回答思考题。
四.实验数据分析
1.巴特沃斯低通IIR滤波器的设计
由题可得,数字低通技术指标为
wp=0.2πrad,αp=1dB,ws=0.3πrad,αs=15dB
若T=1s,预畸变校正计算相应的模拟低通的技术指标为
Ωp=1dB,Ωs=15dB
通过计算可得阶数N=5.3056,向上取整的N=6.
Ωc=0.7663rad/s,这样保证阻带技术指标满足要求,通带指标有富余。
以下是通过matlab实现的巴特沃斯低通IIR滤波器的设计
%1
T=1;
Fs=1/T;
wpz=0.2;
wsz=0.3;
wp=2*tan(wpz*pi/2);
ws=2*tan(wsz*pi/2);
rp=1;
rs=15;
%预畸变校正转换指标
[N,wc]=buttord(wp,ws,rp,rs,'
s'
%设计过渡模拟滤波器
[B,A]=butter(N,wc,'
[Bz,Az]=bilinear(B,A,Fs);
%用双线性变换法转换成数字滤波器
fk=0:
1/512:
1;
wk=2*pi*fk;
Hk=freqs(B,A,wk);
figure
(1);
plot(fk,20*log10(abs(Hk)));
gridon;
模拟滤波器幅值响应曲线'
幅度(dB)'
axis([0,1,-100,5]);
[Nd,wdc]=buttord(wpz,wsz,rp,rs);
%调用buttord和butter直接设计数字滤波器
[Bz,Az]=butter(N,wdc);
wk=0:
pi/512:
pi;
Hz=freqz(Bz,Az,wk);
plot(wk/pi,20*log10(abs(Hz)));
数字滤波器幅值响应曲线'
在第一问的基础上加上下面的程序
%2
figure
(2);
freqz(Bz,Az,[0:
0.02*pi:
0.2*pi])
3.
在第一问程序的基础上加上如下程序即可
figure(3);
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
55;
stem(n,x,'
x(n)的脉冲响应'
A=0.09036;
b1=[A,2*A,A];
a1=[1,-1.2686,0.7051];
h1=filter(b1,a1,x);
[H1,w]=freqz(b1,a1,100);
b2=[A,2*A,A];
a2=[1,-1.0106,0.3583];
h2=filter(b2,a2,h1);
[H2,w]=freqz(b2,a2,100);
b3=[A,2*A,A];
a3=[1,-0.9044,0.2155];
h3=filter(b3,a3,h2);
[H3,w]=freqz(b3,a3,100);
subplot(2,2,2);
stem(n,h3,'
ylabel('
y(n)'
通过滤波器H1(z),H2(z),H3(z)后的y3(n)函数'
H4=H1.*(H2);
H=H4.*(H3);
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
plot(w/pi,db);
xlabel('
20log[Ha3(ejw)]'
通过滤波器H1(z),H2(z),H3(z)后的对数频率响应20log[Ha3(ejw)]函数'
grid;
figure(4);
N=1024;
N/2-1;
Xk=fft(x,N);
AXk=abs(Xk(1:
N/2));
f=(0:
N/2-1)*Fs/N;
f=f/Fs;
subplot(211);
plot(f,AXk);
x(n)的频谱'
f'
|X(k)|'
axis([0,0.5,0,400]);
五、思考题
用双线性变换设计数字滤波器的过程中,下面变换公式的T值的取值,对设计结果是否有影响?
为什么?
虽然采用双线性变换法设计数字滤波器不会产生混叠现象,T得取值可以任选。
双线性变换法具有非线性,T小一些,非线性的影响也就少一些。
六、心得体会
通过这次实验,我学会了如何使用matlab语言来实现IIR低通滤波器的设计,同时对于其数字低通技术指标的就算有了进一步的认识体会。
在做实验的过程中,面对种种困难,但是却在解决困难的过程中收获了很多。
是一个很有意义的经历。
实验三用窗函数法设计FIR数字滤波器
一.实验目的
1.掌握用窗函数法设计FIR数字滤波器的原理和方法。
2.熟悉线性相位FIR数字滤波器特性。
3.了解各种窗函数对滤波特性的影响。
二.实验原理
如果所希望的滤波器的理想频率响应函数为Hd(ejω),则其对应的单位脉冲响应为
用窗函数w(n)将hd(n)截断,并进行加权处理,得到:
h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数H(
)为
如果要求线性相位特性,则h(n)还必须满足:
根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。
要根据所设计的滤波特性正确选择其中一类。
例如,要设计线性相位低通特性,可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。
三.实验内容
1.用MATLAB产生各种窗函数
%窗函数
subplot(4,2,1)
m=200;
a=boxcar(m);
%矩形窗
m=1:
200;
plot(m,a)
矩形窗'
subplot(4,2,2)
b=bartlett(m)%三角窗
plot(m,b)
三角窗'
subplot(4,2,3)
c=hanning(m);
%汉宁窗
plot(m,c)
汉宁窗'
subplot(4,2,4)
d=hamming(m);
%哈明窗
哈明窗'
plot(m,d)
subplot(4,2,5)
e=blackman(m);
%布莱克曼窗
plot(m,e)
布莱克曼窗'
subplot(4,2,6)
f=kaiser(m,7.865);
%凯塞窗
plot(m,f)
凯塞窗'
subplot(4,2,7)
plot(m,a,'
r*'
m,b,'
g+'
m,c,'
y*'
m,d,'
b.'
m,e,'
y.'
m,f,'
k.'
各种窗函数'
2.利用窗函数设计FIR滤波器
设计具有下列指标p=0.25,Rp=0.25dB,s=0.3,Rp=50dB的低通数字滤波器。
由已知条件Rp=50dB,通过计算可知应该选择哈明窗,哈明窗的Rps=53dB,选择窗函数时应该选择Rps>
=50的,因而选择离50dB的哈明窗。
通过Bt=6.6π/N,Bt=ws-wp得到阶数N。
以下是利用matlab来实现FIR滤波器的设计。
%窗函数法设计FIR数字滤波器
wp=pi*0.25;
ws=pi*0.3;
%Rs=50dB,所以选择哈明窗
DB=ws-wp;
%计算过渡带宽度
N=ceil(6.6*pi/DB);
%计算哈明窗所需长度N
wc=(wp+ws)/2/pi;
%计算理想低通滤波器通带截止频率(关于π归一化)
hn=fir1(N,wc);
%调用fir1计算低通数字滤波器
%以下是绘图部分
figure
(2)
M=1024;
hk=fft(hn,M);
subplot(1,2,1);
stem(n,hn,'
%绘制序列h(n)
h(n)'
数字滤波器h(n)'
k=1:
M/2;
w=2*(0:
M/2-1)/M;
subplot(1,2,2);
plot(w,20*log10(abs(hk(k))));
%绘制损耗函数曲线
axis([0,1,-80,5]);
20lg|Hg(ω)|'
h(n)的损耗函数曲线'
结果分析:
根据损耗函数可得,利用哈明窗实现了题目所要求的FIR低通滤波器。
满足p=0.25,Rp=0.25dB,s=0.3,Rp=50dB。
因而选择哈明窗可以很好的满足所需要求。
四、心得体会
本次实验是使用窗函数来设计FIR滤波器,在MATLAB中只需要将给定的参数输入到函数中即可马上得到处结果。
通过本次实验,我对使用MATLAB快速设计滤波器的流程更为熟练,同时,也由衷地感叹MATLAB的功能强大之处,它让我们在设计时能节约大量的时间。
根据输入的参数以及结果,使我对课本上的设计滤波器的知识更为了解。
更加巩固了理论知识。
WelcomeTo
Download!
!
欢迎您的下载,资料仅供参考!