数据采集与信号处理(个人整理版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.基本内容:基于FFT的功率谱分析程序设计与应用

1)对一个人为产生的信号,采用FFT变换方法进行功率谱分析

已知信号x(n)=100.0*COS(2*3.14*S F*n/F S) +50.0*COS(4*3.14*S F*n/F S),n=0,1,2 ……N-1

式中:N---采样点数,必须为2x

S F---信号频率,S F=10 Hz

F S---采样频率

其FFT变换结果X(k)可用下面提供的FFT子程序求出,计算功率谱的公式为:

G(k)=2(XR(k)2 +XI(k)2)/N , k=0,1,2 ……N/2-1 式中:XR(k)--- X(k)的实部

XI(k)--- X(k)的虚部

请用VB,VC或C++Builder编译器编程,或采用MATLAB计算。处理结果(时域波形或频谱)采用窗口显示,并且拷贝至作业稿中。

注意:除FFT分析程序可参考附件所附的程序外,其余程序必须自己设计(小波或EMD除外),后面限选题目要求与此相同。

该信号的处理结果如下:

其matlab程序如下:

SF=10.0;%信号频率

N=1024;%采样点数

n=0:1023;%时间轴N个点

FS=300;%采样频率

t=n/FS;

x=100.0*cos(2*3.14*SF*t) +50.0*cos(4*3.14*SF*t);

figure;

plot(t,x);%信号输出

xlabel('t');

ylabel('y');

title('时域波形');

grid;

y1=fft(x,N);%FFT运算

mag=abs(y1);

f=(0:length(y1)-1)*FS/length(y1);

figure;

plot(f,mag);%做频谱图

xlabel('频率(Hz)');

ylabel('幅值');

title('幅频谱图');

grid;

Pyy1 =(y1.*conj(y1))*2/N;%取功率普密度

figure;

plot(f,Pyy1);

xlabel('频率(Hz)');

ylabel('功率谱密度');

title('功率谱密度');

grid;

2)对一个用A/D数据采集板采集的信号进行频谱分析参考数据文件名(见作业文件压缩包):

①fanbo_45HZ_1024_1000HZ,45Hz方波发生器输出信号采集结果,采样频率1000Hz,采样点数1024

② sin_45HZ_1024_1000HZ,45Hz正弦波发生器输出信号采集结果,采样频率1000Hz,采样点数1024

③ A_1_1024_1000HZ,汽轮机轴向振动位移信号采集结果,采样频率1000Hz,采样点数1024

数据文件名的含义,如文件名为fanbo_45HZ_1024_1000HZ,表示45Hz方波信号,采样点数1024,采样频率1000Hz

①该信号处理结果如下:

其matlab程序如下:

SF=45;%信号频率

N=1024;%采样点数

n=0:1023;%时间轴N个点

FS=1000;%采样频率

t=n/FS;

x=load('D:\fanbo_45HZ_1024_1000HZ.txt');

figure;

plot(t,x);%信号输出

xlabel('t');

ylabel('y');

title('时域波形');

grid;

y1=fft(x,N);%FFT运算

mag=abs(y1);

f=(0:length(y1)-1)*FS/length(y1); figure;

plot(f,mag);%做频谱图

xlabel('频率(Hz)');

ylabel('幅值');

title('幅频谱图');

grid;

Pyy1 =(y1.*conj(y1))*2/N;%取功率普密度figure;

plot(f,Pyy1);

xlabel('频率(Hz)');

ylabel('功率谱密度');

title('功率谱密度');

grid;

②该信号的处理结果如下:

其matlab程序基本同上。

③该信号处理结果如下:

其matlab程序基本同上。

3)讨论

1. 信号经过零均值化处理或不经过零均值化处理的结果比较。

对于已知信号x=100.0*cos(2*3.14*SF*t) +50.0进行处理,结果如下:

该信号的非零均值相当于在此信号的低频段叠加上了一个直流分量,可以看到在零频率处出现一个很大的谱峰,并会影响在零频率左、右处的频谱曲线,使之产生较大误差。零均值化处理后零频率出的谱峰消失,并去除了干扰。

其matlab处理程序如下:

FS=300;%采样频率

n=0:300;

N=1024;%采样点数

SF=10.0;%信号频率

t=n/FS;

x=100.0*cos(2*3.14*SF*t) +50.0;%产生波形序列

window=boxcar(length(x));%矩形窗

[P,f]=periodogram(x,window,N,FS);%直接法

subplot(211)

plot(f,P);

title('信号未零均值化的功率谱波形图');

xlabel('频率');

ylabel('功率谱密度');

%零均值化的信号

avg=mean(x);

x1=x-avg;

window=boxcar(length(x));%矩形窗

[P,f]=periodogram(x1,window,N,FS);%直接法

subplot(212);

plot(f,P);

title('信号零均值化后的功率谱波形图');

xlabel('频率');

ylabel('功率谱密度');

2.采用不同窗函数时的谱结果分析(矩形窗函数, 汉宁窗函数,汉明窗)。

相关文档
最新文档