资源描述:
《数据采集与信号处理.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、基本内容:基于FFT的功率谱分析程序设计与应用1.基本要求1)对一个人为产生的信号进行采用FFT变换方法进行功率谱分析。已知信号x(n)=120.0*COS(2*3.14*SF*n/FS)式中:n=0,1,2……N-1SF---信号频率FS---采样频率其FFT变换结果X(k)可用下面提供的FFT子程序求出,计算功率谱的公式为:22W(k)=2(XR(k)+XI(k))/N式中:k=0,1,2……N/2-1XR(k)---X(k)的实部XI(k)---X(k)的虚部请用VB,VC或C++Builder编译器编程,或采用MATLAB计算,或采用高级语言调用MATLAB计算。处
2、理结果为采用窗口显示时域波形和频域波形。此信号的时域谱,频域谱,功率谱如下图所示:x=120.0*cos(2*3.14*SF*t)时域波形15010050y0-50-100-1500123456t数据采集与信号处理作业4x=120.0*cos(2*3.14*SF*t)幅频谱图N=1024x10654值3幅2100102030405060708090100频率(Hz)6x=120.0*cos(2*3.14*sf*t)功率谱密度x10765度4密谱率3功2100102030405060708090100频率(Hz)2数据采集与信号处理作业其MATLAB代码为:FS=200;SF=1
3、0;N=1024;n=0:N-1;t=n/FS;x=120.0*cos(2*3.14*SF*t);subplot(221);plot(t,x);xlabel('t');ylabel('y');title('x=120.0*cos(2*3.14*SF*t)时域波形');grid;y=fft(x,N);mag=abs(y);f=(0:length(y)-1)*FS/length(y);%进行对应的频率转换subplot(222);plot(f(1:N/2),mag(1:N/2));%做频谱图xlabel('频率(Hz)');ylabel('幅值');title('x=120.0*c
4、os(2*3.14*SF*t)幅频谱图N=1024');grid;Py=2*(y.*conj(y))/N;%计算功率谱密度Pysubplot(223)plot(f(1:N/2),Py(1:N/2));xlabel('频率(Hz)');ylabel('功率谱密度');title('x=120.0*cos(2*3.14*sf*t)功率谱密度');grid;2)对实验所采集的转子振动信号进行频谱分析3数据采集与信号处理作业转子振动信号频谱图1.41.210.8值幅0.60.40.20050100150200250300350400450500频率(Hz)其MATLAB代码:SF=10
5、00;fid=fopen('E:张勇论文资料数据采集与信号处理作业信号处理大作业sanjiao_45HZ_1024_1000HZ');%转子信号[a,N]=fscanf(fid,'%f');fclose(fid);y=fft(a,N);%FFT运算Pyy=sqrt(y.*conj(y))*2.0/N;%取功率普密度f=(0:length(Pyy)-1)*SF/length(Pyy);LPyy=20*log10(Pyy);plot(f(1:N/2),Pyy(1:N/2));%输出FS/2点幅频谱图xlabel('频率(Hz)');ylabel('幅值');title('转
6、子振动信号频谱图');grid;2.讨论:1)信号经过均值化处理或不经过均值化处理的结果比较4数据采集与信号处理作业含有直流分量的余弦曲线未均值化的功率谱波形图8000700060005000度密4000谱率功30002000100000102030405060708090100频率(Hz)含有直流分量的余弦曲线均值化的功率谱波形图700060005000度4000密谱率3000功2000100000102030405060708090100频率(Hz)通过以上两个图的分析,我们可以看出均值化处理后的频谱的低频段消失,这就去去除了常规的干扰频谱,如环境噪声等,对我们进行频谱分析
7、有很大作用。5数据采集与信号处理作业其MATLAB代码为Fs=200;%采样频率n=0:1:200;N=1024;SF=10;%信号频率xn=120.0*cos(2*3.14*SF*n/Fs)+70;%产生波形序列window=boxcar(length(xn));%矩形窗nfft=512;%采样点数[Pxx,f]=periodogram(xn,window,nfft,Fs);%直接法plot(f,Pxx);xlabel('频率(Hz)');ylabel('功率谱密度');title('含有