远程操作修改一下我的MATLAB代码,关于小波分析的时频图

>> % 定义信号参数
A1 = 1;
A2 = 1;
A3 = 1;
f1 = 2;
f2 = 4;
f3 = 8;
t = 0:0.01:15;

% 定义非平稳信号和平稳信号
x1 = A1*sin(2*pi*f1*t).*(t>=0 & t<5) + A2*sin(2*pi*f2*t).*(t>=5 & t<10) + A3*sin(2*pi*f3*t).*(t>=10 & t<=15);
x2 = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t) + A3*sin(2*pi*f3*t);

% 加入不同严重程度的白噪声
noise_levels = [0, 0.5, 1];  % 不同严重程度的白噪声
x1_noisy = zeros(length(noise_levels), length(x1));
x2_noisy = zeros(length(noise_levels), length(x2));

for i = 1:length(noise_levels)
    noise = noise_levels(i)*randn(size(x1));
    x1_noisy(i, :) = x1 + noise;
    x2_noisy(i, :) = x2 + noise;
end

% 小波分析
figure;
for i = 1:length(noise_levels)
    subplot(length(noise_levels), 2, (i-1)*2+1);
    [wt, f] = cwt(x1_noisy(i, :), 'amor', 1/0.01, 'VoicesPerOctave', 12, 'FrequencyLimits', [0 10]);
    imagesc(t, f, abs(wt));
    set(gca, 'YDir', 'normal');
    title(['CWT of Noisy Non-Stationary Signal (Noise Level ', num2str(noise_levels(i)), ')']);
    xlabel('Time (s)');
    ylabel('Frequency (Hz)');
    
    subplot(length(noise_levels), 2, i*2);
    [wt, f] = cwt(x2_noisy(i, :), 'amor', 1/0.01, 'VoicesPerOctave', 12, 'FrequencyLimits', [0 10]);
    imagesc(t, f, abs(wt));
    set(gca, 'YDir', 'normal');
    title(['CWT of Noisy Stationary Signal (Noise Level ', num2str(noise_levels(i)), ')']);
    xlabel('Time (s)');
    ylabel('Frequency (Hz)');
end

我按照题目要求设定的代码输入的频率为2,4,8,但是最后输出却是6,8,10.

希望哪位大神能远程帮我修改一下,也可以修改后发布在评论区,可以私信我,有重谢。

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值