typicallity 2023-04-11 17:20 采纳率: 0%
浏览 15

关于#matlab#的问题:我想绘制最大重叠离散小波变换的时频图

我想绘制最大重叠离散小波变换的时频图,请问您有什么方法嘛?我试过了spectrogram函数 还有与fft有关的函数,tfrspwv函数,tfrwv函数,tfrstft函数等。


close all;
clear;
clc;
t1 = clock; 
% 加载数据
load('D:\OneDrive\文档\MATLAB\mfile\毕业程序\EarthquakeData.txt');
save('D:\OneDrive\文档\MATLAB\mfile\毕业程序\EarthquakeData.mat','EarthquakeData');
data = load ('EarthquakeData.txt');%载入数据,两列
t = EarthquakeData(:,1);%时间
d = EarthquakeData (:,2);%加速度
x_denoing = wden(d,'heursure','h','sln',10,'sym4');%硬阈值去噪处理后的信号序列

figure(1);
plot(t,d);
xlabel('时间/s');ylabel('幅值');title('原始信号时域波形图');%绘制原始信号图
hold on;
plot(t,x_denoing);
legend('Input Data','Filtered Data');
% 选择小波名称和分解层数
wavename = 'sym4';
J = 10; %分解层数,初步选择:J<=log2(N/(N-L)+1) or J<= log2N;
       % 进一步选择,根据应用的要求,分解到s,s要求的。
N = length(EarthquakeData); %数据长度
dt =(t(end)-t(1))/(N-1);  %取样间隔
fs = 1/dt; %频率
%绘制信号的傅里叶变换的频谱图
figure(2);
df = fs/N;
f1 = (0:N-1)*df; 
y = fft(x_denoing); %傅里叶变换
semilogx(f1,abs(y),'r'); %半对数图

%modwt
w_d = modwt(x_denoing,wavename,J,'reflection');
figure(3);
wmra = modwtmra(w_d,wavename,'reflection');    %modWtmra,分出了细节和近似,以及details的重构
helperMRAPlot(x_denoing,wmra,t,'Wavelet','modwtmra',[1 2 3 4 5 6 7]);

figure(5);
rec = imodwt(wmra,wavename);%小波重构
plot(t,x_denoing);
hold on
plot(t,rec);
xlabel('Time (s)');
ylabel('Amplitude');
title('Denoised Seismic Time-History Data');
legend('filtered Data','rec Data')
  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-04-11 21:19
    关注

    你这个代码有问题吗?你把数据发给我看一下

    评论

报告相同问题?

问题事件

  • 创建了问题 4月11日

悬赏问题

  • ¥15 悬赏 关于#c++#的问题
  • ¥15 Cortexm3是小端序,但为什么32位的指令看起来并不是如此?
  • ¥15 k8s安装calico失败,pod状态为Init:ImagePullBackOff
  • ¥15 大家好!我想学习编程业余时间挣一些钱
  • ¥15 PANATERM ver.6.0无法连接
  • ¥15 .net core实现联想查询
  • ¥15 HL7 报告转Excel 、PDF 、jpg
  • ¥18 WPF HandyControl Trigger IsSelected 触发器修改 ListBox 中 DataTemplate 模板 StackPanel 背景图片(相关搜索:触发器)
  • ¥15 下载intel stratix10对应的d5005的acceleration stack for development
  • ¥15 python-escpos 输出到CUPS PDF打印机