声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1035|回复: 3

[综合讨论] 请问下列数据的频谱对吗?

[复制链接]
发表于 2007-4-25 21:54 | 显示全部楼层 |阅读模式

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

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

x
附件里是一个采样数据,由于存在噪声,因此希望分析得出该数据的主频率,从而根据情况实现滤波,因此设计了下面的程序,不知道正确与否,还望高手指教
%%%%%%%%%%Code%%%%%%%%%%%%
load Value.txt
Fs=20;%采样频率
t=0:1/Fs:(length(Value)-1)/Fs;
x=Value;
nfft=256;
y=fft(x,nfft);
n=0:length(y)-1;
f=Fs*n/length(y);
subplot(211)
plot(t,x,'b*')
hold on
plot(t,x,'b-')
grid on
subplot(212)
plot(f,abs(y));
title('频谱图')
xlabel('频率Hz')
grid on
Value.txt (1.09 KB, 下载次数: 26)

示意图

示意图
回复
分享到:

使用道具 举报

发表于 2007-4-26 07:05 | 显示全部楼层
从数据波形来看,有很大的直流分量,这样在作谱分析后,在0频率处幅值很大,而信号中感兴趣的频率却看不出了。建议在FFT之前消去直流。

评分

1

查看全部评分

 楼主| 发表于 2007-4-26 19:33 | 显示全部楼层
刚才清除了COOKIES,好不容易才登录上呀,谢谢songzy41兄的指正,查阅了论坛上的相关帖子,对原始信号进行了消除直流处理,这下能够清除的发现各个频率段,修正后的程序如下:
load Value.txt;
Fs=25;
t=0:1/Fs:(length(Value)-1)/Fs;
x=Value;
x=(x-mean(x))/std(x);
N=length(x);
fx=fft(x);
df=Fs/N;
n=0:N/2;
f=n*df;
subplot(211);
plot(t,Value);grid;
xlabel('Time')
ylabel('Value')
subplot(212);
plot(f,abs(fx(n+1))*2/N); grid;
xlabel('Freq')
ylabel('Magnitude')
  现在有以下问题需要请教:
1、根据以上程序对原始采样数据计算的频幅关系对吗?
2、从下列频幅关系可以发现大约在0.18、1.2Hz处有两个峰,我想这可能就是上述采样数据的频率吧,但是哪个才是真正的主频,哪个是噪声呢?有什么标准,或者要看实际情况?
3、如果进行低通滤波(比如说在2Hz以下),应选用什么语句?谢谢指教
show.jpg
发表于 2007-4-28 06:33 | 显示全部楼层
原帖由 great2001 于 2007-4-26 19:33 发表
现在有以下问题需要请教:
1、根据以上程序对原始采样数据计算的频幅关系对吗?
2、从下列频幅关系可以发现大约在0.18、1.2Hz处有两个峰,我想这可能就是上述采样数据的频率吧,但是哪个才是真正的主频,哪个是噪声呢?有什么标准,或者要看实际情况?
3、如果进行低通滤波(比如说在2Hz以下),应选用什么语句?谢谢指教

1、对的;
2、对于楼主的信号源不了解,对0.18、1.2Hz处有两个峰很难作判断。从信号波形来看,好象除了有直流分量外还有一趋势项,0.18Hz的峰值有可能是由该趋势造成。但是否是趋势项,要结合信号来判断的。
3、有关低通滤波器的设计,有许多书中都有介绍。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-26 11:36 , Processed in 0.059070 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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