日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

matlab读取图片的频率,获得时域图之后,也获得了频域图,但是如何查看频率呢......

發布時間:2025/3/15 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab读取图片的频率,获得时域图之后,也获得了频域图,但是如何查看频率呢...... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 zmy240778 于 2017-12-8 09:09 編輯

上面那個圖都是時域,下面那個圖都是我通過FFT轉化得到的頻域,

但是我得到的頻域上面有很多分支,我看不清哪個是一階頻率,哪個是二階頻率。

但是我看別人的,就很清楚,

所以想請教一下,這個應該怎么做。

下面附上我的matlab程序。

%FFT變換,獲得采樣數據基本信息,時域圖,頻域圖

%這里的向量都用行向量,假設被測變量是速度,單位為m/s

clear;

close all;

A=importdata('DATA.TXT');? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %通過儀器測量的原始數據,存儲為data.txt中,附件中有一個模版(該信號極不規則)

%將測量數據賦給A,此時A為N×2的數組

x=A(:,1);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %將A中的第一列賦值給x,形成時間序列

x=x';? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %將列向量變成行向量

y=A(:,2);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %將A中的第二列賦值給y,形成被測量序列

y=y';? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %將列向量變成行向量

%顯示數據基本信息

fprintf('\n數據基本信息:\n')

fprintf('? ?? ???采樣點數 = %7.0f \n',length(x))? ?? ?? ?? ?? ?? ?? ?? ? %輸出采樣數據個數

fprintf('? ?? ???采樣時間 = %7.3f s\n',max(x)-min(x))? ?? ?? ?? ?? ?? ???%輸出采樣耗時

fprintf('? ?? ???采樣頻率 = %7.1f Hz\n',length(x)/(max(x)-min(x)))? ?%輸出采樣頻率

fprintf('? ?? ???最小速度 = %7.3f m/s\n',min(y))? ?? ?? ?? ?? ?? ?? ?? ? %輸出本次采樣被測量最小值

fprintf('? ?? ???平均速度 = %7.3f m/s\n',mean(y))? ?? ?? ?? ?? ?? ?? ? %輸出本次采樣被測量平均值

fprintf('? ?? ???速度中值 = %7.3f m/s\n',median(y))? ?? ?? ?? ?? ?? ? %輸出本次采樣被測量中值

fprintf('? ?? ???最大速度 = %7.3f m/s\n',max(y))? ?? ?? ?? ?? ?? ?? ?? ???%輸出本次采樣被測量最大值

fprintf('? ?? ???標準方差 = %7.3f \n',std(y))? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %輸出本次采樣數據標準差

fprintf('? ?? ? 協 方 差 = %7.3f \n',cov(y))? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%輸出本次采樣數據協方差

fprintf('? ???自相關系數 = %7.3f \n\n',corrcoef(y))? ?? ?? ?? ?? ?? ?? ???%輸出本次采樣數據自相關系數

%顯示原始數據曲線圖(時域)

subplot(2,1,1);

plot(x,y)? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%顯示原始數據曲線圖

axis([min(x) max(x) 1.1*floor(min(y)) 1.1*ceil(max(y))])? ?? ?? ?? ? %優化坐標,可有可無

xlabel('時間 (s)');

ylabel('被測變量y');

title('原始信號(時域)');

grid;

%傅立葉變換

y=y-mean(y);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%消去直流分量,使頻譜更能體現有效信息

Fs=5000;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%得到原始數據data.txt時,儀器的采樣頻率。其實就是length(x)/(max(x)-min(x));

N=1012108;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %data.txt中的被測量個數,即采樣個數。其實就是length(y);

z=fft(y);

%頻譜分析

f=(0:N-1)*Fs/N;

Mag=2*abs(z)/N;

%幅值,單位同被測變量y

Pyy=Mag.^2;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %能量;對實數系列X,有 X.*X=X.*conj(X)=abs(X).^2=X.^2,故這里有很多表達方式

%顯示頻譜圖(頻域)

subplot(2,1,2,'Linewidth',2)

plot(f(1:N/2),Mag(1:N/2),'r')? ?? ?? ?? ?? ?? ?? ?? ? %顯示頻譜圖

%? ?? ?? ?? ? 將這里的Pyy改成Mag就是 幅值-頻率圖了

axis([min(f(1:N/2)) max(f(1:N/2)) 1.1*floor(min(Pyy(1:N/2))) 1.1*ceil(max(Pyy(1:N/2)))])

xlabel('頻率 (Hz)')

ylabel('能量')

title('頻譜圖(頻域)')

grid on;

%返回最大能量對應的頻率和周期值

[a,b]=max(Pyy(1:N/2));

fprintf('\n傅立葉變換結果:\n')

fprintf('? ?? ?? ???FFT_f = %1.3f Hz\n',f(b))? ?? ?? ?? ? %輸出最大值對應的頻率

fprintf('? ?? ?? ???FFT_T = %1.3f s\n',1/f(b))? ?? ?? ? %輸出最大值對應的周期

總結

以上是生活随笔為你收集整理的matlab读取图片的频率,获得时域图之后,也获得了频域图,但是如何查看频率呢......的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。