大畢設-MATLAB-FFT實現

來源:互聯網
上載者:User

標籤:而且   時間   意義   函數   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實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.