Matlab 啁啾相位变化

Matlab 啁啾相位变化,matlab,frequency,phase,Matlab,Frequency,Phase,我正在尝试创建扫频余弦,我希望能够设置我喜欢的相位。我尝试了那个代码,但我得到了一个错误。我想创建一个向量矩阵(1:40),在这里我可以手动设置它的相位 Fs = 32000; %Sampling Frequency t = 0: 1/Fs: 10 -1/Fs; %Time tt = 10; %Time when the chance occurs f1 = 20; %Starti

我正在尝试创建扫频余弦,我希望能够设置我喜欢的相位。我尝试了那个代码,但我得到了一个错误。我想创建一个向量矩阵(1:40),在这里我可以手动设置它的相位

Fs = 32000;                %Sampling Frequency 
t = 0: 1/Fs: 10 -1/Fs;     %Time 
tt = 10;                   %Time when the chance occurs 
f1 = 20;                   %Starting Frequency 
f2 = 250;                  %Ending Frequency 
cosineph = zeros(1,40);    %Phase of cosines

for iMat= 1:40

   k=iMat/2;   
   mat(iMat) = chirp(t,k*f1,tt,k*f2,'linear',cosineph(iMat)); 

end
我得到的错误是“在赋值A(I)=B中,B和I中的元素数必须相同。”

现在,我猜它指的是变量t,所以我尝试将其实现到嵌入式for中,但没有得到我想要的结果

有什么建议吗


感谢您尝试将向量(chirp的输出)分配给矩阵的单个元素(
mat
)。这行不通。您可以使用单元格数组。在下面的示例中,我将
mat
替换为单元格数组,
outArray

Fs = 32000;                %Sampling Frequency 
t = 0: 1/Fs: 10 -1/Fs;     %Time 
tt = 10;                   %Time when the chance occurs 
f1 = 20;                   %Starting Frequency 
f2 = 250;                  %Ending Frequency 
cosineph = zeros(1,40);    %Phase of cosines

for iMat= 1:40

   k=iMat/2;   
   outArray{iMat} = chirp(t,k*f1,tt,k*f2,'linear',cosineph(iMat)); 

end

谢谢我认为你应该能够接受这个答案,因为你问了。我很高兴这有帮助。