matlab产生扫频余弦信号 chirp用法

记得曾经大研做录音放音程序,老大让我编一个扫频信号做输入,还给了个英文的扫频信号说明,晕晕乎乎做了半天。。。突然发现matlab有产生扫频信号的函数的,一听扫频就感觉好亲切啊,这个肯定要收藏了。

这个网址有介绍http://blog.csdn.net/skyujwang/archive/2011/03/03/6221201.aspx,我不妨翻译一下matlab帮助吧。

chirp:产生余弦扫频信号

=

根据指定的方法在时间t上产生余弦扫频信号,f0为第一时刻的瞬时频率,f1为t1时刻的瞬时频率,f0和f1单位都为Hz。如果未指定,f0默认为e-6(对数扫频方法)或0(其他扫频方法),t1为1,f1为100Hz。

linear线性扫频、

phi允许指定一个初始相位(以°为单位),默认为0,如果想忽略此参数,直接设置后面的参数,可以指定为0或[];

shape指定二次扫频方法的抛物线的形状,凹还是凸,值为concave或convex,如果此信号被忽略,则根据f0和f1的相对大小决定是凹还是凸。

 

例如,线性扫频

t = 0:0.001:2; % 2 secs @ 1kHz sample rate y = chirp(t,0,1,150); % Start @ DC, % cross 150Hz at t=1 sec spectrogram(y,256,250,256,1E3,'yaxis')

untitled

 

二次扫频

% ±2 secs @ 1kHz sample rate t = -2:0.001:2; % Start @ 100Hz, cross 200Hz at t=1 sec y = chirp(t,100,1,200,'quadratic'); spectrogram(y,128,120,128,1E3,'yaxis')
2
指数扫频
t = 0:0.001:10; % 10 seconds @ 1kHz sample rate fo = 10; f1 = 400; % Start at 10Hz, go up to 400Hz y = chirp(t,fo,10,f1,'logarithmic'); spectrogram(y,256,200,256,1000,'yaxis')
3
 
spectrogram或specgram为用短时傅里叶变换计算信号的时频谱,

specgram(a,nfft,fs,window,numoverlap)
nfft是fft的长度,越长的话,频域分辨率越高,但是,对于语音这种时变信号,不能过长,一般采样率16k或者8k的取1024或者512,要看采样率的高低;
fs就是采样率;
window是指窗的长度,一般和nfft相同即可;
numoverlap是指nfft减去步长,越大越好,但运算量越大。一般取nfft的3/4效果就比较好了。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值