MATLAB程序分析小波变换和FFT变换后信号的频率成分

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

clear all

clc

close all

fs=1000;

T=20;

t=0:1/fs:T-1/fs;

f0=50;

f1=200;

% 线性调频信号

s=chirp(t,0,5,300);

figure

plot((0:length(s)-1)/length(s)*fs,abs(fft(s))); xlim([0 fs/2])

xlabel('f/Hz');

ylabel('幅度')

% 单频信号

% s=sin(2*pi*f0*t)+2*sin(2*pi*f1*t);

% s=sin(2*pi*f0*t);

y=s+0.5*randn(1,length(t)); % 加高斯白噪声

% 加泊松分布的噪声

% lambda = 0.5;

% r = poissrnd(lambda,1, length(t));

% y=s+r;

% 不同小波核函数及尺度的小波变换,可以选择操作

% c = cwt(s,1:32,'cgau4');

% c = cwt(s,[64 32 16:-2:2],'morl');

c = cwt(s,[3 18 12.9 7 1.5],'db2');

% c = cwt(s,1:32,'sym2');

% c = cwt(s,1:64,'sym4','abslvl',[100 400]);

Nfft=fs/4;

NN=(T*fs/Nfft);

for kk=1:5

for ii=1:NN

mu(:,ii)=abs(fft(s((1+(ii-1)*Nfft):(Nfft+(ii-1)*Nfft))));

aa(:,ii)=abs(fft(y((1+(ii-1)*Nfft):(Nfft+(ii-1)*Nfft))));

bb(:,ii)=abs(fft(c(kk,(1+(ii-1)*Nfft):(Nfft+(ii-1)*Nfft))));

end

figure

subplot(3,1,1)

pcolor((0:Nfft-1)/Nfft*fs,(1:NN)*Nfft/fs,mu.'); shading interp

xlim([0 fs/2])

% title(num2str(kk))

title('原始数据')

subplot(3,1,2)

pcolor((0:Nfft-1)/Nfft*fs,(1:NN)*Nfft/fs,aa.'); shading interp

xlim([0 fs/2])

% title(num2str(kk))

title('短时傅里叶变换')

subplot(3,1,3)

pcolor((0:Nfft-1)/Nfft*fs,(1:NN)*Nfft/fs,bb.'); shading interp

xlim([0 fs/2])

% title('sym2基小波变换')

title('db2基小波变换')

end

% plot(abs(fft(c)))

相关文档
最新文档