matlab信号频率成分,matlab程序分析小波变换和fft变换后信号的频率成分

该博客通过Matlab代码展示了线性调频信号和单频信号的分析,对比了短时傅里叶变换与不同基小波变换(如db2)在频率成分提取上的效果。利用小波变换可以更好地捕捉信号的局部特征,而FFT则适用于全局频率分析。通过彩色图像显示了不同变换后的频率谱,突显了两种方法在处理噪声和信号细节上的差异。
摘要由CSDN通过智能技术生成

41528d3028836879cd698677c3999917.gifmatlab程序分析小波变换和fft变换后信号的频率成分

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:NNmu(:,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 figuresubplot(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)))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值