我用这个代码生成连续的chirp信号包,然后导出成音频,之后在一个软件里进行解析,发现信号的相位不是连续变化的而是像数字信号一样台阶式的变化

放大之后就成这样了,不连续,一个台阶一个台阶的,求各位解惑,或者求一个能发出连续chirp信号包的MATLAB代码,而且能够发出声音并能转换为.WAV文件,谢谢

img

img

你好,代码供参考

clc;clear
total_time = 10;%10s的信号
Fs = 40000; % 带宽40KHz(采样频率)
f0 = 200; %初始频率
f1 = 1000; %最后频率
t_chirp = 1; %每个chirp持续时间1s
t = 0:1/Fs:1;% 1s时间
y = chirp(t, f0, 1, f1, 'linear');
% 选取1s处看看信号是不是连续
ys = y;
for i = 1:floor(total_time)
    ys = [ys(1:end-1), y];
end
t = 1/Fs*(0:numel(ys)-1);
q = t<1.005 & t>0.995;
plot(t(q),ys(q))
title('信号连续吗???(Yes!!)')
sound(ys, Fs)%听一下
filename = 'a.wav';%文件名
audiowrite(filename,ys,Fs);%写入文件

img

已经按照你的要求改了代码,有帮助望给个采纳支持一下答主哟