【学习笔记】matlab进行数字信号处理(一)生成信号及信号的时域频域分析
【學習筆記】matlab進行數字信號處理(一)生成信號及信號的時域頻域分析
【學習筆記】matlab進行數字信號處理(二)信號的相關分析及幅值分析
【學習筆記】matlab進行數字信號處理(三)數字濾波技術
【學習筆記】matlab進行數字信號處理(四)信號的時頻域分析
b站視頻地址:https://www.bilibili.com/video/BV18E411f7ZQ?p=16&spm_id_from=pageDriver
第二章 信號函數與標準信號
2.1 概述
信號發生器產生信號,可用信號函數生成正弦波、方波、三角波、鋸齒波、白噪聲、脈沖信號、階躍信號、斜波信號、加速度信號
2.2信號函數和標準信號
連續的正弦波要進行離散化,才能進而的進行數字信號處理,將連續的時間t用n倍的時間間隔表示
改錯:dt=1/11025
matlab中生成三角波和鋸齒波用同一個函數sawtooth
2.3 信號發生器設計
b站視頻P20:講解如何生成信號發生器和電子琴(包含GUI設計)
第三章 信號的時域分析
3.1概述
3.2信號波形參數識別
畫一條零線,可求出信號的周期和初相位
相鄰兩過零點時間差就是周期,第一個過零點位置與周期的比例可算出初相位
過零檢測法求周期和相位很常用
3.3 信號的數字微分/積分
第四章 信號的頻譜分析
4.1頻譜分析的概念
可以從頻譜圖看出一個信號的頻率構成,和不同頻率不分的強弱(幅值)
從波形,可以看出信號隨時間變化的幅值強弱
與波形相比,頻譜可以更直觀的
波形:幅值隨時間的變化情況;頻譜:幅值隨頻率的變化情況
與波形相比,頻譜的抗干擾能力更強
頻譜分析分解出的正弦波,往往能找到明確的物理意義,比如齒輪轉動的頻譜,每一個譜線都能對應到一個機械零件上去
4.2 周期信號的頻譜分析(FFT代碼和作業)
任意兩個波形相乘,積分等于0說明兩個函數正交
功率譜是幅頻譜的平方,反映了每個頻率分量的能量大小
周期信號的頻譜圖:
諧波性是指頻率成分一定是基頻的倍數,如基頻是f0,則譜線一定智能出現在f0的整數倍上
收斂性是指諧波次數越高,幅值越小
fft使用條件:數據長度必須是2的次方
合成信號——FFT——實頻譜和虛頻譜——幅值譜和相位譜
【視頻P27,11分位置】注意:使用FFT之后,并不需要顯示負頻譜的部分,因為正頻譜部分就可以顯示出有用的信息,負頻譜部分的信息是冗余的
有時功率譜上某些頻譜分量的幅值顯示的不明顯,小能量信號會被大能量信號掩蓋,所以通常采用對數功率譜,能將小的信號放大,大的信號壓縮,能在一張圖上表現出不同大小的頻率成分
4.3 數字信號的頻譜計算方法
截取后再延拓的信號會在連接點處產生跳變,在波形上顯示的是產生跳變,在頻譜上產生的是出現能量泄露
4.4 FFT中的能量泄露和柵欄效應
快速傅立葉變換和離散傅立葉變換的計算結果是相同的,但是速度快很多
柵欄效應生成的原因:為了提高計算效率,在使用FFT計算頻譜時,在0到二分之一的采樣頻率區間內,不是每個頻率點都計算,而是按照一定的頻率間隔抽樣計算,頻率間隔等于采樣頻率除以數據長度
在取樣的位置和譜峰的位置不重疊時,便會帶來一個譜峰誤差,這種誤差引起的反應,叫做柵欄效應。包含兩個誤差,一個是幅值高度的誤差,一個是最大頻率的誤差。
譜峰越尖銳,產生誤差的可能性就越大
由于截斷帶來的能量泄露,這時會減小柵欄效應的誤差,可以通過控制截斷函數的形狀,來調整能量泄露形狀,
左側圖為矩形窗能量泄露函數,以中心頻率為主的成份叫做主瓣,比較窄比較尖,越尖銳造成的柵欄效應的誤差就越大,還有其他很高的旁瓣,但理想情況下只希望讀出主瓣處的能量泄露,但這種理想的窗函數并不存在,實際上只能去逼近它。
直接截斷,然后周期延拓,如果截斷的不是整周期的位置,會產生一個跳變,此時加一個漢明窗,用這樣的窗函數和原來的信號相乘,這樣會將原信號在接頭處的幅值被壓縮成0,以這種方式進行周期延拓,無論原來的信號怎樣,在接頭處都不存在跳變(從波形上看)
(從頻譜上看)相當于增寬主瓣,壓縮旁瓣,因此可以通過這種方式抑制旁瓣的能量泄露,同時提高主瓣的寬度,使柵欄效應的誤差減小
漢寧窗和矩形窗相比,主瓣變的更寬,而旁瓣變得更低
這是漢寧窗對波形進行截斷的情況,截斷后要進行修正,窗函數和原信號相乘再進行截斷延拓,幅值修正后幅值增大了一倍,這樣幅值增大后可以彌補兩端衰減造成的能量損失
和矩形窗相比,主瓣寬一些,旁瓣窄一些
主瓣更寬一些,旁瓣更窄一些
平頂窗,主瓣相當寬
能量修正z=2*w1.*x,然后再進行FFT
加窗能克服能量泄露和柵欄效應帶來的誤差
4.5 非周期信號的頻譜分析
工程上大量的信號都是非周期信號,在數字領域,由于截斷,不管原信號是不是周期信號,都會轉換成周期信號
1.如果數據長度不夠長,可以通過補0的方式提高頻譜的頻率分辨率
eg:假如原來數據長度是1024,再補1024個0,頻譜分析時,精度會高一倍
2.細化:如果想看清某一部分的頻譜,使用ZOOM-FFT可以將觀測的視角集中在一個頻率
3.主要針對受噪聲干擾頻譜,計算時譜當中有很多的隨機干擾,此時將頻譜多次累加再除以N,這樣干擾也會減小到N分之一
4.用于修正柵欄效應誤差
5.傳感器輸出的都是實信號,但是matlab里的FFT輸入的是復信號,因此針對虛部的計算浪費了,采用實信號FFT計算技術,可以將計算速度提高一倍
4.6頻譜分析應用
結果會發現,信號波形的幅值是1,倒是頻譜的幅值不是1,產生差異的原因就是能量泄露和柵欄效應
大作業:聲音信號采集和頻譜分析程序設計
首先通過計算機上的脈沖,采集一段聲音信號,然后進行FFT變換,再畫出信號頻譜
1.新建GUI文件
2.安放控件,修改控件屬性
3.使用定時器,實現連續采樣
總結
以上是生活随笔為你收集整理的【学习笔记】matlab进行数字信号处理(一)生成信号及信号的时域频域分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七.项目管理基础知识
- 下一篇: Eclipse Spring Tool