数字信号处理课程设计实验报告.docx
《数字信号处理课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计实验报告.docx(40页珍藏版)》请在冰豆网上搜索。
数字信号处理课程设计实验报告
通信与信息工程学院
数字信号处理课程设计
班级:
姓名:
学号:
指导教师:
设计时间:
成绩:
评语:
通信与信息工程学院
二〇一四年
题目一:
采样定理的验证
1.课程设计目的及要求:
1).掌握利用MATLAB分析系统频率响应的方法,增加对仿真软件MATLAB的感性认识,学会该软件的操作和使用方法。
2).掌握利用MATLAB实现连续信号采用与重构的方法,加深理解采样与重构的概念。
3).初步掌握线性系统的设计方法,培养独立工作能力。
4).学习MATLAB中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示,加深对各种电信号的理解。
5).验证信号与系统的基本概念、基本理论,掌握信号与系统的分析方法。
6).加深对采样定理的理解和掌握,以及对信号恢复的必要性;掌握对连续信号在时域的采样与重构的方法。
2.详细设计过程及调试结果:
1).设
,利用filter函数求出
的源程序:
n=0:
49
xn=(0.8).^n
B=1
A=[1,-0.8]
yn=filter(B,A,xn)
stem(n,yn)
xlabel('n');ylabel('yn')
本题验结果及分析:
2):
模拟信号
,
间隔采样得到
:
a.每一个
画出
的源程序:
t=0:
0.01:
1;T0=0.1;
T1=0.01;n1=0:
100;
T2=0.05;n2=0:
20;
T3=0.1;n3=0:
10;
xt=sin(20*pi*t);
xn1=sin(20*pi*n1*T1);
xn2=sin(20*pi*n2*T2);
xn3=sin(20*pi*n3*T3);
subplot(4,1,1);plot(t,xt);
title('模拟信号xt图');xlabel('t');ylabel('xt');gridon;
subplot(4,1,2);stem(n1,xn1,'.');
title('0.01s采样图');xlabel('n');ylabel('xn1');gridon;
subplot(4,1,3);stem(n2,xn2,'.');
title('0.05s采样图');xlabel('n');ylabel('xn2');gridon;
subplot(4,1,4);stem(n3,xn3,'.');
title('0.1s采样图');xlabel('n');ylabel('xn3');gridon;
调试结果分析:
b.采用
内插从样本
重建模拟信号
的源程序:
t=0:
0.01:
1;T0=0.1;
xt=sin(20*pi*t);
T1=0.01;n1=0:
100;
T2=0.05;n2=0:
20;
T3=0.1;n3=0:
10;
xt=sin(20*pi*t);subplot(4,1,1);plot(t,xt);
title('原信号xt模拟图');xlabel('t');ylabel('xt');gridon;
xn1=sin(20*pi*n1*T1);
xn2=sin(20*pi*n2*T2);
xn3=sin(20*pi*n3*T3);
t1=0:
T1:
1;
t2=0:
T2:
1;
t3=0:
T3:
1;
tn1=ones(length(n1),1)*t1-n1'*T1*ones(1,length(t1));
tn2=ones(length(n2),1)*t2-n2'*T2*ones(1,length(t2));
tn3=ones(length(n3),1)*t3-n3'*T3*ones(1,length(t3));
yt1=xn1*sinc(tn1*pi/T1);subplot(4,1,2);plot(t1,yt1);axis([01-11]);
title('sinc内插0.01恢复的xt1图');xlabel('n');ylabel('xt1');gridon;
yt2=xn2*sinc(tn2*pi/T2);subplot(4,1,3);plot(t2,yt2);axis([01-11]);
title('sinc内插0.05恢复的xt2图');xlabel('n');ylabel('xt2');gridon;
yt3=xn3*sinc(tn3*pi/T3);subplot(4,1,4);plot(t3,yt3);axis([01-11]);
title('sinc内插0.1恢复的xt3图');xlabel('n');ylabel('xt3');gridon;
调试结果分析:
c.采用三次样条内插从样本
重建模拟信号源程序:
t=0:
0.01:
1;
xt=sin(20*pi*t);
T1=0.01;n1=0:
100;
T2=0.05;n2=0:
20;
T3=0.1;n3=0:
10;
T1=0:
T1:
1;
T2=0:
T2:
1;
T3=0:
T3:
1;
xt=sin(20*pi*t);
xn1=sin(20*pi*T1);
xn2=sin(20*pi*T2);
xn3=sin(20*pi*T3);
yt1=spline(T1,xn1,t);
yt2=spline(T2,xn2,t);
yt3=spline(T3,xn3,t);
subplot(4,1,1);plot(t,xt);
title('原信号xt模拟图');xlabel('t');ylabel('xt');gridon;
subplot(4,1,2);plot(t,yt1);axis([01-11]);
title('三次样条0.01恢复的xt1图');xlabel('n');ylabel('xt1');gridon;
subplot(4,1,3);plot(t,yt2);axis([01-11]);
title('三次样条0.05恢复的xt2图');xlabel('n');ylabel('xt2');gridon;
subplot(4,1,4);plot(t,yt3);axis([01-11]);
title('三次样条0.1恢复的xt3图');xlabel('n');ylabel('xt3');gridon;
调试结果分析:
3.总结体会:
连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。
严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
时域对连续时间信号进行采样,是给它乘以一个采样脉冲序列,就可以得到采样点上的样本值,信号被采样前后在频域的变化,可以通过时域频域的对应关系分别求得了采样信号的频谱。
在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的瞬时值来表示,并且可以用这些样本值把信号完全恢复过来。
这样,抽样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。
通过观察采样信号的频谱,发现它只是原信号频谱的线性重复搬移,只要给它乘以一个门函数,就可以在频域恢复原信号的频谱,在时域是否也能恢复原信号时,利用频域时域的对称关系,得到了信号。
4.本实验思考题回答:
在分析理想采样序列特性实验中,采样频率不同时,相应理想采样序列的傅立叶变换频谱的数字频率度量是否都相同?
它们对应的模拟频率是否相同?
为什么?
答:
由w=ΩT得,若采样频率不同,则其周期T不同,相应的数字频率也不同,而因为是同一信号,故其模拟频率Ω保持不变。
题目二:
滤波器设计
1.课程目的及要求:
(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;
(2)学会调用MATLAB信号处理工具箱中滤波器设计函数,设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(4)观察滤波器输入输出信号的时域波形及频谱,建立数字滤波的概念。
(5)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(6)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
(7)学会调用MATLAB函数设计与实现FIR滤波器。
2详细设计过程及调试结果分析:
一个混合正弦信号包含5Hz、15Hz、30Hz的3中频率信号,现要求分别设计滤波器,保留15Hz频率分量信号,给定采样频率100Hz。
1)设计IIR型滤波器:
a:
巴特沃斯型来实现源程序:
fs=100;t=0:
0.01:
pi/5;T=2;fs1=1/T;
y=sin(2*pi*5*t)+sin(2*pi*15*t)+sin(2*pi*30*t);
subplot(2,1,1);plot(t,y);
title('混合正弦信号图');xlabel('t');ylabel('yt');gridon;
fp1=11;fp2=18;fs1=8;fs2=22;
wp=[2*fp1/fs,2*fp2/fs];ws=[2*fs1/fs,2*fs2/fs];
Ap=1;As=40;
[N,wn]=buttord(wp,ws,Ap,As);
[B,A]=butter(N,wn);
y1=filter(B,A,y);
subplot(2,1,2);plot(t,y1);
title('巴特沃斯滤波后15Hz正弦信号图');xlabel('t');ylabel('yt1');gridon;
figure;
freqz(B,A,512,fs);title('巴特沃斯带通滤波器');
调试结果分析:
b.切比雪夫型来实现的源程序:
fs=100;t=0:
0.01:
pi/5;T=2;fs1=1/T;
y=sin(2*pi*5*t)+sin(2*pi*15*t)+sin(2*pi*30*t);
subplot(2,1,1);plot(t,y);
title('混合正弦信号图');xlabel('t');ylabel('yt');gridon;
fp1=11;fp2=18;fs1=8;fs2=22;
wp=[2*fp1/fs,2*fp2/fs];ws=[2*fs1/fs,2*fs2/fs];
Ap=1;As=40;
[N,wn]=cheb1ord(wp,ws,Ap,As);
[B,A]=cheby1(N,Ap,wn);
y1=filter(B,A,y);
subplot(2,1,2);plot(t,y1);
title('切比雪夫滤波后15Hz正弦信号图');xlabel('t');ylabel('yt1');gridon;
figure;
freqz(B,A,512,fs);title('切比雪夫带通滤波器');
调试结果分析:
c.椭圆型来实现的源程序:
fs=100;t=0:
0.01:
pi/5;T=2;fs1=1/T;
y=sin(2*pi*5*t)+sin(2*pi*15*t)+sin(2*pi*30*t);
subplot(2,1,1);plot(t,y);
title('混合正弦信号图');xlabel('t');ylabel('yt');gridon;
fp1=11;fp2=18;fs1=8;fs2=22;
wp=[2*fp1/fs,2*fp2/fs];ws=[2*fs1/fs,2*fs2/fs];
Ap=1;As=40;
[N,wn]=ellipord(wp,ws,Ap,As);
[B,A]=ellip(N,Ap,As,wn);
y1=filter(B,A,y);
subplot(2,1,2);plot(t,y1);
title('椭圆型滤波后15Hz正弦信号图');xlabel('t');ylabel('yt1');gridon;
figure;
freqz(B,A,512,fs);title('椭圆型带通滤波器');
调试结果分析:
2.设计FIR型滤波器:
a:
分别用矩形窗和哈明窗设计的源程序:
fs=100;t=0:
0.01:
pi/5;
y=sin(2*pi*5*t)+sin(2*pi*15*t)+sin(2*pi*30*t);
subplot(3,1,1);plot(t,y);
title('混合正弦信号图');xlabel('t');ylabel('yt');gridon;
n=40;
wn=[10,20]*2/fs;
b=fir1(n,wn);
y1=filter(b,1,y);
subplot(3,1,2);plot(t,y1);
title('哈明窗滤波后15Hz正弦信号图');xlabel('t');ylabel('yt1');gridon;
b1=fir1(n,wn,boxcar(n+1));
y2=filter(b1,1,y);
subplot(3,1,3);plot(t,y2);
title('矩形窗滤波后15Hz正弦信号图');xlabel('t2');ylabel('yt2');gridon;
figure;
freqz(b,1,512);title('哈明窗带通滤波器');
figure;
freqz(b1,1,512);title('矩形窗带通滤波器');
调试结果分析:
b.频率采样法来设计FIR滤波器的源程序:
fs=100;t=0:
0.01:
pi/5;
y=sin(2*pi*5*t)+sin(2*pi*15*t)+sin(2*pi*30*t);
fs1=8;fp1=11;fp2=18;fs2=22;
ws1=fs1*2*pi/fs;wp1=fp1*2*pi/fs;
wp2=fp2*2*pi/fs;ws2=fs2*2*pi/fs;
m=1;n=41;N=(n-1)/2;
n1=fix(wp1/(2*pi/n));
n2=fix(wp2/(2*pi/n));
n3=n2-n1;
n4=n-n2;
t1=0.1;
Hk=[zeros(1,n1),t1,ones(1,n3),t1,zeros(1,n4-2)];
k1=0:
floor((n-1)/2);k2=floor((n-1)/2)+1:
n-1;
angH=[-N*(2*pi)/n*k1,N*(2*pi/n*(n-k2))];
H=Hk.*exp(j*angH);
hn=real(ifft(H));
figure;freqz(hn);
axis([01-1000]);
title('频率采样带通滤波器');
y2=filter(hn,1,y);
figure;subplot(2,1,2);plot(t,y2);
title('频率采样滤波后15Hz正弦信号图');xlabel('t');ylabel('yt1');gridon;
subplot(2,1,1);plot(t,y);
title('混合正弦信号图');xlabel('t');ylabel('yt');gridon;
调试程序结果分析:
c.等波纹逼近法来设计FIR滤波器的源程序:
fs=100;t=0:
0.01:
pi/5;
y=sin(2*pi*5*t)+sin(2*pi*15*t)+sin(2*pi*30*t);
fs1=8;fp1=11;fp2=18;fs2=22;
ws1=fs1*2/fs;wp1=fp1*2/fs;
wp2=fp2*2/fs;ws2=fs2*2/fs;
f=[ws1,wp1,wp2,ws2];
m=[0,1,0];
Ap=1;As=40;
dat1=(10^(Ap/20)-1)/(10^(Ap/20)+1);dat2=10^(-As/20);
rip=[dat2,dat1,dat2];
[M,fo,mo,w]=remezord(f,m,rip);
M=M+1;
hn=remez(M,fo,mo,w);
y2=filter(hn,1,y);
figure;subplot(2,1,1);plot(t,y);
title('混合正弦信号图');xlabel('t');ylabel('yt');gridon;
subplot(2,1,2);plot(t,y2);
title('等波纹逼近滤波后15Hz正弦信号图');xlabel('t');ylabel('yt1');gridon;
figure;freqz(hn);title('等波纹逼近带通滤波器');
调试结果分析:
3.总结体会:
通过本次关于IIR和FIR数字滤波器的设计实验,我们可以学到关于如何在MatLab软件上实现数字滤波器的设计与实现对现实数字波形的滤波处理。
熟悉用双线性变换法设计IIR数字滤波器的原理与方法,学会调用MATLAB信号处理工具箱中滤波器设计函数设计各种IIR和FIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
掌握IIR数字滤波器的MATLAB实现方法。
通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念
4.本实验思考题回答:
1.不同方法设计的滤波器滤波性能的异同?
IIR巴特沃斯滤波器:
具有单调下降的幅度特性,过渡带最宽,阶数最高。
IIR切比雪夫滤波器:
等波纹幅频特性,过渡带和阻带是单调下减的幅频特性。
IIR椭圆滤波器:
过渡带最窄,通带和阻带是等纹幅频特性,阶数最低;FIR窗函数滤波器:
具有线性相位,简单方便,易于实现,会产生吉布斯效应。
FIR频率采样:
简单方便,易于实现,不能控制通带和阻带波纹幅度,边界频率不易控制。
FIR等波纹滤波:
幅频响应的通带和阻带等纹幅度,最大逼近误差最小,滤波器阶数最低。
2.窗函数对滤波特性的影响,最优化设计中常用的逼近准则有哪些?
窗函数滤波会造成吉布斯效应,FIR滤波器的设计方法主要有三种:
窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。
常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。
题目三:
语音信号滤波处理
1.实验目的及要求:
(1)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(2)掌握数字信号处理的基本概念、基本理论、基本方法。
(3)掌握MATLAB设计FIR和IIR数字滤波器的方法。
(4)学会用MATLAB对信号进行分析和处理。
2.课程详细设计过程及调试结果分析:
利用Windows下的录音机录制一段带有噪声的话音,时间在1s内的源总程序(包括1小题的采样频率和采样点数。
2小题的语音信号的时域波形和频谱图。
3小题的滤波器的幅频图。
4小题的滤波前后信号的时域波形和频谱图);
[y,fs,nbit]=wavread('.wav')
figure;plot(y);
title('音频信号的时域波形图');xlabel('t');ylabel('yt');gridon;
axis([04100-11]);
n=512;
xk=fft(y,n);
k=0:
n-1;f=k*fs/n;
figure;
subplot(2,1,1);plot(f,abs(xk));axis([04100080]);
title('音频信号的频谱幅度图');xlabel('f/Hz');ylabel('幅度');
subplot(2,1,2);plot(f,angle(xk));axis([04100-44]);
title('音频信号的频谱相位图');xlabel('f/Hz');ylabel('相位');
wp=2*250/fs;ws=2*700/fs;
wp1=[2*3100/fs,2*3300/fs];ws1=[2*2700/fs,2*3700/fs];
ap=1;as=50;
[N,wn]=buttord(wp,ws,ap,as);
[b,a]=butter(N,wn);
[N1,wn1]=buttord(wp1,ws1,ap,as);
[b1,a1]=butter(N1,wn1);
figure;freqz(b,a,1024,fs);
title('巴特沃斯低通滤波器');
figure;freqz(b1,a1,1024,fs);
title('巴特沃斯带通滤波器');
y1=filter(b,a,y);
y2=filter(b1,a1,y);
figure;
subplot(2,1,1);plot(y);axis([04100-11]);
title('音频信号的时域波形图');xlabel('t');ylabel('yt');gridon;
subplot(2,1,2);plot(y1);axis([04100-11]);
title('巴特沃斯低通滤波后时域波形图');xlabel('t');ylabel('yt1');gridon;
figure;
subplot(2,1,1);plot(y);axis([04100-11]);
title('音频信号的时域波形图');xlabel('t');ylabel('yt');gridon;;
subplot(2,1,2);plot(y2);axis([04100-11]);
title('巴特沃斯带通滤波后时域波形图');xlabel('t');ylabel('yt2');gridon;
xk1=fft(y1,n);
xk2=fft(y2,n);
figure;
subplot(3,1,1);plot(f,abs(xk));axis([04100080]);
title('原音频信号的频谱幅度图');xlabel('f/Hz');ylabel('幅度');
subplot(3,1,2);plot(f,abs(xk1));axis([04100080]);
title('低通滤波后信号的频谱幅度图');xlabel('f/Hz');ylabel('幅度');
subplot(3,1,3);plot(f,abs(xk2));axis([04100080]);
title('带通滤波后信号的频谱幅度图');xlabel('f/Hz');ylabel('幅度');
sound(y1,fs,nbit);
%sound(y2,fs,nbit);
调试结果分析:
1小题:
2小题:
3小题滤波器的设计(包括巴特沃斯低通和带通滤波器的设计):
4小题滤波前后信号的时域波形和频谱:
5小题回放语音信号:
在程序执行的结果中可以听见滤波后的声音。
3.总结体会:
语音信号经过滤波器滤波处理后,杂音有所减少,效果变的更好。
通过此次课程设计,让我了解到数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。
还了解到MATLAB具有许多的优点比如:
语言简洁紧凑,使用方便灵活,库函数极其丰富;MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
4.本实验思考题回答:
(1)语音信号频率的范围?
答:
600HZ-2000HZ
(2)滤波前后信号有什么变化?
答:
滤波后,信号杂质信号变少,声音变得清晰。
时域上滤波前的幅度比滤波后的数值小,形状大体相似;
题目四:
雷达信号的仿真
实验