matlab做簡單的訊號處理分析

2021-10-25 04:44:08 字數 1564 閱讀 7689

本文描述了如何用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...