sunjiaohua 发表于 2007-3-23 10:28

求数据的频谱图

可能是很笨的问题,但是却困扰了一个星期。希望高手、大侠能够帮助,领导天天催,实在没办法了。是这样:每天得到一个数据,共268天,也就是有268个数据,想求这269个数据的频谱图,不知道怎么求,用fft,然后呢,实在搞不懂,不是搞这个的,可是硬着头皮也不行,求求你们啦,:'(
部分数据,y=[ 309280 252635873328 4073   456938404890549410200   462656306105 510262425076 6108   71106024],最后一天的期限了,:@Q

[ 本帖最后由 xinyuxf 于 2007-7-22 12:11 编辑 ]

lvma6 发表于 2007-3-24 10:35

clc
clear all
file_choice = input('');
%读取外部文件
if(file_choice==1)
    = uigetfile('*.*');
    filename = fullfile(pathname, filename);
    fid = fopen(filename,'r');
    channel = fscanf(fid,'%g ',);
else
    channel = input(' Enter the matrix name:');
end


motor_parameter.sample_fre=5000;
motor_parameter.analysis_num=length(channel);

t=0:1/motor_parameter.sample_fre:motor_parameter.analysis_num/motor_parameter.sample_fre;
y=fft(channel);                                                    %傅立叶变换


%fft及时间曲线绘图

                                                      
    motor_parameter.analysis_num=length(channel);                              %信号的分析点数
    t=0:1/motor_parameter.sample_fre:motor_parameter.analysis_num/motor_parameter.sample_fre;
    f=motor_parameter.sample_fre*(0:motor_parameter.analysis_num-1)/motor_parameter.analysis_num;
    subplot(2,2,1)
   
    plot(t(1:motor_parameter.analysis_num),channel(1:motor_parameter.analysis_num))   %绘制时域波形
    subplot(2,2,2)
   
    plot(f(1:motor_parameter.analysis_num/2),2*abs(y(1:motor_parameter.analysis_num/2))/motor_parameter.analysis_num)%绘制幅频波形

lvma6 发表于 2007-3-24 10:37

motor_parameter.sample_fre是采样频率,根据你的情况改下,不知道有用不

sunjiaohua 发表于 2007-3-28 10:04

非常感谢lvma6 !

非常感谢lvma6 !
页: [1]
查看完整版本: 求数据的频谱图