1樓:匿名使用者
參考%二.fft應用舉例
%例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。取樣頻率fs=100hz,分別繪製n=128、1024點幅頻圖。
clf;
fs=100;n=128; %取樣頻率和資料點數
n=0:n-1;
t=n/fs; %時間序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %訊號
y=fft(x,n); %對訊號進行快速fourier變換
mag=abs(y); %求得fourier變換後的振幅
f=n*fs/n; %頻率序列
subplot(2,2,1),plot(f,mag); %繪出隨頻率變化的振幅
xlabel('頻率/hz');
ylabel('振幅');title('n=128');grid on;
subplot(2,2,2),plot(f(1:n/2),mag(1:n/2)); %繪出nyquist頻率之前隨頻率變化的振幅
xlabel('頻率/hz');
ylabel('振幅');title('n=128');grid on;
%對訊號取樣資料為1024點的處理
fs=100;n=1024;n=0:n-1;t=n/fs;
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %訊號
y=fft(x,n); %對訊號進行快速fourier變換
mag=abs(y); %求取fourier變換的振幅
f=n*fs/n;
subplot(2,2,3),plot(f,mag); %繪出隨頻率變化的振幅
xlabel('頻率/hz');
ylabel('振幅');title('n=1024');grid on;
subplot(2,2,4)
plot(f(1:n/2),mag(1:n/2)); %繪出nyquist頻率之前隨頻率變化的振幅
xlabel('頻率/hz');
ylabel('振幅');title('n=1024');grid on;
%執行結果:
%fs=100hz,nyquist頻率為fs/2=50hz。整個頻譜圖是以nyquist頻率為對稱軸的。並且可以明顯識別出訊號中含有兩種頻率成
%分:15hz和40hz。由此可以知道fft變換資料的對稱性。因此用fft對訊號做譜分析,只需考察0~nyquist頻率範圍內的福頻特性。若沒有給
%出取樣頻率和取樣間隔,則分析通常對歸一化頻率0~1進行。另外,振幅的大小與所用取樣點數有關,採用128點和1024點的相同頻率的振幅是有不同的表
%現值,但在同一幅圖中,40hz與15hz振動幅值之比均為4:1,與真實振幅0.5:2是一致的。為了與真實振幅對應,需要將變換後結果乘以2除以n。
2樓:盧普龍
很多人問multilab的問題,,。可我就是不會啊
matlab中使用快速pca提取特徵
1 引數ma代表a的均值,也就是mean a 其實這個引數完全沒必要,因為可以從引數a計算得到。2 解釋一下你問的兩個語句的含義 z a repmat ma,m,1 作用是去除直流成分t z z 計算協方差矩陣的轉置 3 關於函式的呼叫 matlab統計工具箱中有函式princomp,也是進行主成分...
MATLAB中的FFT的取樣頻率和取樣點怎樣確定
小石頭科技 取樣頻率就是準備進行fft變換的時間序列資料的頻率,如資料間隔為0.01s,取樣頻率就為100hz,這是確定的 取樣點則根據時間序列資料長度確定,fft即快速傅立葉變換,取樣點數是2的整數倍,才能實現快速計算,所以如果序列長度為3,取樣長度就設為4,資料會自動補0,如果序列長度為63,取...
如何使用 MATLAB 進行威布林函式擬合曲線
執行你的程式產生隨機數,然後輸入weibplot y 可以看是否符合weibull分布,輸入wblfit y 得出兩個數,第乙個是尺度引數,第二個是形狀引數。還有weibull分布隨機數可以直接用wblrnd a,b,c,d 指令吧,a形狀引數,b尺度引數,c行數,d列數。首先是產生威布林分布隨機數...