MATLAT信号处理实验报告一.docx
- 文档编号:3508177
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:13
- 大小:310.62KB
MATLAT信号处理实验报告一.docx
《MATLAT信号处理实验报告一.docx》由会员分享,可在线阅读,更多相关《MATLAT信号处理实验报告一.docx(13页珍藏版)》请在冰豆网上搜索。
MATLAT信号处理实验报告一
《信号检测与处理》
实验报告
(一)
班级:
_____
学号:
______
姓名:
___________
2012年04月26日
一、实验目的
1、熟悉MATLAB软件的使用;
2、掌握信号的表示方法与基本运算;
3、掌握MATLAB常用函数产生信号并实现信号的可视化方法;
4、学会应用离散傅里叶变换的快速算法FFT分析信号的频谱;
5、深刻理解FFT分析信号的原理,并掌握分析过程中的现象及解决方法;
6、理解滤波器原理并掌握其选择、设计和应用(消噪)方法。
二、实验原理
1、信号是随时间变化的物理量。
信号按频域分析为高频信号和低频信号,按时域分为连续信号x(t)和离散信号x(n)。
连续信号具有时间特性,信号的波形出现的先后、持续时间的长短、随时间变化的快慢等。
离散信号是在某些不连续的时间上有信号值,而在其它时间点上信号没有定义的一类信号。
连续信号与离散信号之间可以互相转换,在信号处理中往往是先把连续信号转换为离散信号后方可进行。
信号的运算包括加、减、乘、除等。
2、信号的频谱分析,就是丢信号进行傅里叶变换,常采用FFT(即快速傅里叶变换算法)对信号进行频谱分析。
3、滤波是利用滤波器对含噪信号进行相应的处理,滤掉噪声,提取或还原有用信号的过程。
滤波过程中,滤波器选择、设计和参数设置非常重要。
三、实验内容与要求
1、产生或记录一组谐波信号(至少两个以上频率分量),记录足够长的时间数字序列
,参数自选;
为分布在另一频段的噪声,参数自选;绘制
,
和
的图形
2、分析信号的频谱,确定采样频率、采样的数据长度,根据FFT的计算结果分析信号的幅值和相位。
调整参数进行仿真,根据仿真结果讨论采样频率、数据长度对频域分析结果的影响。
3、根据上面对
的的时域和频域分析,提出一两个消除噪音的办法;说明方案的合理性,并仿真实现,分析验证结果。
四、实验过程
1、信号
、
产生,并做
运算
MATLAB程序如下:
%******信号发生于叠加运算**********
f1=5;f2=8;%谐波频率
N=512;%采样点数
fs=400;%采样频率
%*************F=fs/N为分辨率
n=0:
N-1;
T=1/fs;%采样间隔
sn=cos(5*f1*pi*n*T)+sin(2*f2*pi*n*T);%谐波序列
dn=randn(size(n));%噪声
xn=sn+dn;%信噪叠加
subplot(3,1,1);plot(n,sn);xlabel('时间/s');ylabel('幅值');
title('s[n]');%s[n]绘图
subplot(3,1,2);plot(n,dn);xlabel('时间/s');ylabel('幅值');
title('d[n]');%d[n]绘图
subplot(3,1,3);plot(n,xn);xlabel('时间/s');ylabel('幅值');
title('x[n]');%s[n]绘图
运行结果如图1所示:
图1S[n],d]n],x]n]波形图
2、
,
频谱分析
MATLAB程序如下:
%*************FFT频谱分析**********************
figure
(2)
xk=T*fft(sn,N);%sn的FFT
wk=2*pi*(0:
N-1)/(N*T);%频率分辨率
subplot(4,1,1);plot(wk,abs(xk));xlabel('\Omega');ylabel('幅值');
title('s[n]幅频特性');%s[n]幅频特性图
subplot(4,1,2);plot(wk,angle(xk));xlabel('\Omega');ylabel('相位');
title('s[n]相频特性');%s[n]相频特性图
xk1=T*fft(xn,N);%sn的FFT
wk1=2*pi*(0:
N-1)/(N*T);%频率分辨率
subplot(4,1,3);plot(wk1,abs(xk1));xlabel('\Omega');ylabel('幅值');
title('x[n]幅频特性');%x[n]幅频特性图
subplot(4,1,4);plot(wk1,angle(xk1));xlabel('\Omega');ylabel('相位');
title('x[n]相频特性');%x[n]相频特性图
运行结果如图2、图3、图4所示:
图2N=512,fs=400时s[n],x[n]的幅频特性和相频特性图
图3N=1024,fs=400时,s[n],x[n]的幅频特性和相频特性图
图4N=512,fs=100时s[n],x[n]的幅频特性和相频特性图
3、
噪声消除
经过上面的频谱分析,得知信号
是周期性谐波信号,含有两个不同的频率成分,适合采用带通滤波器来滤波,由于
的两个频率分量的变化性,采用宽带滤波效果可能相对好一些。
所以,分别设计了宽带Butterworth滤波器和椭圆滤波器对含噪信号
进行去噪。
(1)采用宽带Butterworth滤波器去噪
MATLAB程序如下:
%设计宽带Butterworth滤波器进行信号去噪处理
figure(3)
wp=[140]*2*pi;%通带截止频率
ws=[0.242.5]*2*pi;%阻带截止频率
Rp=1;Rs=20;%通带纹波和阻带衰减
[order,wn]=buttord(wp,ws,Rp,Rs,'s');%求解Butterworth滤波器的最小阶数
w=linspace(0,fs/2,N/2)*2*pi;%设置绘制幅频特性的频率
[b1,a1]=butter(order,wn,'s');%设计Butterworth带通滤波器
H=freqs(b1,a1,w);%计算带通滤波器的频率响应
magH=abs(H);phaH=unwrap(angle(H));%求得振幅谱和相位谱
subplot(3,1,1);plot(w/(2*pi),20*log10(magH));
xlabel('频率/Hz');ylabel('振幅/dB');
ylim([-100100]);xlim([050]);
title('宽带带通滤波器');
gridon;
%**********输出**********
H=freqs(b1,a1,w);%滤波器的幅频响应
H1=zeros(1,N);
fori=1:
N/2
H1(i)=H(i);
H1(N-i)=conj(H1(i));
end
X=fft(xn);%将含噪信号进行傅里叶变换
Y=zeros(1,N);
fori=i:
N
Y(i)=X(i).*H1(i);
end
y=real(ifft(Y));
subplot(3,1,2);plot(n,xn);
title('含噪信号x[n]');ylabel('幅值');
subplot(3,1,3);plot(n,y);
title('宽带滤波器输出信号');
xlabel('时间/s');ylabel('幅值');
%****原信号与恢复信号对比******
XX=zeros(1,N);
fori=1:
N
if(abs(H1(i))>1.0e-1);
XX(i)=Y(i)./H1(i);
end
end
xx=real(ifft(XX));
figure(4);
plot(n,sn,n,xx,':
r');
legend('原始信号','恢复信号',1);
title('原始信号和恢复信号');
xlabel('时间/s');
运行结果如图5、图6所示:
图5宽带Butterworth滤波器幅频特性、含噪信号和滤波输出信号图
图6经宽带Butterworth滤波器后恢复信号与原信号对比图
(2)采用椭圆滤波器进行信号去噪
MATLAB程序如下:
%*********设计椭圆滤波器进行信号去噪处理*************
ws=[0.0000124.9]*2/fs;wp=[0.00124.8]*2/fs;%通带和阻带边界频率(归一化频率)
Rp=1;Rs=8;Nn=512;%通带波纹和阻带衰减以及绘制频率特性的数据点数
[Order,Wn]=ellipord(wp,ws,Rp,Rs);%求取数字滤波器的最小阶数和归一化截止频率
[b,a]=ellip(Order,Rp,Rs,Wn);%按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器
figure(5)
[H,f]=freqz(b,a,Nn,fs);%按传递函数系数、数据点数和采样频率求得滤波器的频率特性
subplot(2,1,1),plot(f,20*log10(abs(H)));
xlabel('频率/Hz');ylabel('振幅/dB');gridon;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(H)));
xlabel('频率/Hz');ylabel('相位/^o');gridon;
y=filtfilt(b,a,xn);%在宽带滤波器上的输出
figure(6)
subplot(2,1,1),plot(n,xn)
xlabel('时间/s'),title('输入信号');
ylabel('振幅');
subplot(2,1,2),plot(n,y)
xlabel('时间/s'),title('输出信号');
ylabel('振幅');
[H,f]=freqz(b,a,N,fs,'whole');%得到原信号的特性
Y=fft(y);
XX=zeros(1,N);
forii=1:
N%得到信号频率域表示
if(H(ii)>1.0e-4)
XX(ii)=Y(ii)./H(ii);
end
end
disp=real(ifft(XX));%得到原信号
figure(7)
plot(n,sn,n,disp,'r')
legend('原始信号','恢复信号',1);
xlabel('时间/s');
ylabel('振幅');
title('原始信号和恢复信号');
运行结果如图7、图8所示:
图7椭圆滤波器幅频特性和相频特性图
图8经过椭圆滤波器滤波后的恢复信号与元信号对比图
五、实验结论与分析
1、从图2、图3、图4可以看出,采样频率
对频谱分析结果具有决定性影响,而数据长度
由于受到
和
因素影响,当
确定时,
的变化对频谱分析影响较小。
根据理论,当
低于所分析信号的最高频率
的二倍时,就会引起“频率混淆”现象,使得原信号中的频率成分出现在数字信号中完全不同的频率处,造成信号的失真。
从图中看出,当采样频率大于二倍最高分析频率时,采样结果均能反映原始波形中的最高频率成分。
采样频率
越大,傅里叶变换越能反映原信号的特性。
所以,影响频谱特性的决定性因素是采样频率
。
2、从图5、图6、图7、图8可以看出,含噪信号
经过宽带Butterworth滤波器和椭圆滤波器滤波后输出的信号与原信号
的频谱特性相似性很大,说明达到了预期的滤波目的和效果。
刚开始采用窄带滤波器进行滤波时,无法消除噪声,采用宽带滤波器后,实现了滤波,能够还原原信号。
通过仿真实验对比,宽带Butterworth滤波器效果相对于椭圆滤波器而言滤波效果好些,椭圆滤波器需要正确设置通带波纹和阻带衰减系数,设置不当滤波效果就不是很好。
六、实验总结
通过本次实验,本人认识到了MATLAB在数字信号处理中的应用方法,了解了MATLAB工具箱的强大的功能和方便的操控。
通过MATLAB的仿真,将数字信号处理理论与实际相结合起来,并把抽象的信号形象化表现出来,从而加深了对理论知识的理解,同时还提高了自己独立思考、分析、解决问题的能力,对数字信号处理这门课也产生了浓厚的兴趣。
在这次实验中,最大的收获是掌握了信号发生、运算和分析的步骤和方法,深深地体会到数字信号处理的重要性。
加深了对离散信号的DFT和对快速傅里叶变换FFT的理解,熟悉了FFT算法极其程序的编写,了解了应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT,同时掌握了滤波器的选择、设计和应用方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAT 信号 处理 实验 报告