现代信号处理课程设计报告.docx
- 文档编号:4919869
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:27
- 大小:397.15KB
现代信号处理课程设计报告.docx
《现代信号处理课程设计报告.docx》由会员分享,可在线阅读,更多相关《现代信号处理课程设计报告.docx(27页珍藏版)》请在冰豆网上搜索。
现代信号处理课程设计报告
1、课程设计要求
2、设计过程
A、总体设计构成及界面
(1)主界面
(2)子界面
B、具体题目分析及数据测试
(1)设计题目
(2)设计源代码
(3)设计结果
(4)结果分析
3、设计总结与心得体会
4、参考文献
5、鸣谢
一、课程设计要求
使用MATLAB(或其它开发工具)编程实现上述内容(1必选,2、3;4、5;6、7每组中任选一个,8选做),写出课程设计报告。
滤波器设计题目应尽量避免使用现成的工具箱函数。
为便于分析与观察,设计中所有频谱显示中的频率参数均应对折叠频率归一化。
二、设计过程
1、总体设计构成及界面
此次数字信号处理课程设计由两个GUI界面构成,一个为主GUI界面,另一个是第六题的子GUI界面。
主界面由六个题构成,分别是:
1)连续模拟信号的采样、2)高斯序列的频谱分析、3)采样序列的频谱分析、4)分析随机噪声的叠加、5)快速傅里叶分析频谱、6)无限数字滤波器的设计。
并对每个题进行了分类,以便能更好的对数据进行测试。
GUI界面中主要运用了以下几个界面编辑函数:
pushbutton、edit、text等。
具体界面如下图所示:
(1)主界面
(2)第六题的子界面
2、具体题目分析及数据测试
第一题(连续模拟信号的采样)
(1)题目
给定模拟信号:
,式中
,
,
。
对
进行采样,可得采样序列
选择采样频率
=1kHz,观测时间
ms,观测所得序列
及其幅频特性
改变采样频率
=300Hz,观测此时
的变化
令采样频率
=200Hz,观测此时
的变化
要求分析说明原理,绘出相应的序列及其它们对应的幅频特性曲线,指出
的变化,说明为什么?
(2)源代码
n=0:
50;
A=444.128;
a=50*sqrt
(2)*pi;
w=a;
f=input('请输入f:
');
T=1./f;
x=A*exp(-a*n*T).*sin(w*n*T);
figure
(1);
subplot(211)
stem(n,x,'.');
title('x(n)序列--(f=1000)');
y=fft(x);
h=abs(y);
subplot(212)
plot(n,h);
title('x(n)序列的幅频特性');
(3)结果
f=1000时:
f=300时:
f=200时:
(4)分析:
采样原理:
对模拟信号进行采样可以看作是一个模拟信号通过一个电子开关S。
设电子开关每隔周期T合上一次,每次合上的时间为τ,在电子开关输出端得到其采样信号,一般τ很小,τ越小,采样输出脉冲的幅度越接近输入信号在离散时间点上的瞬时值。
结论:
由以上三个图可以分析得出,x(n)序列的幅值随着频率的增大而减少,且采样频率越高,幅值的下降速度越快
第二题(高斯序列的频谱分析)
(1)题目
已知Gaussian序列
固定序列
中的参数p=8,令q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域及幅频特性的影响;固定q=8,令p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?
记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
并理论分析说明产生这些变化的原因
(2)源代码
%p=8,q=2时
figure
(1);
subplot(321)
n=0:
15;p=8;q=2;
x=exp(-(n-p).^2/q);
stem(n,x,'.');
axis([01501]);
title('高斯序列时域特性(p=8;q=2)');
subplot(322)
n=0:
15;p=8;q=2;
x=exp(-(n-p).^2/q);
y=fft(x,16);
plot(n(1:
9),abs(y(1:
9)));
title('高斯序列频域特性(p=8;q=2)');
%p=8,q=4时
subplot(323)
n=0:
15;p=8;q=4;
x=exp(-(n-p).^2/q);
stem(n,x,'.');
axis([01501]);
title('高斯序列时域特性(p=8;q=4)');
subplot(324)
n=0:
15;p=8;q=4;
x=exp(-(n-p).^2/q);
y=fft(x,16);
plot(n(1:
9),abs(y(1:
9)));
title('高斯序列频域特性(p=8;q=4)');
%p=8,q=8时
subplot(325)
n=0:
15;p=8;q=8;
x=exp(-(n-p).^2/q);
stem(n,x,'.');
axis([01501]);
title('高斯序列时域特性(p=8;q=8)');
subplot(326)
n=0:
15;p=8;q=8;
x=exp(-(n-p).^2/q);
y=fft(x,16);
plot(n(1:
9),abs(y(1:
9)));
title('高斯序列频域特性(p=8;q=8)');
figure
(2);
%p=8,q=8时
subplot(321)
n=0:
15;p=8;q=8;
x=exp(-(n-p).^2/q);
stem(n,x,'.');
axis([01501]);
title('高斯序列时域特性(p=8;q=8)');
subplot(322)
n=0:
15;p=8;q=8;
x=exp(-(n-p).^2/q);
y=fft(x,16);
plot(n(1:
9),abs(y(1:
9)));
title('高斯序列频域特性(p=8;q=8)');
%p=13,q=8时
subplot(323)
n=0:
15;p=13;q=8;
x=exp(-(n-p).^2/q);
stem(n,x,'.');
axis([01501]);
title('高斯序列时域特性(p=13;q=8)');
subplot(324)
n=0:
15;p=13;q=8;
x=exp(-(n-p).^2/q);
y=fft(x,16);
plot(n(1:
9),abs(y(1:
9)));
title('高斯序列频域特性(p=13;q=8)');
%p=14,q=8时
subplot(325)
n=0:
15;p=14;q=8;
x=exp(-(n-p).^2/q);
stem(n,x,'.');
axis([01501]);
title('高斯序列时域特性(p=14;q=8)');
subplot(326)
n=0:
15;p=14;q=8;
x=exp(-(n-p).^2/q);
y=fft(x,16);
plot(n(1:
9),abs(y(1:
9)));
title('高斯序列频域特性(p=14;q=8)');
(3)结果
P=8,q=2,4,8时:
q=8,P=8,13,14时:
(4)分析:
当p为定值时,时域特性的峰值随着q的减少而变得尖锐。
频域特性的幅值随着q的减少而下降的缓慢些。
当q为定值时,时域特性的峰值随着P的增大而右移,频域特性的幅值随着P的增大而下降的缓慢些。
P=13和14时,会发生明显的泄露现象,混叠没有随之出现。
第三题(采样序列的频谱分析)
(1)题目
一个连续信号含两个频率分量,经采样得
x(n)=sin2π*0.125n+cos2π*(0.125+Δf)nn=0,1……,N-1
已知N=16,Δf分别为1/16和1/64,观察其幅频特性;当N=128时,Δf不变,其结果有何不同,为什么?
分析说明原因,并打印出相应的幅频特性曲线
(3)源代码
N=input(‘请输入N:
’);
n=0:
(N-1);
df=[1/16,1/64];
x1=sin(2*pi*0.125*n)+cos(2*pi*(0.125+df
(1))*n);
x2=sin(2*pi*0.125*n)+cos(2*pi*(0.125+df
(2))*n);
figure
(1);
subplot(221);
stem(n,x1,'.');
legend('Δf=1/16');
subplot(222);
stem(n,x2,'.');
legend('Δf=1/64');
subplot(212)
y1=fft(x1);
y2=fft(x2);
plot(n,[abs(y1);abs(y2)]);
legend('Δf=1/16','Δf=1/64');
clear;
(3)结果
N=16,f=1/16或1/64
N=128,f=1/16或1/64
(4)分析
由第一个图可以看出,当N=16时,频率分量的图像不完整,显然是由于两个频率分量的叠加,在对信号进行截断时,使原来的离散谱线向附近展宽,从而导致频谱泄露,使得频谱模糊,频谱分辨率下降。
而在N=128时,未出现此状况。
是因为采样点数超过了最大频率的2倍。
所以可以看出,截取所使用的矩形窗越短,越容易出现频谱泄露现象,失真也越为严重。
第四题(分析随机噪声的叠加)
(1)题目
产生一个淹没在噪声中的信号
,例如由50Hz和120Hz的正弦信号以及一个零均值的随机噪声叠加而成。
分析确定采样频率及数据分析长度,计算并绘出信号的频谱,指出50Hz和120Hz的正弦分量以及噪声分量。
详细说明检测信号的步骤和原理。
(2)源代码
fs=1000;N=1024;
n=0:
N-1;
t=n/fs;
f1=50;f2=120;
x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+randn(1,length(t));%用randn产生一个随机噪声信号
subplot(211)
plot(n,x);
axis([01000-55]);
y=fft(x,N);
mag=abs(y);
f=(0:
length(y)-1)*fs/length(y);
subplot(212)
plot(f(1:
N/2),mag(1:
N/2));
grid;
clear;
(3)结果
Fs=1000;N=1024
(4)分析
由图可见,通过FFT分析可将周期性信号从噪声中提取出来。
由于噪声信号的最高频率分量为120HZ,所以采样频率应该大于240HZ,一般取3到5倍,所以采样频率取1000HZ,数据点数取1024点。
噪声信号的频率分量对应于原信号的频率峰值,通过检测,可以容易的发现信号的正弦分量及噪声分量。
第五题(快速傅里叶分析频谱)
(1)题目
一个序列为
,使用FFT分析其频谱:
1)使用不同宽度的矩形窗截短该序列为M点长度,取M分别为:
a)M=20b)M=40c)M=160;观察不同长度的窗对谱分析结果的影响;
2)使用汉宁窗、哈明窗重做1)
3)对三种窗的结果进行理论分析及比较。
并绘出相应的幅频特性曲线
(2)源代码
%矩形窗
M=input(‘请输入M’);
n=0:
(M-1);
x=0.5*cos(11*pi*n/20)+cos(9*pi*n/20);
a0=boxcar(M);y0=a0'.*x;%转置再点乘
figure
(1);
subplot(211)
stem(n,y0,'.');
xlabel('n');ylabel('y0');title('矩形窗);
Y0=fft(y0,M);w=2*pi*n/(M-1);
subplot(212)
plot(w(1:
M/2)/pi,abs(Y0(1:
M/2)));
xlabel('w/\pi');ylabel('Y0');title('频谱分析');
%汉宁窗
M=input(‘请输入M’);
n=0:
(M-1);
x=0.5*cos(11*pi*n/20)+cos(9*pi*n/20);
a1=hann(M);y1=a1'.*x;
figure
(2);
subplot(211)
stem(n,y1,'.');
xlabel('n');ylabel('y1');title('汉宁窗');
Y1=fft(y1);w=2*pi*n/(M-1);
subplot(212)
plot(w(1:
M/2)/pi,abs(Y1(1:
M/2)));
xlabel('w/\pi');ylabel('Y1');title('频谱分析');
%哈明窗
M=input(‘请输入M’);
n=0:
(M-1);
x=0.5*cos(11*pi*n/20)+cos(9*pi*n/20);
a2=hamming(M);y2=a2'.*x;
figure(3);
subplot(211)
stem(n,y2,'.');
xlabel('n');ylabel('y2');title('哈明窗);
Y2=fft(y2);w=2*pi*n/(M-1);
subplot(212)
plot(w(1:
M/2)/pi,abs(Y2(1:
M/2)));
xlabel('w/\pi');ylabel('Y2');title('频谱分析');
(3)结果
矩形窗:
汉宁窗:
哈明窗:
(4)分析
不同长度的序列对窗口的主瓣长度有一定的影响,M值越大,主瓣长度越窄,使用不同的窗也可以得到同样的结论。
有图可以分析得出,矩形窗的主板长度最窄,汉宁窗次之,哈明窗最宽。
所以对信号进行截取时,矩形窗由于主瓣长度最窄,所以频谱泄露较少,信号失真也小。
而使用哈明窗事,频谱泄露较严重,信号失真也大。
故对信号进行截取时,选用矩形窗最为适宜。
第六题(无限数字滤波器设计)
(1)题目
IIRDF的设计:
用双线性变换法设计BW型或CB型的不同类型(低通、高通、带通)的数字滤波器,要求:
输入数字滤波器的滤波指标,包括通带截止频率,通带最大衰减,阻带截止频率,阻带最小衰减。
设计出相应的数字滤波器。
显示得到的滤波器的系数和阶数,求出系统的单位脉冲响应h(n)。
并画出设计得到的滤波器的幅频特性图(要有坐标标度)和相频特性。
(2)源代码
i=input('Pleaseinputi(选择函数)=');
switchfix(i)
case{1}%低通数字滤波器
wp=input('Pleaseinputwp=');
ws=input('Pleaseinputws=');
ap=input('Pleaseinputap=');
as=input('Pleaseinputas=');
fs=1;
T=1/fs;
wp1=(2/T)*tan(wp/2);
ws1=(2/T)*tan(ws/2);
[n,wn]=buttord(wp1,ws1,ap,as,'s');
[b,a]=butter(n,wn,'s');
[bz,az]=bilinear(b,a,fs);
w=linspace(0,2*pi,1000);
h=freqz(bz,az,w);
subplot(311)
plot(w(1:
500)/pi,abs(h(1:
500)));%幅频特性
grid;
title(['N=',num2str(n)]);
text(0.1,0.8,['b=',num2str(bz)]);
text(0.1,0.4,['a=',num2str(az)]);
xlabel('w/π');ylabel('数字低通幅度(dB)');
subplot(312)
plot(w/pi,angle(h));%相频特性
xlabel('w/π');ylabel('数字低通相位');
grid;
subplot(313)
y=real(ifft(h));
x=0:
999;
plot(x,y);%单位脉冲响应
title('单位脉冲响应');
grid;
clear;
case{2}%高通数字滤波器
wp=input('Pleaseinputwp=');
ws=input('Pleaseinputws=');
ap=input('Pleaseinputap=');
as=input('Pleaseinputas=');
fs=1;
T=1/fs;
wp1=(2/T)*tan(wp/2);
ws1=(2/T)*tan(ws/2);
[n,wn]=buttord(wp1,ws1,ap,as,'s');
[b,a]=butter(n,wn,'high','s');
[bz,az]=bilinear(b,a,fs);
w=linspace(0,2*pi,1000);
h=freqz(bz,az,w);
subplot(311)
plot(w(1:
500)/pi,abs(h(1:
500)));%幅频特性
grid;
title(['N=',num2str(n)]);
text(0.1,0.9,['b=',num2str(bz)]);
text(0.1,0.4,['a=',num2str(az)]);
xlabel('w/π');ylabel('数字高通幅度(dB)');
subplot(312)
plot(w/pi,angle(h));%相频特性
xlabel('w/π');ylabel('数字高通相位');
grid;
subplot(313)
y=real(ifft(h));
x=0:
999;
plot(x,y);%单位脉冲响应
title('单位脉冲响应');
grid;
clear;
case{3}%带通数字滤波器
wpl=input('Pleaseinputwpl=');
wph=input('Pleaseinputwph=');
wsl=input('Pleaseinputwsl=');
wsh=input('Pleaseinputwsh=');
ap=input('Pleaseinputap=');
as=input('Pleaseinputas=');
wp=[wpl,wph];
ws=[wsl,wsh];
fs=1;
T=1/fs;
wp2=(2/T)*tan(wp/2);
ws2=(2/T)*tan(ws/2);
[n,wn]=buttord(wp2,ws2,ap,as,'s');
[b,a]=butter(n,wn,'s');
[bz,az]=bilinear(b,a,fs);
w=linspace(0,2*pi,1000);
h=freqz(bz,az,w);
subplot(311)
plot(w(1:
500)/pi,abs(h(1:
500)));%幅频特性
grid;
title(['N=',num2str(n)]);
text(0.1,1.2,['b=',num2str(bz)]);
text(0.1,0.4,['a=',num2str(az)]);
xlabel('w/π');ylabel('数字带通幅度(dB)');
subplot(312)
plot(w/pi,angle(h));%相频特性
xlabel('w/π');ylabel('数字带通相位');
grid;
subplot(313)
y=real(ifft(h));
x=0:
999;
plot(x,y);%单位脉冲响应
title('单位脉冲响应');
grid;
clear;
end
(3)结果
低通:
高通:
带通:
(4)分析
用双线性变换法设计无限脉冲响应数字滤波器(IIFDF)时,先把数字滤波器指标转换成模拟滤波器的指标,然后根据模拟滤波器的指标设计模拟滤波器,再经过线性变换把模拟滤波器转换成数字滤波器。
该系统要能够设计巴特沃兹型低通、带通、高通滤波器,并能够输入数字滤波器的性能指标,显示出滤波器的阶数和系数。
该系统的关键部分是滤波器的设计部分,按照双线性变换法设计滤波器的步骤进行设计即可。
三、设计总结与心得体会
在课程设计的这段时间,我获益匪浅。
不但进一步掌握了数字信号处理的基础知识及MATLAB的基本操作,还使我了解了信号的产生、采样及频谱分析的方法。
我进一步了解到凡事都需要耐心,细心仔细是成功的保证。
虽然在做的过程中遇到了一些问题,但是我都通过自己的努力解决了它们,证明了自己的能力。
这次课程设计对我各方面的综合能力有了很大的提高,对我以后的工作,实践都有很大的帮助。
在此次课程设计当中,我经常把C语言的语法知识照搬到MATALAB设计中,从而导致调试失败,所以下次用此类语言做课程设计时,应事先学习下这类语言的基本语法,以免与其他语言相混淆。
还有就是有些不定参数存在时,可先取定值,用于调试,这样可以节约调试时间,从而提高效率。
本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力。
使我在各个方面都得到了锻炼,以后有这样的机会一定会更加的很好利用,它不仅可以提高学习的针对性而且可以很好的锻炼动手能力以及自己的逻辑设计能力和处理问题的能力,希望在以后这方面的能力会很好的加强。
四、参考资料
[1]DigitalSignalProcessing:
AComputer-BasedApproach,SanjitK.K.Mitra,2000
[2]UnderstandingDigitalSignalProcessing,RichardG.Lyons,科学出版社
[3]Dual-tonemulti-frequency[EB/OL].http:
//en.wikipedia.org/wiki/
Dual-tone_multi-frequency
[4]《数字信号处理》.丁玉美等西安电子科技大学出版社
[5]数字信号处理教程(第二版),程佩青,清华大学出版社,2001
[6]数字信号处理,赵树杰等,西电出版社,1997.10
[7]数字信号处理—时域离散随机信号处理,丁玉美等,西电出版社,2002.11
[8]MATLAB及在电子信息课程中的应用,陈怀琛等,电子工业出版社出版,2002.4
五、鸣谢
本次课程设计的成功与赵老师的悉心指导是分不开,在此表示衷心的感谢,同时也感谢中南大学铁道学院提供的上机操作机会,让我更好的完成了此次课程设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 信号 处理 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)