[英]spectral structure of sinusoidal model
讓我們考慮以下代碼
function [ x ] = generate1(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = randn(length(t),1); %zero mean variance 1
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
%[pks,locs] = findpeaks(x);
%plot(x);
end
如我所知,傅立葉域中的峰值代表該頻率,該峰值存在於信號中,例如讓我們對信號進行傅立葉變換作圖,讓我們運行該信號
y=generate1(3,500,1);
和情節
plot(abs(fft(y)))
但是很明顯它沒有顯示我在信號給定頻率上的峰值,這是什么問題?請幫我,通常是平穩的信號,為什么這張圖應該給我顯示准確的圖像卻沒有,為什么?
編輯:
Y1 = generate1(3,500,0);
function [ x, fs ] = generate1(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = randn(length(t),1); %zero mean variance 1
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
%[pks,locs] = findpeaks(x);
%plot(x);
fs = 1/(t(2)-t(1));
end
看看
absfft = abs(fft(y));
plot(fs/2*linspace(0,1,length(absfft)/2+1),2*absfft(1:end/2+1))
要么
plot(linspace(-fs/2,fs/2,length(absfft)),fftshift(absfft))
您繪圖中的x軸從0到fs / 2,然后從-fs / 2到0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.