声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1274|回复: 3

[综合讨论] 怎样对一幅位图里的波形频谱分析 (附件为.rar)

[复制链接]
发表于 2007-9-18 16:34 | 显示全部楼层 |阅读模式

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

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

x
(下载附件后请改扩展名为.rar)
附件里面有一幅位图catch,一个pic.m和一个t.m文件,位图里面是一个波形,横轴为时间轴 每个间隔为一秒;
目的是要对标号为O1-A1的波形进行频谱分析, 即想知道频率为7到13Hz的的频率分量在 415秒-417秒 和  417秒-419秒  两个时间段里幅值或能量的变化。 (t.m文件是一个对方波进行频谱分析的例子)
现在已经可以把图像给提取出来,并生成一个txt文件,往下怎么做呢?希望高手指点!谢谢

[ 本帖最后由 花如月 于 2007-9-18 19:09 编辑 ]

catch.doc

40.88 KB, 下载次数: 38

回复
分享到:

使用道具 举报

发表于 2007-9-18 19:17 | 显示全部楼层
干嘛走这么多的弯路呀,直接对绘图的原始数据进行分析不行么?从图像里准确提取曲线还是比较困难的。而且看你的程序是按照颜色分量提取的,我没有试,但是觉得要做到准确也是比较困难的
-----------------------------------------pic.m----------------------------------------------------
clear,close all;
I=imread('catch.bmp');
[y,x,z]=size(I);
I1=double(I);
for i=1:x
for j=1:y
if((I1(j,i,1)==0)&&(I1(j,i,2)==128)&&(I1(j,i,3)==64))
h1(i)=y-j;     % h1(i)数组存储了图像中O1-A1各点数据的纵坐标
break;
end
end
end
plot(h1);hold on  % 绘制O1-A1,O2-A2的图像
csvwrite('catch1.txt',h1);
-------------------------------------------t.m----------------------------------------------------
clear all;clc;close all;
Ts=0.0001;
fs=1/Ts;%采样率
t=0:Ts:0.0199;
x=2*square(2*pi*50*t,20);
N=length(x);%N是样点的个数,
fx=fft(x);
df=fs/(N-1);%频率分辨率在这里是表示谱图上一条谱线与下一条谱线之间的频率间隔,也是频域上横坐标的间隔。
               %N是样点的个数,df是频率分辨率,df=fs/N,fs=100。fs=100是从那儿看出来的呢?是从t=-1:0.01:1中的0.01得到的。
n=0:(N-1)/2;
f=n*df;
subplot(211);
plot(t,x);grid;
subplot(212);
JueDuiZhi=abs(fx(n+1))*2/N;
bar(f,abs(fx(n+1))*2/N); grid;
c=fx(n+1);

[ 本帖最后由 eight 于 2007-9-19 10:04 编辑 ]
catch.PNG
发表于 2007-9-18 19:29 | 显示全部楼层
如果没有原始数据,建议直接用截图工具,把那条曲线截出来然后处理(否则根据颜色来提取O1-A1,O2-A2的图像分不开,而且rgb值也不那么容易取)。有了曲线图要计算坐标就可以参考本版的一个精华帖子如何把曲线的坐标找出来,近似得到绘图数据,然后进行分析。

[ 本帖最后由 花如月 于 2007-9-18 19:34 编辑 ]
 楼主| 发表于 2007-9-20 08:29 | 显示全部楼层
正在研究中...
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 23:24 , Processed in 0.061267 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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