本文描述了如何用matlab工具對訊號的簡單處理分析,並介紹簡單使用matlab訊號分析工具分析訊號
在matlab的signal processing toolboxs中有關於直接計算訊號的效能的函式,例如訊雜比snr,無雜散動態範圍sfdr諧波失真thd等函式,其實可以直接呼叫。
clc;
clear all;
fs=1000
;ns=
256;
np=17
;fin=fs*np/ns;
noise=
0.001
*randn(1
,256);
n=0:1
/fs:
255/fs;
y=sin(2
*pi*fin*n)
+noise;
這一段程式模擬了乙個帶雜訊的正弦訊號,作為乙個離散的訊號,可以在每個點上加入隨機雜訊,randn函式前面的係數可以調整雜訊的大小。
使用matlab內建函式。
snr1=
snr(y)
;sfdr1=
sfdr
(y);
sinad1=
sinad
(y);
fft1=
abs(
fft(y,ns)
)/ns;
fft_db=20*
log10
(fft1)
;f=fs*(0
:127
)/ns;
figure(1
);plot
(y);
axis normal;
figure(2
);plot
(f,fft_db(1
:128))
;xlabel
('f');
ylabel
('db'
);
對訊號做256個點的fft,取前面一半的頻譜。
如圖所示:
檢視工作區的資料:
可以知道輸入頻率大約為66.4hz,所以在頻譜上可以看到在66.4hz處出現訊號尖峰。
在工作區可以看到一些引數如snr、sfdr。
改變為nosie=0.1*randn(1,256);觀察頻譜:
發現除訊號外其他頻率的諧波和失真的能量整體增大,在工作區觀察到snr、sfdr、sinsd均減小。
matlab訊號處理
閒暇時間寫了一些關於訊號處理的東西,基於matlab.訊號時域分析時的常用函式 方法 1.impulse impulse用於求連續系統衝激響應,並繪製其時域波形。呼叫格式 impulse b,a or impulse b,a,t or impulse b,a,t1 t2 b,a 系統方程對應的係數矩...
MATLAB訊號處理之訊號的取樣
所謂模擬訊號的數字訊號處理方法就是將待處理模擬訊號經過取樣 量化 編碼形成數碼訊號,並利用數字訊號處理方法對取樣得到的數碼訊號進行處理。下面我們來看一下對模擬訊號取樣的具體 f 200 訊號頻率為200hz t 0 0.0001 0.1 定義訊號的時間範圍 x cos 2 pi f t 生成訊號 f...
matlab隨機訊號處理
matlab中rand和randn是產生隨機數的命令,x rand 1,n 產生 0,1 區間均勻分布的長度為n的隨機訊號,x randn 1,n 產生長度為n且具有零均值和單位方差的正態分佈的隨機訊號。matlab中產生偽隨機數需要種子,把不同的種子用於不同的隨機數生成器產生不同的偽隨機數。bet...