【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
文章目錄
- 一、相關函數應用場景
- 1、生成高斯白噪聲
- 2、信噪比 SNR
- 3、根據信噪比 SNR 求信號幅度
- 4、產生單載波信號及最終信號
- 5、求自相關函數及功率
- 6、matlab 完整代碼
一、相關函數應用場景
求下面信號的 " 自相關函數 " :
x(n)=sin?(2πfn)+N(n)x(n) = \sin(2\pi fn) + N(n)x(n)=sin(2πfn)+N(n)
其中 N(n)N(n)N(n) 為 高斯白噪聲 ;
高斯白噪聲 符合 正態分布 特性 , 其 均值為 000 , 方差為 111 , 其功率譜密度是白的 , 在所有的頻率上 , 其功率都相同 ;
在上一篇博客 【數字信號處理】相關函數應用 ( 相關函數應用場景 | 噪聲中檢測信號原理 ) 中 , 使用了公式推導的方法求相關函數 , 本篇博客使用 matlab 求相關函數 ;
下面開始使用 matlab 計算 x(n)=sin?(2πfn)+N(n)x(n) = \sin(2\pi fn) + N(n)x(n)=sin(2πfn)+N(n) 的相關函數 ;
1、生成高斯白噪聲
生成 高斯白噪聲 序列 , 均值 0 , 方差 1 ;
randn(1,200);上述代碼 生成的 高斯白噪聲 序列 是一個 有 200 個元素的行向量 ,
如果是 randn(2, 200) 代碼 , 則生成的是一個 2×2002 \times 2002×200 的矩陣 ;
2、信噪比 SNR
SNR 是信噪比 , PsP_sPs? 是信號功率 , PNP_NPN? 是噪聲功率 , 其關系是 :
SNR=10log?10PsPNSNR = 10 \log_{10}\cfrac{P_s}{P_N}SNR=10log10?PN?Ps??
在 matlab 中 , 設置信噪比為 777 ;
% 設置 信噪比 SNR = 7;3、根據信噪比 SNR 求信號幅度
信號 Asin?ωnA \sin \omega nAsinωn , 其功率是 Ps=A22P_s = \cfrac{A^2}{2}Ps?=2A2? , 噪聲功率 是 PN=1P_N=1PN?=1 , 將其帶入到信噪比公式中 :
SNR=10log?10PsPN=10log?10A221=10log?10A22SNR = 10 \log_{10}\cfrac{P_s}{P_N} = 10 \log_{10}\cfrac{\cfrac{A^2}{2}}{1} = 10 \log_{10}\cfrac{A^2}{2}SNR=10log10?PN?Ps??=10log10?12A2??=10log10?2A2?
根據信噪比 計算 幅度 AAA :
SNR10=log10A22\cfrac{SNR}{10} = log_{10}\cfrac{A^2}{2}10SNR?=log10?2A2?
A22=10SNR10\cfrac{A^2}{2} = 10^{\cfrac{SNR}{10}}2A2?=1010SNR?
A2=2×10SNR10A^2 = 2 \times 10^{\cfrac{SNR}{10}}A2=2×1010SNR?
A=2×10SNR10A = \sqrt{2 \times 10^{\cfrac{SNR}{10}}}A=2×1010SNR??
寫成 matlab 代碼為 :
% 根據 信噪比 計算信號幅度 SignalAmplitude = sqrt( 2 * 10^(SNR/10) );4、產生單載波信號及最終信號
根據 Asin?ωnA \sin \omega nAsinωn 公式 , 產生 200 個信號 , 其中 AAA 之前已經求出 ;
% 根據 Asinωn 產生 200 個信號 x1 = A * sin( pi * 0.165 * (0:199) );然后將 信號 與 高斯白噪聲疊加 :
% 信號 + 高斯白噪聲 x = x1 + xn;5、求自相關函數及功率
求自相關函數 , 使用 xcorr 函數 ;
% 求 x 的 自相關函數 , 長度為2N-1 y = xcorr(x, x);求信號功率 :
% 功率 : 自相關函數 幅度 求平均 % 自相關函數 就是 200 個功率之和 y = y / 200;6、matlab 完整代碼
matlab 完整代碼 :
% 清除之前的變量或內存 clear; % 生成 高斯白噪聲 序列 , 均值 0 , 方差 1 % 生成的 高斯白噪聲 序列 是一個 有 200 個元素的行向量 xn = randn(1,200); % 設置 信噪比 SNR = 7;% 根據 信噪比 計算信號幅度 A = sqrt( 2 * 10^(SNR/10) );% 根據 Asinωn 產生 200 個信號 x1 = A * sin( pi * 0.165 * (0:199) ); % 信號 + 高斯白噪聲 x = x1 + xn; % 求 x 的 自相關函數 , 長度為2N-1 y = xcorr(x, x); % 功率 : 自相關函數 幅度 求平均 % 自相關函數 就是 200 個功率之和 y = y / 200; %建立幕布 figure; %繪制 "輸出序列" 圖像 , 點用上三角表示 plot(y);% 打開網格 grid on;執行結果 :
總結
以上是生活随笔為你收集整理的【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数字信号处理】相关函数应用 ( 相关函
- 下一篇: 【数字信号处理】相关函数应用 ( 高斯白