数据采集与信号处理.docx

上传人:b****1 文档编号:1226908 上传时间:2022-10-19 格式:DOCX 页数:21 大小:254.59KB
下载 相关 举报
数据采集与信号处理.docx_第1页
第1页 / 共21页
数据采集与信号处理.docx_第2页
第2页 / 共21页
数据采集与信号处理.docx_第3页
第3页 / 共21页
数据采集与信号处理.docx_第4页
第4页 / 共21页
数据采集与信号处理.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据采集与信号处理.docx

《数据采集与信号处理.docx》由会员分享,可在线阅读,更多相关《数据采集与信号处理.docx(21页珍藏版)》请在冰豆网上搜索。

数据采集与信号处理.docx

数据采集与信号处理

哈尔滨理工大学

研究生考试试卷

 

考试科目:

数据采集与信号处理

阅卷人:

专业:

姓名:

 

2013年06月21日

一、基本内容:

基于FFT的功率谱分析程序设计与应用

1.基本要求

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

已知信号x(n)=80.0*COS(2*3.14*SF*n/FS)

式中:

n=0,1,2……N-1

SF---信号频率

FS---采样频率

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

W(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计算,或采用高级语言调用MATLAB计算。

处理结果为采用窗口显示时域波形和频域波形。

此信号的时域谱,频域谱,功率谱如下图所示:

其MATLAB代码为:

FS=200;

SF=10;

N=1024;

n=0:

N-1;

t=n/FS;

x=80.0*cos(2*3.14*SF*t);

subplot(221);

plot(t,x);

xlabel('t');

ylabel('y');

title('x=80.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=80.0*cos(2*3.14*SF*t)幅频谱图N=1024');

grid;

Py=2*(y.*conj(y))/N;%计算功率谱密度Py

subplot(223)

plot(f(1:

N/2),Py(1:

N/2));

xlabel('频率(Hz)');

ylabel('功率谱密度');

title('x=80.0*cos(2*3.14*sf*t)功率谱密度');

grid;

 

二.对一个用A/D数据采集板采集的信号进行频谱分析

1)方波的频谱分析图像和程序

%fangbopufenxi

fid=fopen('F:

\研究生信号处理\fanbo_45HZ_1024_1000HZ\fanbo_45HZ_1024_1000HZ');%读入方波信号

SF=1000;%采样频率为1000HZ

[a,N]=fscanf(fid,'%f');

fclose(fid);%关闭打开的方波文件

y=fft(a,N);%进行快速傅里叶运算

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),'black');%输出FS/2点幅频谱图

grid;

 

2)三角波的频谱分析图像和程序

%sanjiaobopufenxi

fid=fopen('F:

\研究生信号处理\fanbo_45HZ_1024_1000HZ\sanjiao_45HZ_1024_1000HZ');%读入三角波信号

SF=1000;%采样频率为1000HZ

[a,N]=fscanf(fid,'%f');

fclose(fid);%关闭打开的三角波文件

y=fft(a,N);%进行快速傅里叶运算

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),'black');%输出FS/2点幅频谱图

grid;

 

3)正弦波的频谱分析图像和程序

%zhengxianbopufenxi

fid=fopen('F:

\研究生信号处理\fanbo_45HZ_1024_1000HZ\sin_45HZ_1024_1000HZ');%读入三角波信号

SF=1000;%采样频率为1000HZ

[a,N]=fscanf(fid,'%f');

fclose(fid);%关闭打开的三角波文件

y=fft(a,N);%进行快速傅里叶运算

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),'black');%输出FS/2点幅频谱图

grid;

由上面的三幅图我们可以看出,在三角波、正弦波和方波这三种相同频率波的频谱分析中,方波的谐波特性最明显而且都是频率的奇数倍,三角波的谐波特性次之,正弦波的最不明显。

 

三、讨论

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

通过以上两个图的分析,我们可以看出均值化处理后的频谱的低频段消失,这就去去除了常规的干扰频谱,如环境噪声等,对我们进行频谱分析有很大作用。

其MATLAB代码为

%含直流分量而未均值化的信号

FS=200;%采样频率

n=0:

1:

200;

SF=10;%信号频率

xn=80.0*cos(2*pi*SF*n/FS)+70;%产生波形序列

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

nfft=512;%采样点数

[Pxx,f]=periodogram(xn,window,nfft,FS);%直接法

subplot(211);

plot(f,Pxx);title('含有直流分量的余弦曲线未均值化的功率谱波形图');

xlabel('频率(Hz)');

ylabel('幅值');

grid;

%含直流分量而经均值化处理的信号

z=mean(xn);

h=xn-z;

[Pxx1,f]=periodogram(h,window,nfft,FS);%直接法

subplot(212);

plot(f,Pxx1);title('含有直流分量的余弦曲线均值化后的功率谱波形图');

xlabel('频率(Hz)');

ylabel('幅值');

grid;

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

 

 

其MATLAB代码为:

y=fft(x,N);

mag=abs(y);

f=(0:

length(y)-1)*FS/length(y);%进行对应的频率转换

w_han=(hanning(N))';

y1=x.*w_han;

figure;

plot(t,y1);

xlabel('t');

ylabel('y');

title('汉宁窗时域波形');

grid;

y2=mag.*w_han;

figure;

plot(f(1:

N/2),y2(1:

N/2));

xlabel('频率(Hz)');

ylabel('幅值');

title('汉宁窗频域特性');

grid;

w_rect=(rectwin(N))';

y3=x.*w_rect;

figure;

plot(t,y3);

xlabel('t');

ylabel('y');

title('矩形窗时域波形');

grid;

y4=mag.*w_rect;

figure;

plot(f(1:

N/2),y4(1:

N/2));

xlabel('频率(Hz)');

ylabel('幅值');

title('矩形窗频域特性');

grid;

w_ham=(hamming(N))';

y5=x.*w_ham;

figure;

plot(t,y5);

xlabel('t');

ylabel('y');

title('汉明窗时域波形');

grid;

y6=mag.*w_ham;

figure;

plot(f(1:

N/2),y6(1:

N/2));

xlabel('频率(Hz)');

ylabel('幅值');

title('汉明窗频域特性');

grid;

3)典型函数的频谱(矩形窗函数,汉宁窗函数,直线,阶跃函数,δ函数,方波,三角波等)

此部分MATLAB代码如下:

t=0:

0.001:

0.2;

N=256;

FS=300;

w=boxcar(N);%产生信号

subplot(211);plot(w);title('矩形窗函数的时域波形图');

axis([0,260,0,2]);gridon;

y=fft(w,N);%FFT运算

mag=abs(y);%取幅值

f=(0:

length(y)-1)*FS/length(y);

subplot(212);plot(f(1:

N/2),mag(1:

N/2));%输出FS/2点幅频谱图

title('矩形窗函数频域波形图');grid;

xlabel('频率');ylabel('幅值');

t=0:

0.001:

0.2;

N=256;

FS=300;

w=hanning(N);%产生信号

subplot(211);plot(w);title('汉宁窗函数的时域波形图');gridon;

y=fft(w,N);%FFT运算

mag=abs(y);%取幅值

f=(0:

length(y)-1)*FS/length(y);

subplot(212);

plot(f(1:

N/2),mag(1:

N/2));%输出FS/2点幅频谱图

title('汉宁窗函数频域波形图');grid;

xlabel('频率');ylabel('幅值');

t=0:

0.001:

0.2;

N=256;

FS=300;

w=1;%产生信号

y=fft(w,N);%FFT运算

mag=abs(y);%取幅值

f=(0:

length(y)-1)*FS/length(y);

plot(f(1:

N/2),mag(1:

N/2));%输出FS/2点幅频谱图

title('直线频域波形图');grid;

xlabel('Frequency(Hz)');ylabel('Magnitude');

%阶跃函数的频域波形图

clc;clf;t=0:

0.001:

0.2;

N=256;

FS=300;

w=ones(1,N);%产生信号

subplot(211);plot(w);

title('阶跃函数的时域波形图');grid;

y=fft(w,N);%FFT运算

mag=abs(y);%取幅值

f=(0:

length(y)-1)*FS/length(y);

subplot(212);

plot(f(1:

N/2),mag(1:

N/2));%输出FS/2点幅频谱图

title('阶跃函数的频域波形图');grid;

xlabel('频率');ylabel('幅值');

t=0:

0.001:

0.2;

N=256;

FS=300;

w=zeros(1,N);w

(1)=1;%产生信号

subplot(211);plot(w);grid;

title('δ函数的时域波形图');

y=fft(w,N);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1