大畢設 MATLAB FFT實現

2021-07-29 17:34:34 字數 1330 閱讀 9562

引用來自:

%**引數中的含義

% 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。

大畢設 CUDA cuFFT庫

computing a number batch of one dimensional dfts of size nx using cufft will typically look like this 在cuda上實現dft演算法大概會是這個樣子的流程 define nx 256 define b...

php畢設周記 畢設周記

第一周 一 老師講解畢業設計總體要求和注意事項,確定題目為 設計。第一周 二 老師講解查詢檔案的方法。圍繞畢設主題,充分利用學校圖書館 期刊 雜誌 網路等資源,對所選取的資料將進行反覆閱讀並理解,遇到複雜難 懂的問題及時與導師聯絡,取得幫助。最終確定了所需要的硬體裝置。第二週 一 開始研讀。熟悉本課...

畢設demo寫好

2015年1月20日 14 41 47 階段性暫停!把執行結果截圖給了老師,老師說先整理下文件,然後下學期來了再部署到伺服器上。那麼,下學期來了,估計也要把epm和cr1000什麼的搞好了。先總結一下目前的情況好了 0.用到的技術 python語言,webpy框架,mysql資料庫,nginx部署,...