@[TOC]符號速率估計——小波變換法
一、原理
1.Haar小波變換
??小波變換在信號處理領域被成為數學顯微鏡,不同于傅里葉變換,小波變換可以觀測信號隨時間變換的頻譜特征,因此,常用于時頻分析。
??當小波變換前后位置處于同一個碼元內或相鄰兩個碼元相同時,其幅度是不變的,當相鄰的碼元不同時,小波變換的幅度值會響應變化的,其幅值常與相鄰碼元的幅度、相位和頻率的變換有關,Haar小波可以識別出碼元跳變位置,因此,可以進一步估計出數字信號的碼元速率。Haar小波定義如下:
? a , b ( t ) = { ? 1 / a , 0 < = t < a / 2 1 / a , ? a / 2 < t < 0 \phi_{a,b}(t)=\{_{-1/\sqrt{a},0<=t<a/2}^{1/\sqrt{a},-a/2<t<0} ?a,b?(t)={?1/a?,0<=t<a/21/a?,?a/2<t<0?
??小波變換公式如下:
W s ( a , b ) = ∫ ? ∞ ∞ s ( t ) ? ? ( t ? b a ) d t W_{s}(a,b)=\int_{-\infin}^{\infin}s(t)\phi^{*}(\frac{t-b}{a})dt Ws?(a,b)=∫?∞∞?s(t)??(at?b?)dt
??其中,是 s ( t ) s(t) s(t)為平方可積信號。
2.碼元速率估計過程
1)產生haar小波,小波長度為一個碼元長度;
2) 小波變換,識別碼元跳變位置;
3)傅里葉變換,計算碼元速率,頻譜中的第一個譜峰值位置即為所求的碼元速率。
二、Matlab仿真
1.代碼
%------Function:Estimate Symbol Rate--------
%------Remark:Using Wavelet Transform-------
%------Time:2025.04.11----------------------
%------Author:Clemence----------------------
clc;
close all;
clear all;%------------------1.Paras----------------------------------------------
S_N = 100; % Symbol Num
nSamp = 400; % Samples per Symbol
N = S_N*nSamp; % Sample Num
M = 2; % Modulate index
f = 30; % Signal Frequence
fs = 2000; % Sample Frequence
ts = 1/fs; % Sample Interval
t = 0:ts:ts*(N-1); % Sample timesymbol = randi([0 M-1],S_N,1); % Symbol
symbol = 2*symbol-1; %
symbrate = fs/nSamp; % Symbol Rate%------------------2.Create 2FSK Signal------------------------------------
for i=1:S_N s((i-1)*nSamp+1:i*nSamp) = cos((2*pi*f+pi*symbol(i))*t((i-1)*nSamp+1:i*nSamp));
end%-----------------3.Create Wavelet-----------------------------------------
Tb = nSamp*ts; % Wavelet length
t = -Tb/2:ts:Tb/2; % Wavelet Samplesphi_t = (t>-Tb/2 & t<0)-(t>0 & t<-Tb/2);%-----------------4. Wavelet Transform-------------------------------------
for i = 1:length(s)-length(phi_t)x = s(i:i+length(phi_t)-1); y = x.*phi_t;sum_y(i) = sum(y);
end%-----------------5. plot -------------------------------------------------
figure;
subplot(2,2,1)
plot(s);
title('Original Signal')subplot(2,2,2)
plot(t,phi_t);
title('Haar Wavelet')subplot(2,2,3)
plot(sum_y);
title('Wavelet Transform Result')n = length(sum_y)
inx = (0:n-1)*fs/n;subplot(2,2,4)
plot(inx,abs(fft(abs(sum_y))));
title('Wavelet Transform Frequence')
2.仿真結果
三、總結
??從仿真結果可以看出,小波變換法估計出的符號速率為5.00126,與信號的實際符號速率5基本接近,同時,符號速率估計的精度受信號的頻率以及Haar小波的參數影響。