【发布时间】:2014-03-15 00:21:03
【问题描述】:
我正在使用 matlab / octave 创建一个扫描 / 啁啾信号,而我的结束信号似乎以错误的频率结束。如何修复它,使信号以正确的频率结束。
PS:我不能在 octave 中使用 chirp 命令,因为我正在使用特定方程式创建 chirp / 扫描信号。
带有简单等式的示例代码。和问题的情节
%test sweep / chirp
clear all,clc
freq1=20; %start freq
freq2=200; %end freq
fs=44100;
dur=1; %duration of signal in seconds
t = linspace(0,2*pi,fs*dur);
f=freq1:(freq2-freq1)/length(t):freq2-(freq2-freq1)/length(t);
%20:(200-20)/lenght(t) :200-(200-20)/length(t)
data=sin(f.*t); %build signal
data=(data/max(abs(data))*.8); %normalize signal
wavwrite([data'] ,fs,32,strcat('/tmp/del.wav')); %export file
plot(t,data)
PS:我使用的是 octave 3.8.1
【问题讨论】:
-
你犯了一个数学错误。如果您的波从 sin(0) 开始并在 sin(t*200) 结束,则总周期数是固定的并且平均对应于 200 hz,那么您所做的一切都是两者之间值的 x 位移。
-
@Daniel 谢谢,但我该如何解决这个问题?
标签: matlab signal-processing octave