Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产精品手机在线观看 ,2021国产在线视频,国产成人久视频免费

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Matlab實現FFT,畫出正確的頻譜圖

          在通信、信號處理和更廣泛的電氣工程領域,信號是任意的、隨時間變化的或者隨空間變化的量。

          信號可分為連續時間信號和離散時間信號:

          離散信號或離散時間信號是一種時間序列,可能是從連續時間信號中采樣出來。

          圖1 連續時間信號與離散時間信號

          周期信號與非周期信號。

          一個信號周期為T,那么定義其基頻f0=1/T,諧頻kf0,k=1,2,3...

          任何周期信號(并不是嚴格意義上的任何)都可以由不同諧振頻率kf0信號,相疊加而成,這就是傅里葉級數展開。

          圖2 周期信號與非周期信號

          一個信號有一個或多個頻率,可以從兩個不同的角度來觀察:時域和頻域。

          圖3 信號的時域與頻域

          本文就是介紹如何進行頻域的分析,當然使用計算機啦。

          通過計算機中的MATLAB軟件自帶的FFT函數分析頻譜。

          文中舉得例子看似簡單,但同學們如果真正要理解,其實是需要一定信號處理知識的積累的。

          四種傅里葉變換

          再來看一下經典的圖4,我認為學習通信或者數字信號處理,必須要搞明白各種不同的"傅里葉"。

          圖4 四種經典的傅里葉變換

          圖4(a)是最為熟悉的傅里葉變換,針對非周期、連續的信號,其變換后的頻譜為連續的、非周期的。公式為

          圖4(b)是傅里葉級數,針對周期、離散的信號,變換后的信號是離散的、非周期的頻譜。

          圖4(c)是離散時間傅里葉變換,針對離散、非周期的信號,變換后的信號是周期的、連續的頻譜。

          圖4(d)是離散傅里葉級數,針對離散的、周期的信號,變換后的頻譜是離散的、周期的

          圖5 四種傅里葉變換總結

          四種傅里葉變換的可以如圖5總結。

          我們發現:

          • 時域的連續,總是對應著頻域的非周期;
          • 時域的離散,總是對應著頻域的周期;

          反之亦然。

          其中FT、FS、DTFT至少有一個域不是離散的信號,所以不適合計算機去處理。

          DFS滿足時域和頻域都是離散的要求,但其時域為無限長的周期序列。

          圖6 DFS到DFT

          所以我們只要取其中N個點,定義為主值序列,然后用來求取傅里葉變換。

          這樣的傅里葉變換就是DFT,離散傅里葉變換,其公式為:

          DFT的運算量大,不利于大數據量的計算。

          圖7 DFT到FFT

          此時,就出現了快速傅里葉變換,即FFT。

          FFT是DFT的快速算法,可以節省大量的計算時間,其本質仍然是DFT。

          DFT的時域與頻域的聯系

          仔細觀察圖4的DFS系列,主值序列有N個點。

          在時域中,如果離散信號是以T1為周期向兩邊延拓,那么頻域的譜間隔為f1=1/T1;

          同樣的,如果在頻域是以fs為周期向兩邊延拓,那么時域的信號間隔為Ts=1/fs;

          所以,我們可以得出fs/f1=N;

          換個角度看。

          X[k]算出來的是一個序列值,那么這個序列值與頻率有何關系呢?

          我們知道DFT的頻譜間隔為f1,那么,那么頻率軸就是k倍的f1,即是kf1,其中f1=fs/N;

          舉個例子

          我們定義個信號,它包含幅度值為0.7,頻率為50Hz的正弦和幅度值為1,頻率為120Hz的正弦.

          采樣頻率為1kHz;

          信號序列長度N=1500;

          程序如下:

          clf;
          Fs = 1000; % 采樣頻率1kHz 
          T = 1/Fs; % 采樣周期1ms 
          L = 1500; % 信號長度
          t = (0:L-1)*T; % 時間序列
          S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
          subplot(211);
          plot(1000*t,S);
          title('包含幅值為0.7的50Hz正弦量和幅值為1的120Hz正弦量')
          xlabel('t (毫秒)')
          ylabel('X(t)')
          subplot(212);
          plot(1000*t(1:50),S(1:50));
          title('取前50ms的數據,包含幅值為0.7的50Hz正弦量和幅值為1的120Hz正弦量')
          xlabel('t (毫秒)')
          ylabel('X(t)')
          Y = fft(S);
          mag = abs(Y); %求得FFT變換后的振幅
          f=(0:L-1)*Fs/L; %頻率序列
          figure
          plot(f,mag); %繪出隨頻率變化的振幅
          title('信號的FFT')
          xlabel('頻率f (Hz)')
          ylabel('|幅度mag|')
          

          圖8 原始信號

          通過圖8,我們可以看出原始信號的波形。圖8的上方為1500毫秒的信號,圖8的下方為取前50ms的信號。當從上圖中,很難看出信號是由50Hz和120Hz的頻率組成。

          圖9 信號的頻譜

          圖9的橫坐標為頻率單位Hz,總長為1000Hz(為什么呢?讀者可以思考下)

          我們發現在50Hz和120Hz處,出現明顯的峰值。

          總結

          本文中采樣頻率Fs=1000Hz,整個頻譜是關于500Hz對稱的。其中500Hz就是Nyquist頻率Fs/2。

          所以FFT的頻譜圖是以Nyquist頻率為對稱軸的。

          并且可以明顯識別出信號中含有兩種頻率成分:50Hz和120Hz。

          因此用FFT對信號做譜分析,只需考察0~Nyquist頻率范圍內的幅頻特性。

          本文只是簡單的入門,如果各位同學想用好FFT這個頻譜分析工具,建議動手去實驗,可以發現很多有趣的性質。

          看到這里幫班長點個贊吧,歡迎在評論去留言討論!

          參考文獻:

          [1]FFT-Matlab初步實現.https://www.cnblogs.com/WHaoL/p/6595132.html

          [2]matlab 中fft的用法.https://www.cnblogs.com/alexanderkun/p/4723577.html

          [3]fft.https://ww2.mathworks.cn/help/matlab/ref/fft.html

          調用oneMKL相應 API函數,產生2048 * 2048 個隨機單精度0∽1實數,根據產生的隨機數據作為輸入,實現兩維Real to complex FFT。 利用上面生成的隨機數作為數據輸入,計算輸入數據的FFT,兩維Real to complex FFT的計算分為幾個部分,首先是使用大家熟知的fftw3方法,主要是使用fftw3函數進行二維傅里葉變換,以及調用 oneMKL API 計算兩維Real to complex FFT,對處理時間進行對比。


          eautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫.它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間.

          案例(解析一個列表的標題)

            try:
                  r = requests.get("https://www.runoob.com/w3cnote", params={})
                  r.raise_for_status()
                  r.encoding = r.apparent_encoding
                  soup = BeautifulSoup(r.text, "html.parser")
                  find_all = soup.find_all(attrs={"class": "archive-list-item"})
                  for item in find_all[:find_all.__len__()-1]:
                      print(item.div.h2.a.string)
              except:
                  print("爬取失敗")

          效果:

          7.6 Verilog DDS 設計

          8.1 Verilog 數值轉換

          7.5 Verilog FFT 設計

          7.4 Verilog CIC 濾波器設計

          7.3 Verilog 串行 FIR 濾波器設計

          7.2 Verilog 并行 FIR 濾波器設計

          7.1 Verilog 除法器設計

          6.7 Verilog 流水線

          6.6 Verilog 仿真激勵

          6.5 Verilog 避免 Latch


          主站蜘蛛池模板: 欧美一区内射最近更新| 中文字幕在线观看一区二区三区| 在线播放一区二区| 中文无码一区二区不卡αv| 国产精品亚洲专一区二区三区| 一区二区视频在线免费观看| 亚洲熟妇无码一区二区三区导航| 日本精品一区二区三本中文| 精品黑人一区二区三区| 一区二区三区视频在线观看| 国产激情一区二区三区| 天堂不卡一区二区视频在线观看 | 国产裸体歌舞一区二区| 看电影来5566一区.二区| 午夜爽爽性刺激一区二区视频| 亚洲一区二区三区四区在线观看| 波霸影院一区二区| 78成人精品电影在线播放日韩精品电影一区亚洲 | 日韩精品一区在线| 亚洲一区二区三区偷拍女厕| 搡老熟女老女人一区二区| 国产suv精品一区二区33| 无码视频一区二区三区在线观看| 久久久久人妻精品一区二区三区| 亚洲综合av一区二区三区不卡| 国产在线精品一区在线观看| 久久精品国产一区二区三区不卡 | 国产麻豆精品一区二区三区| 一区二区视频在线免费观看| 另类一区二区三区| 国产伦精品一区二区三区免费迷| 一区二区三区视频观看| 亚洲一区欧洲一区| 一区二区三区视频网站| 波多野结衣久久一区二区| 丝袜人妻一区二区三区| 日本一区二区三区中文字幕| 色狠狠AV一区二区三区| 动漫精品专区一区二区三区不卡 | 日韩欧国产精品一区综合无码| 超清无码一区二区三区|