DFT分析连续时间信号频谱
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在matlab 中对信号111()cos()cos(2)s t t f t π=Ω进行采样,其中f1=1000Hz ,根据奈奎斯特采样定理,采样频率f>=2*f1,在此我们取f=3000Hz 在matlab 中仿真也好,实际中处理的信号也罢,一般都是数字信号。而采样就是将信号数字化的一个过程,设将信号s1(t)数字化得到信号s1(n)=cos(2*pi*f1/f*n),其中n=[0…N -1],N 为采样点数。
为什么说s1(n)=cos(2*pi*f1/f*n)表示以采样率f 对频率为f1的信号进行采样的结果呢? 采样,顾名思义,就是对信号隔一段时间取一个值,而隔的这段时间就是采样间隔,取其倒数就是采样率了,那们我们看s1(n)=cos(2*pi*f1/f*n),将前面的参数代入,当n=0时,s1(0)=cos(0),当n=1时,s1(1)=cos(2*pi*1000/3000*1),当n=2时,
s1(2)=cos(2*pi*1000/3000*2),当n=3时,s1(3)=cos(2*pi*1000/3000*3),这是不是想当于对信号s1(t)的一个周期内采了三个样点呢?对一个频率为1000Hz 的信号每周期采三个样点不就是相当于以3倍于频率的采样率进行采样呢?注意,当n=3时相当于下一个周期的起始了。
我们取采样点数N=64,即对64/3=21.3个周期,共计64/3/f1=21.3ms 时长。
我们在matlab 中输入以下命令:
>> n=0:63;
>> f1=1000;f=3000;
>> s1=cos(2*pi*f1/f*n);
>> plot(abs(fft(s1)));
010203040506070
图1 信号频谱
下面引入一个新的概念:频率分辨率
频率分辩率是指频域取样中两相邻点间的频率间隔。更确切的说是如果某一信号含有两个频率成分f1和f2,Of=|f2-f1|,频率分辨率的概念是如果频率分辨率大于Of,对信号进行谱分析后将不能识别出其含有两个频率成分,这两个频率将混叠在一起。
现在我们设定信号s(t)=cos(w1*t)+sin(w2*t),其中w1=2*pi*1000,w2=2*pi*1100
在matlab中输入以下命令计算其频谱:
>> n=0:63;
>> f1=1000;f2=1100;f=3000;
>> s5=cos(2*pi*f1/f*n)+sin(2*pi*f2/f*n);
>> plot(abs(fft(s5)));
>> f1=1000;f2=1100;f=3000;
>> s=cos(2*pi*f1/f*n)+sin(2*pi*f2/f*n);
>> plot(abs(fft(s)));
0510152025
05
10
15
图3采用点数为24,抽样频率为3k 信号频谱
第二种尝试:采样率fs 升为8000Hz ,即满足奈奎斯特采样定理,大于信号s(t)的最高频率分量1100Hz 的两倍,采样点个数N 不变,仍为64个,在matlab 中输入以下命令: >> n=0:63;
>> f1=1000;f2=1100;f=8000;
>> s=cos(2*pi*f1/f*n)+sin(2*pi*f2/f*n);
>> plot(abs(fft(s)));
010203040506070
图4 采用点数为64,抽样频率为8k 信号频谱
由图3、图4,图5可以看出,这三种尝试虽然满足奈奎斯特采样定理,但都不能分辨出两个频率分量,用前面的理论知识可以作如下分析:
第一种尝试的频率分辨率F=1/tp=fs/N=3000/24=125Hz>100Hz
第二种尝试的频率分辨率F=1/tp=fs/N=8000/64=125Hz>100Hz
因此以上两种尝试均不能分辨出频率间隔为100Hz的两个频率分量。
第三种尝试::如图3所示,频谱很不平滑,呈很明显的折线状态,
采样率fs仍然为3000Hz,即满足奈奎斯特采样定理,大于信号s(t)的最高频率分量1100Hz 的两倍,采样点个数24,补40个零,在matlab中输入以下命令:
n=0:23;
f1=1000;f2=1100;f=3000;
s5=cos(2*pi*f1/f*n)+sin(2*pi*f2/f*n);
s6=[s5,zeros(1,40)]
plot(abs(fft(s6)))
则可得到的谱线为2Hz,4Hz,6Hz,8Hz,…,若信号中包含频率为7Hz的分量,则该分量将被栅栏挡住,无法显示出来。