標籤:而且 時間 意義 函數 sub 複數 效果 length 頻率
引用來自:http://blog.csdn.net/sinwel/article/details/8115673
%模擬參數中的含義
% Ts 表示間隔Ts時間採樣,這個越小越接近連續訊號,而實際上不可能真正的模擬連續訊號。
% df 表示變化後頻率分量的最小間隔,即頻譜中相鄰的點間隔頻率是多大,你也可以叫它 頻率分辨力
% 為什麼df = fs/N-1呢?
% 因為採樣頻率 fs=1/Ts,表示的意義是連續訊號用fs去採樣,得到了
% 離散的訊號,因此實際上的連續訊號在這裡並沒有給出,因為MATLAB不可能做的真正的
% 連續訊號,而且既然採樣間隔是Ts,所以時域訊號也就只給出間隔Ts的訊號,這樣可以
% 剛好滿足模擬需求,當然你也可以把時域的訊號變為更細,把時間間隔變得更小,
% 也就是說訊號的個數是 採樣頻率的整數倍,確保能夠正常才夠採樣。
4.fs的選取,根據採樣定義,fs>2fmax
如果訊號最高頻率分量為10HZ,則採樣頻率一定要大於或等於20HZ,最好選大點。這樣模擬效果明顯
clear all;
Ts=0.01;
t=-1:Ts:1;
%採樣訊號頻率是fs=100;
fs=1/Ts;
%原訊號頻率是10;
x=5*sin(2*pi*10*t);
%N是總共的採樣點數,N=101;
N=length(x);
fx=fft(x);
%N個點有N-1個間隔;
df=fs/(N-1);
%讓負頻率也顯示出來;
n=-(N-1)/2:(N-1)/2;
f=n*df;
subplot(211);
plot(t,x);
grid;
title(‘原始訊號‘);
xlabel(‘時間(t)‘);
ylabel(‘幅度‘);
subplot(212);
plot(f,abs(fftshift(fx))*2/N);
grid;
title(‘頻譜‘);
xlabel(‘頻率(hz)‘);
ylabel(‘頻率分量‘);
% 此外MATLAB中FFT計算結果是一個N點的複數,且第n點表示的含義是
% 頻率為 Fn = (n-1)*Fs/N 的複數值(cos 和 sin的分量)
% 它的模大小abs就是傅裡葉的頻譜幅度大小。
% 關於fftshift這個函數,它的作用是:
% shift zero-frequency component to center of spectrum.
% 因為FFT出來的結果是頻率0~Fs分布的,如果想看雙邊頻率譜,就需要將頻率變為
% -Fs~0~FS。
大畢設-MATLAB-FFT實現