matlab频域怎么提取特征值,补充:频域特征值提取的MATLAB代码实现(小波分析)...
之前的文章信號頻域分析方法的理解(頻譜、能量譜、功率譜、倒頻譜、小波分析)中提到了離散小波分解的例子,其參考代碼如下:
t_s = 0.005; %采樣周期
t_start = 0.001; %起始時間
t_end = 10; %結束時間
t = t_start : t_s : t_end;
y = 10*sin(2*pi*0.5*t)+3*sin(2*pi*10*t)+1*sin(2*pi*20*t)+3*randn(1,length(t)); %生成信號
len = length(y);
%生成突變信號
y2 = 50*sin(2*pi*50*t);
for i = 1: len
if i>=601&&i<=604
y(i) = y(i)+y2(i);
else
y(i) = y(i);
end
end
figure
plot(y) %繪制原始信號
[c,l] = wavedec(y,5,'db5');
%重構1~5層細節函數
d5 = wrcoef('d',c,l,'db5',5);
d4 = wrcoef('d',c,l,'db5',4);
d3 = wrcoef('d',c,l,'db5',3);
d2 = wrcoef('d',c,l,'db5',2);
d1 = wrcoef('d',c,l,'db5',1);
%重構1~5層近似函數
a5 = wrcoef('a',c,l,'db5',5);
a4 = wrcoef('a',c,l,'db5',4);
a3 = wrcoef('a',c,l,'db5',3);
a2 = wrcoef('a',c,l,'db5',2);
a1 = wrcoef('a',c,l,'db5',1);
figure
subplot(4,2,1);
plot(a1)
subplot(4,2,2);
plot(d1)
subplot(4,2,3);
plot(a2)
subplot(4,2,4);
plot(d2)
subplot(4,2,5);
plot(a3)
subplot(4,2,6);
plot(d3)
subplot(4,2,7);
plot(a4)
subplot(4,2,8);
plot(d4)
結果如下:
原始信號
離散小波分析結果
左側四行是1~4階的近似信號,右側四行是1~4階的細節信號。
歡迎關注我的專欄與信號處理有關的那些東東
歡迎關注我的公眾號“括號的城堡”,微信號為“khscience”,會有更多有趣的東西分享。
總結
以上是生活随笔為你收集整理的matlab频域怎么提取特征值,补充:频域特征值提取的MATLAB代码实现(小波分析)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab2010alinux下载,L
- 下一篇: php模拟表格冻结,PHPExcel冻结