【Matlab项目实战】Sine Sweep(正弦扫频信号)

原来有个博主写的python代码,我这里改成matlab了

clc;clear all;
samplingrate = 44100;
sweeptime = 1;
f0 = 20;
f1 = 200;
peak = 1;
data=sinesweep(f0, f1, sweeptime, samplingrate, peak);
figure(1)
plot(data)

函数

function data=sinesweep(f0, f1, sweeptime, samplingrate, peak)
% 扫频信号:起始频率f0、截止频率f1、采样率和幅度
k = exp(log(f1 / f0) / sweeptime); % 增长系数k的计算公式
data_len = sweeptime * samplingrate; % 数据长度
data = zeros(data_len,1);% 创建一个长度为数据长度的全为0int类型数组,用以存储每个采样点的幅度值
dt = 1.0 / samplingrate; % 两个采样点的相隔时间
t = 0; % 起始时间
p = 2 * pi * f0 / log(k);
for i=1:data_len
    data(i) = peak * sin(p * (k^t - 1));% 将每个采样点的幅度值存入数组
    t = t+dt; % 每次加一个时间间隔
end

在这里插入图片描述

代码链接:https://download.csdn.net/download/qq_45047246/86245523

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大桃子技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值