一、基本内容: 基于fft的功率谱分析程序设计与应用。
1.基本要求。
1) 对一个人为产生的信号进行采用fft变换方法进行功率谱分析。
已知信号x(n)=120.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=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*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=120.0*cos(2*3.14*sf*t)功率谱密度');
grid;2)对实验所采集的转子振动信号进行频谱分析。
其matlab**:
sf=1000
fid = fopen('e:\张勇**资料\数据采集与信号处理作业\信号处理大作业\sanjiao_45hz_1024_1000hz');转子信号。
a,n]= fscanf(fid,'%f');
fclose(fid);
y=fft(a,nfft运算。
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('转子振动信号频谱图');
grid;2.讨论:
1) 信号经过均值化处理或不经过均值化处理的结果比较
通过以上两个图的分析,我们可以看出均值化处理后的频谱的低频段消失,这就去去除了常规的干扰频谱,如环境噪声等,对我们进行频谱分析有很大作用。
其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('含有直流分量的余弦曲线未均值化的功率谱波形图');
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]);grid on;
y=fft(w,nfft运算。
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('汉宁窗函数的时域波形图');grid on;
y=fft(w,nfft运算。
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,nfft运算。
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,nfft运算。
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,nfft运算。
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;
测试信号处理与分析大作业
结课作业。姓名 陈静。学号 1001170101 专业 测控技术与仪器。指导教师 吴健。南京理工大学机械工程学院。目录。题目一 测试信号的误差分析与预处理3 题目二 测试信号的时域分析与处理8 题目三 测试信号的频谱分析14 题目四 信号的相关分析与功率谱分析20 题目五 数字滤波器的设计25 附录...
水下信号处理大作业
水下信号处理 作业。假定接收基阵的阵元数目为16,阵元间距为25mm 目标位于5 方位 速度vkn v的取值范围 30 30,步长5kn 距离rkm r的取值范围0.5 5,步长500m 发射信号为中心频率f fkhz f的取值范围 带宽为wkhz w的取值范围0 2khz,步长500hz 的正调频...
现代信号处理大作业
姓名 潘晓丹。学号 0140349045 班级 a1403492 ld算法实现ar过程估计。p阶ar模型的差分方程为 其中是均值为0的白噪声。ar过程的线性 方法为 先求得观测数据的自相关函数,然后利用yule walker方程递推求得模型参数,再根据公式求得功率谱的估计。yule walker方程...