声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2205|回复: 6

[FFT] 数据FFT处理的问题(含data和code)

[复制链接]
发表于 2007-1-17 17:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好

附件是我的数据文件,包括2个文件,文件1(激励信号)--- inp_fz.txt,文件2(响应信号))--- out_uz.txt。先要处理一下,修改文件名 inp_fz.txt->inp_fz.rar, out_uz.txt->out_uz.rar
它们都是时域的,时间在文件2中有
现在我想求频率响应曲线---响应信号/激励信号,即 out_uz(j*w) / inp_fz(j*w)
下面是我的代码,但是结果不对,希望谁能帮我,谢谢!

clear; close all; clc;
% input file
fid1 = fopen('inp_fz.txt','rt');
cc1  = textscan(fid1,'%f',200001,'headerlines',1);
input = cc1{1,1};
fclose(fid1);

% output file
fid2 = fopen('out_uz.txt','rt');  %% Open in read mode as text.
cc2 = textscan(fid2,'%f    %f',200001,'headerlines',1);
tt = cc2{1,1};                 %采样时间
output = cc2{1,2};
fclose(fid2);

% matlab code to do FFT calculation
Fs=1e6;                        %采样频率
N=1024*8;
w1=abs(fft(input,N));
w2=abs(fft(output,N));         %对输出信号 频谱分析
w=w2./w1;
freq = Fs*(0:(N/2))/N;   
% plot(freq,w(1:(N/2+1)))
semilogx(freq,w(1:(N/2+1)))
grid on;

inp_fz.txt

953 Bytes, 下载次数: 44

out_uz.txt

102.69 KB, 下载次数: 34

回复
分享到:

使用道具 举报

发表于 2007-1-18 08:46 | 显示全部楼层
信号是实测的吗?为什么说结果不对呢
 楼主| 发表于 2007-1-18 14:14 | 显示全部楼层
这个信号不是实测的,是我用ansys仿真得到的,因此它不含有外部噪音
因为我关心待测的频率到达 1e5Hz, 因此我的采样频率为 1e6Hz.
我输入信号为半正弦脉冲信号,脉冲宽度0.002s,从我的数据文件可以看出。

附图 是我直接用ansys做谐响应分析得到的 频率响应曲线。
我不知道我上面的数据分析过程错误呢,还是说,我的半正弦脉冲信号脉冲宽度太大了

谢谢帮忙
file000.jpg
发表于 2007-1-19 09:15 | 显示全部楼层
把传递函数做成双对数图,可以看出前面一部分和ansys的频响函数应该是一样的.只有后面一部分不对.
再从input和output的频谱图来看,可看出后面一部分频率成分两者都很小,所以做传递函数出来的图是杂乱的.
因此你的怀疑应该是对的,主要是因为输入信号的频带不够宽,没有能激起第二阶模态.把input的脉冲时间调窄一点应该就行

[ 本帖最后由 yangzj 于 2007-1-19 09:21 编辑 ]

input

input

output

output

传递函数

传递函数
 楼主| 发表于 2007-1-20 23:52 | 显示全部楼层
to yangzj,

首先谢谢您的回答。
根据您的提示,我修改后得到的数据如附件
文件1(激励信号)--- inp_fz.txt,文件2(响应信号))--- out_uz.txt。先要处理一下,修改文件名 inp_fz.txt->inp_fz.rar, out_uz.txt->out_uz.rar

并且附有2个新的图片,他们非常类时

ansys_transf

ansys_transf

matlab_transf

matlab_transf

inp_fz.txt

914 Bytes, 下载次数: 16

inp_fz.rar

out_uz.txt

102.63 KB, 下载次数: 14

out_uz.rar

 楼主| 发表于 2007-1-21 00:01 | 显示全部楼层
不过我有个新的问题
看附图,看图中我用黑圈圈出来的,那些幅值相当的大,我想是不是如信号处理书中所说的有泄漏呢?
我想是不是加入窗函数可以解决这个问题呢?
还有,书里面说脉冲函数可以加指数窗,应该如何加呢?
我做个简单的例子,就是为将来做实验时候,当发现了频响曲线怪异时候,可以很快分析出是哪部分出问题了
谢谢
Snap1.jpg
发表于 2007-1-21 19:28 | 显示全部楼层
这主要还是由于你的输入信号不够好,没能很好的激出这些频率,传递函数是输出除以输入,试想当输入在这个频率处的幅值接近于0时,由于计算误差等原因得出来的结果就很难想象了,出现这些峰值也很容易理解了.
在实测的时候,做传递函数做模态分析,这种锤击法只适用于小阻尼材料的测试,而且需要做多段平均,并且要做相干函数区分出虚假峰.
另外你说的应该是脉冲响应函数加指数窗吧,就是直接把输出乘上一个指数窗,主要是在阻尼过小的情况下,强制把信号衰减下来
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-30 11:15 , Processed in 0.062002 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表